2012-04-25 10 views
8

मैं वाईआई फ्रेमवर्क में एक नौसिखिया हूं और एक सीआरएम बना रहा हूं जो मॉड्यूल आधारित है। विभिन्न ट्यूटोरियल का उपयोग करके मैं अपनी थीम बनाने में सक्षम हूं, लेकिन अब मैं एक बिंदु पर फंस गया हूं।yii ढांचे में थिंगिंग और लेआउट

मेरे विषय में, ऊपरी <nav> और छोड़ दिया है। <nav> रहता ही पूरे एप्लिकेशन में, जब तक उपयोगकर्ता के प्रवेश यही कारण है कि मैं इसे अपने main.php का एक हिस्सा बना दिया है, लेकिन वहाँ प्रवेश पृष्ठ में दिखाने के लिए कोई बटन नहीं हैं, बस लॉगिन फॉर्म टेक्स्टफील्ड के साथ।

कस्टम थीम का उपयोग करके मैं अपने आवेदन में इस फॉर्म को कैसे कार्यान्वित कर सकता हूं?

मैंने उस विशेष कार्रवाई में एक लेआउट परिभाषित करने की कोशिश की है लेकिन सफल नहीं हुआ है। किसी भी सहायता की सराहना की जाएगी।

+1

कृपया विस्तार से बताएं और कुछ कोड दिखाने ताज़ा, मैं, लेकिन आप विचारों देने के लिए सक्षम हो सकता है मैं स्पष्ट रूप से इस मुद्दे को समझ में नहीं आता। – ddinchev

+0

यह प्रश्न कोड से संबंधित नहीं है क्योंकि yii ढांचे में लेआउट को फ़ोल्डर संरचना और एकल सरणी अनुक्रमणिका द्वारा main.php फ़ाइल में बनाया गया है। मैं बस यह जानना चाहता हूं कि केवल एक पृष्ठ के लिए अलग-अलग थीम का उपयोग करने का कोई तरीका है? –

उत्तर

13

अपने विचार के लिए कस्टम लेआउट का उपयोग करना सही तरीका है। आप या तो नियंत्रक कार्रवाई या दृश्य में लेआउट सेट कर सकते हैं।

$this->layout = "//layouts/mylayout"; 

नोट डिफ़ॉल्ट लेआउट column1.php और column2.php भी main.php लेआउट फ़ाइल का उपयोग करता है।

+0

मैंने पहले ही यह कोशिश की है लेकिन कोई किस्मत नहीं .... –

+0

आपका आउटपुट क्या है? ए) बस "कच्चे" सामग्री? -> लेआउट फ़ाइल नहीं मिली। बी) कोई दृश्य परिवर्तन नहीं? -> लेआउट लागू नहीं होता है। यूआई का कौन सा संस्करण आप उपयोग कर रहे हैं? – schmunk

+1

हाँ सामग्री को कच्चे प्रारूप में दिखाया गया है और आप सही हैं कि त्रुटि पथ में है, मैंने लेआउट के बजाय लेआउट का उपयोग किया है। आपकी सहायता के लिए धन्यवाद. –

7

कदम से इस कदम का प्रयास करें:

  1. नई थीम

    बनाएं आप एक नया विषय बना सकते हैं और Application_Root/विषयों निर्देशिका में जोड़ना।

    निर्देशिका की संरचना का एक अनुमान प्राप्त करने के लिए विषयों/क्लासिक निर्देशिका को देखो। (इस स्तर पर) महत्वपूर्ण फ़ाइल है: - Application_Root/विषयों/विचारों/लेआउट/main.php

  2. अनुकूलित अपने विषय सामग्री

    कॉपी सीएसएस, छवि, जे एस फ़ाइलें आदि के लिए सही निर्देशिका और main.php फ़ाइल को अपनी पसंद में बदलें। उदाहरण के लिए, अपने main.php कहते

    < लिंक href = "सीएसएस/mystyle.css" rel = "स्टाइलशीट" >

    तो फिर तुम एक फ़ाइल Application_Root/सीएसएस/mystyle.css होगा अगर

  3. सामग्री प्लेसहोल्डर बनाएं।

    कहीं भी आपके main.php में, डायनामिक टेक्स्ट के लिए प्लेसहोल्डर होगा, जिसे निर्दिष्ट किया गया है।

    <? Php echo $ content; ? >

  4. थीम का उपयोग करने के लिए yii बताएं। फ़ाइल को एप्लिकेशन_रूट/संरक्षित/config/main.php को अंतिम पंक्ति (समापन ब्रैकेट युक्त) से पहले निम्न पंक्ति जोड़कर बदलें।

    'विषय' => 'surveyhub'

  5. लेआउट प्लेसहोल्डर बनाएँ।

    एक HTML सेगमेंट बनाएं जो main.php के $ सामग्री भाग में लिखा जाएगा। उदाहरण के लिए इसे एक_column.php कहते हैं। इसलिए फ़ाइल पथ एप्लिकेशन_रूट/थीम/विचार/लेआउट/one_column.php उस फ़ाइल में, जहां आप डायनामिक टेक्स्ट रखना चाहते हैं, प्लेसहोल्डर बनाएं।

    <? Php echo $ content; ? >

  6. लेआउट का उपयोग करने के लिए वाईआई को बताएं।

    फ़ाइल Application_Root/संरक्षित/घटकों में/Controller.php, जोड़ सकते हैं या लेआउट चर संशोधित पढ़ने के लिए:

    सार्वजनिक $ लेआउट = '// लेआउट/one_column.php';

  7. पेज