2013-07-22 17 views
7

में लोड होने से एक विशिष्ट सीएसएस फ़ाइल को रोकना Iii में कोडिंग कर रहा हूं।वाईआई

मैं इतनी तरह मेरे main.php लेआउट फ़ाइल में main.css फ़ाइल पंजीकृत किया है:

Yii::app()->clientScript->registerCssFile($this->assetsBase.'/css/main.css'); 

अब इस स्क्रिप्ट सभी पृष्ठों में दर्ज की जा रही है। हालांकि, मैं नहीं चाहता कि वह स्क्रिप्ट किसी विशिष्ट पृष्ठ पर पंजीकृत हो।

Yii::app()->clientScript->reset(); 

, सभी सीएसएस फ़ाइलों को हटा हैं लेकिन मैं केवल कुछ सीएसएस फ़ाइलें अपंजीकृत होना चाहते हैं:

मुझे लगता है कि का उपयोग कर पता है।

क्या ऐसा करने का कोई तरीका है? स्क्रिप्ट (! जैसे यदि नियंत्रक = xxx और कार्रवाई = yyy) पंजीकरण से पहले

main_no-css.php
या
एक शर्त जोड़ना की तरह उस पृष्ठ के लिए एक अलग लेआउट का उपयोग करना है, लेकिन यह:

उत्तर

9

आप अपने विशिष्ट दृश्य में scriptMap property of CClientScript का उपयोग कर सकते हैं, विशेष स्क्रिप्ट/सीएसएस फ़ाइल की कुंजी के लिए false पास कर सकते हैं जिसे आप प्रस्तुत नहीं करना चाहते हैं। दस्तावेज़ से:

सरणी कुंजी स्क्रिप्ट फ़ाइल नाम (निर्देशिका भाग के बिना) हैं और सरणी मान संबंधित यूआरएल हैं। यदि कोई सरणी मान गलत है, तो संबंधित स्क्रिप्ट फ़ाइल प्रस्तुत नहीं की जाएगी।

उदाहरण के लिए

, कहते हैं विचारों/साइट/पृष्ठों में/ about.php:

Yii::app()->clientScript->scriptMap = array(
    'main.css' => false 
); 

main.cssregisterCssFile के साथ पंजीकृत के शामिल किए जाने को निष्क्रिय करने के।

scriptMap का उपयोग जेएस स्क्रिप्ट फ़ाइलों के प्रतिपादन को नियंत्रित करने के लिए भी किया जा सकता है।

+2

आपको बहुत बहुत धन्यवाद !! यह ठीक वही है जिसकी मुझे तलाश थी। –

1

मैं या तो सुझाव है हर दूसरे पेज पर स्थिति की जांच की जाएगी।

मैं निश्चित रूप से एक अलग लेआउट के लिए जाना होगा।