2011-03-28 16 views
7

मैं एक विशिष्ट सीएसएस फ़ाइल शामिल करना चाहता हूं जिसे होमपेज पर लागू किया जाना चाहिए, और मेरी साइट पर 6-7 अन्य पेज शामिल हैं।केकपीएचपी - विशिष्ट पृष्ठों पर आधारित सीएसएस शामिल है?

मुझे पता है कि मैं इसे PHP के माध्यम से कर सकता हूं, यूआरएल प्राप्त कर रहा हूं, सीएसएस को जोड़कर कौन सा पेज ढूंढ सकता हूं ... आदि, लेकिन मैं सोच रहा था कि केकपीएचपी का उपयोग करके एक चिकना तरीका (या कोई बेहतर तरीका) सही सीएसएस फ़ाइल (ओं)।

मुझे एहसास है कि मैं सीएसएस फ़ाइल को विशिष्ट विचारों से जोड़ सकता हूं, लेकिन फिर वे <head> में नहीं होंगे। क्या किसी दृश्य से लिंक करने का कोई तरीका है और इसे सिर में दिखाना है?

मुझे आशा है कि मेरे प्रश्न समझ में आ जाएंगे, और किसी भी मदद की सराहना करते हैं।

+0

संपादन के लिए धन्यवाद - मुझे लगता है कि यह मेरे सिर टैग को छुपाया - मैं एक स्टॉक ओवरफ्लो नोब हूं :) – Dave

उत्तर

19

मुझे पता है मैं से विशिष्ट दृश्य सीएसएस फ़ाइल लिंक कर सकते हैं, लेकिन - तो वे <head> में नहीं होगा। क्या एक दृश्य से लिंक करने के लिए तरीका है और इसे पर दिखाएं?

हाँ, वे सिर में होंगे। देखें HTML Helper documentation:

कुंजी 'इनलाइन' $ विकल्प पैरामीटर में गलत पर सेट है, तो लिंक टैग कर रहे हैं $ scripts_for_layout चर जो आप अंदर मुद्रित कर सकते हैं दस्तावेज़ के सिर टैग में डाला।

तो, आपके ध्यान में रखते हुए इस स्निपेट ...

$this->Html->css('my-css', null, array('inline' => false)); 

... अपने <head> के लिए उचित <link> तत्व जोड़ देगा।

+1

सही दिशा में मुझे अग्रणी करने के लिए बहुत बहुत धन्यवाद!मेरे जैसे भ्रमित किसी और के लिए अपना उत्तर स्पष्ट करने के लिए, आप अपने सीएसएस फ़ाइल को अपने दृश्य से "शामिल" कर सकते हैं, लेकिन केक के एचटीएमएल-> सीएसएस कोड के माध्यम से ऐसा कर सकते हैं, और इनलाइन विकल्प को इनलाइन => झूठी में सेट कर सकते हैं, जैसा ऊपर बताया गया है जवाब, यह सीएसएस को हेड टैग में जोड़ देगा जैसा आप चाहते हैं। यह मेरे लिए तब तक काम नहीं करता जब तक कि मैंने दूसरे विकल्प के रूप में शून्य नहीं जोड़ा: एचटीएमएल-> सीएसएस ('लेआउट 1', शून्य, सरणी ('इनलाइन' => झूठी)); ?> सुनिश्चित नहीं है कि मैंने कुछ गलत किया है, या यदि आपको दस्तावेज़ में उल्लिखित दूसरा पैरामीटर शामिल करना है। – Dave

+0

@ डेव: आप सही हैं। विकल्प सरणी तीसरा तर्क है दूसरा तर्क नहीं। मैंने अपना जवाब अपडेट किया। –

+0

सही, आपकी मदद के लिए फिर से धन्यवाद! – Dave

0

चेक इस छोटे से ट्यूटोरियल:

http://nuts-and-bolts-of-cakephp.com/2008/05/05/css-files-and-scripts_for_layout/

मूल रूप से आप दृष्टिकोण पर आधारित सीएसएस फ़ाइलें इंजेक्षन करने के लिए इस मानक दृश्य विशेषता $ scripts_for_layout उपयोग कर सकते हैं। आशा है कि यह वही है जो आप खोज रहे हैं। विस्तार के पार्सिंग को शामिल करने वाले कुछ अन्य पागल विकल्प हैं, लेकिन शायद स्टाइलशीट को मैन्युअल रूप से जोड़ने से शायद यह अधिक बोझिल होगा। मुझे लगता है कि यह लिंक सबसे अच्छा समाधान का वर्णन करता है।

0

तुम भी विभिन्न लेआउट हो सकता है, और उन में सीएसएस में शामिल हैं:

http://book.cakephp.org/view/1080/Layouts#!/view/1080/Layouts

यह आसान आता है सभी के लिए एक मॉडल के विचारों का एक ही सीएसएस, या स्क्रिप्ट है।

0

यह आपके प्रश्न का उत्तर नहीं है, लेकिन ... आप लेआउट फ़ाइल के लिए अपना इंजेक्शन प्रोग्राम कर सकते हैं। $ Scripts_for_layout के साथ समस्या यह है कि जेएस और सीएसएस कोड हेडर में इंजेक्शन दिए जाते हैं। यदि आप अपना खुद का कार्यान्वयन लिखते हैं तो आप लेआउट फ़ाइल के अंत में $ scripts_for_layout var (जेएस के लिए) डाल सकते हैं। क्यू है: जुदाई ...

संबंधित मुद्दे