कस्टम मॉड्यूल मुसीबत के साथ सीएमएस और श्रेणी के उपयोग के लिए कस्टम लेआउट जोड़ना


14

मेरे पास मेरे स्टोर में एक श्रेणी है जो मानक Magento लेआउट के लिए पूरी तरह से अलग लेआउट की आवश्यकता है। इसलिए मैंने 1column.phtml की एक नई प्रति बनाई और उसका नाम बदल दिया और परीक्षण करने के लिए एक छोटा परिवर्तन किया।

अब समस्या यह है कि कस्टम लेआउट दिखाई नहीं दे रहा है। मैंने एक मॉड्यूल बनाया (जो काम कर रहा है जैसा कि एडमिन> कॉन्फिग> एडवांस्ड ओवरव्यू में देखा गया है)।

मेरी फाइलें और सामग्री इस प्रकार हैं:

एप्लिकेशन / etc / मॉड्यूल / Test_Page.xml

    <?xml version="1.0"?>
<config>
    <modules>
        <Test_Page>
            <active>true</active>
            <codePool>community</codePool>
            <version>0.1.0</version>
            <depends>
                <Mage_Page />
            </depends>
        </Test_Page>
    </modules>
</config>

एप्लिकेशन / कोड / स्थानीय / टेस्ट / पृष्ठ / etc / config.xml

    <?xml version="1.0"?>
<config>
    <modules>
        <Test_Page>
            <version>0.1.0</version>
        </Test_Page>
    </modules>
    <global>
        <page>
            <layouts>
                <homepage module="page" translate="label">
                    <label>Homepage</label>
                    <template>page/home.phtml</template>
                    <layout_handle>homepage</layout_handle>
                </homepage>

                <!-- add more layouts here -->
            </layouts>
        </page>
    </global>
    <frontend>
        <layout>
            <updates>
                <Test_Page>
                    <file>test_page.xml</file>
                </Test_Page>
            </updates>
        </layout>
    </frontend>
</config>

एप्लिकेशन / डिजाइन / दृश्यपटल / परीक्षण / डिफ़ॉल्ट / लेआउट / test_page.xml

    <?xml version="1.0"?> 
<layout>
    <homepage translate="label">
        <label>Home Page</label>
        <reference name="root">
            <action method="setTemplate"><template>page/home.phtml</template></action>
            <action method="setIsHandle"><applied>1</applied></action>
        </reference>
    </homepage> 
</layout>

मुझे कुछ भी दिखाई नहीं दे रहा है, मैंने इसे एक मॉड्यूल के रूप में पढ़ा है, लेकिन कस्टम लेआउट को नहीं दिखाया जा रहा है :(

जवाबों:


21

इसे लेआउट ड्रॉपडाउन में प्रदर्शित करने के लिए आपको एक कस्टम मॉड्यूल बनाने की आवश्यकता है (आप एक कोर फ़ाइल में कुछ भी जोड़ सकते हैं लेकिन कृपया ऐसा न करें)। एक्सटेंशन को नाम दें Easylife_Layout। इसके लिए आपको निम्नलिखित फाइल बनाने की जरूरत है: app/etc/modules/Easylife_Layout.xml- डिक्लेरेशन फाइल

<?xml version="1.0"?>
<config>
    <modules>
        <Easylife_Layout>
            <active>true</active>
            <codePool>local</codePool>
            <depends>
                <Mage_Page />
            </depends>
        </Easylife_Layout>
    </modules>
</config>

app/code/local/Easylife/Layout/etc/config.xml - कॉन्फ़िगरेशन फ़ाइल

<?xml version="1.0"?> 
<config>
    <modules>
        <Easylife_Layout>
            <version>0.0.1</version>
        </Easylife_Layout>
    </modules>
    <global>
        <page>
            <layouts> 
                <lookbook module="page" translate="label">
                    <label>Lookbook</label>
                    <template>page/1column-lookbook.phtml</template>
                    <layout_handle>lookbook</layout_handle>
                </lookbook> 
            </layouts>
        </page>
    </global>
    <frontend>
        <layout>
            <updates>
                <easylife_layout>
                    <file>easylife_layout.xml</file>
                </easylife_layout>
            </updates>
        </layout>
    </frontend>
</config>

app/design/frontend/{interface}/{theme}/layout/easylife_layout.xml - लेआउट फ़ाइल

<?xml version="1.0"?> 
<layout>
    <lookbook translate="label">
        <label>Lookbook</label>
        <reference name="root">
            <action method="setTemplate"><template>page/1column-lookbook.phtml</template></action>
            <action method="setIsHandle"><applied>1</applied></action>
        </reference>
    </lookbook> 
</layout>

यदि आप लेआउट फ़ाइलों में अपने कस्टम लेआउट को संदर्भित करने में सक्षम होना चाहते हैं तो अंतिम एक आवश्यक है। कुछ इस तरह:

<update hande="lookbook" />

कैश साफ़ करें और ... यह बात है। अगर यह आप के लिए काम करता है तो मुझे बतलाएगा।


लॉग इन और आउट ने इसके बाद मेरे लिए चाल
चली

6

दो संभावनाएँ हैं:

  1. आप अपनी श्रेणी में एक कस्टम लेआउट जोड़ें और यह करें:

    <layout>
        <reference name="root">
            <action method="setTemplate"><template>page/1column-lookbook.phtml</template></action>
        </reference>
    </layout>
  2. आप इसे पृष्ठ लेआउट के रूप में कार्यान्वित करते हैं और इसे जोड़ते हैं config.xml, global/page/layouts/लेकिन मुझे नहीं पता, यह कैसे करना है।

यदि आपको केवल एक बार इसकी आवश्यकता है, तो आप पहले समाधान के साथ रह सकते हैं। लेकिन सावधान रहना। कर रहे हैं <action method="setIsHandle"><applied>1</applied></action>में page.xmlकभी-कभी इस सेटिंग टेम्पलेट के परिवर्तन से बचाता है।

पहला समाधान करने के लिए: अपनी श्रेणी का चयन करें, Custom Designऔर सब कुछ <layout />नोड के अंदर Custom Layout Updateटेक्स्टारिया में डालें , जैसे:

<reference name="root">
    <action method="setBackgroundGraphic">
        <background>two-pieces</background>
    </action>
    <action method="setTemplate">
    <template>page/2columns-right-highStep.phtml</template>
    </action>
    <action method="setIsHandle">
        <applied>1</applied>
    </action>
</reference>

मुझे पहले एक के लिए लेआउट संदर्भ कहां रखना होगा? मैंने Layout.xml में बहुत समान कोड की कोशिश की, लेकिन पता नहीं था कि इसे किस स्तर पर रखा जाए, मेरे पास सभी श्रेणियों के पृष्ठों के लिए संदर्भ हैं जैसा कि डिफ़ॉल्ट रूप से <कैटलॉग_संगोरी_व्यू> का उपयोग करते हुए किया गया था, इसलिए मुझे लगता है कि मुझे एक और विकल्प जोड़ने के लिए कुछ इसी तरह की आवश्यकता है
क्रिस मॉरिस

जवाब को संपादित किया
फेबियन ब्लेसस्मिट
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.