ब्लॉक के लिए एक मॉड्यूल Layout.xml का उपयोग करके सीएसएस और जेएस को <head> में जोड़ें


9

सार

मैं अपने समूहीकृत उत्पाद दृश्य और मेरे साधारण उत्पाद दृश्य में एक ब्लॉक जोड़ना चाहूंगा। इस ब्लॉक में होवर राज्यों के लिए कुछ अच्छे टूलटिप्स होंगे, मैं एक छोटी सी लाइब्रेरी का उपयोग कर रहा हूँ जिसमें एक jquery प्लग इन और एक स्टाइल स्टाइलशीट है।

मैं इन दो संसाधनों को केवल इन पृष्ठों पर मैग्नेटो में शामिल करना चाहता हूं।

टिप्पणियाँ

  • मैं एक कस्टम विषय चला रहा हूं;
  • कैशिंग अक्षम है ; तथा
  • मेरी फाइलें /jsनिर्देशिका के अंदर हैं ;

अब तक…

फिर भी मुझे पता था कि layout.xmlमेरे मॉड्यूल में उपयोग करने का एक तरीका था , पहले तो यह काम नहीं करता था इसलिए मैंने सोचा कि शायद मुझे config.xmlअपने लेआउट आवश्यकताओं के बारे में मैगेंटो को बताने के लिए मेरे अंदर अतिरिक्त कॉन्फ़िगरेशन की आवश्यकता है - यह भी काम नहीं किया।

तक काम नहीं किया है कि मैं क्या मतलब है, मेरी संपत्ति लोड नहीं कर रहे थे।

कृपया नीचे दिए गए संलग्न स्रोत को खोजें।


एप्लिकेशन / कोड / स्थानीय / विक्रेता / रेटिंग / etc / layout.xml

<?xml version="1.0"?>
<layout>
    <default>
        <reference name="head">
            <action method="addJs">
                <script>vendor/qtip/jquery.qtip.min.js</script>
            </action>
            <action method="addCss">
                <stylesheet>vendor/qtip/jquery.qtip.min.css</stylesheet>
            </action>
        </reference>
    </default>
</layout>

एप्लिकेशन / कोड / स्थानीय / विक्रेता / रेटिंग / etc / config.xml

<?xml version="1.0"?>
<config>

    ...

    <frontend>
        <layout>
            <updates>
                <vendor_rating>
                    <file>layout.xml</file>
                </vendor_rating>
            </updates>
        </layout>
    </frontend>

    ...

</config>

जवाबों:


17

सबसे पहले, आपकी लेआउट फ़ाइल को रखा जाना चाहिए app/design/frontend/{interface}/{theme}/layout/
दूसरा। यदि आप css और js फ़ाइलों को केवल समूहीकृत और सरल उत्पाद पृष्ठों में जोड़ना चाहते हैं तो <default>लेआउट हैंडल का उपयोग न करें ।
अपने लेआउट को इस तरह बनाएं:

<?xml version="1.0"?>
<layout>
    <my_handle><!-- declare a custom handle so you won't duplicate the code -->
        <reference name="head">
            <action method="addJs">
                <script>vendor/qtip/jquery.qtip.min.js</script>
            </action>
            <action method="addCss">
                <stylesheet>vendor/qtip/jquery.qtip.min.css</stylesheet>
            </action>
        </reference>
    </my_handle>
    <PRODUCT_TYPE_simple><!-- layout handle for simple products -->
        <update handle="my_handle" /> <!-- include the handle you declared above -->
    </PRODUCT_TYPE_simple>
    <PRODUCT_TYPE_grouped><!-- layout handle for grouped products -->
        <update handle="my_handle" /> <!-- include the handle you declared above -->
    </PRODUCT_TYPE_grouped>
</layout>

बहुत-बहुत धन्यवाद, यह बहुत मायने रखता है। मुझे लगता है कि मेरे config.xmlलेआउट xml फ़ाइल के नाम को परिभाषित करने के बाद से मैं यह कुछ भी कह सकता हूं जिसे मैं चाहता था?
ऐश

@पक्ष लेना। हाँ। नाम वह हो सकता है जो आप चाहते हैं।
मेरियस

4

जैसा कि यह स्पष्ट रूप से अभी तक पर्याप्त नहीं बताया गया है:

निर्देशिकाएँ

एक कस्टम मॉड्यूल के लिए लेआउट XML फाइलें स्वतंत्र होनी चाहिए और इस प्रकार रखी जानी चाहिए

app/design/frontend/base/default/layout

आप अपने कस्टम विषय में इन एक्सएमएल फाइल के किसी भी ओवरराइड कर सकते हैं, लेकिन ज्यादातर मामलों में, यह एक अतिरिक्त विषय विशिष्ट लेआउट फ़ाइल है कि है करने के लिए बेहतर है कहते हैं बदलता है। अधिक जानकारी: Magento टेम्पलेट को संशोधित करने का सही तरीका / तरीका क्या है?

फ़ाइल नाम

ध्यान दें कि उन फ़ाइलों को कभी-कभी "लेआउट.एक्सएमएल फाइलें" के रूप में संदर्भित किया जाता है, लेकिन layout.xmlवास्तव में एक फ़ाइल नाम नहीं है जो आपको आमतौर पर किसी भी सेंटो कोड में मिलेगा। यदि आप अपनी layout.xmlफ़ाइल को सही स्थान पर रखते हैं तो आपका कोड काम करता है (ऊपर देखें), लेकिन अधिवेशन निम्न केस मॉड्यूल नाम का उपयोग करना है:

rating.xml

या और अच्छा

vendor_rating.xml

याद रखें कि सभी मॉड्यूल से लेआउट एक्सएमएल फाइलें एक ही निर्देशिका में हैं, इसलिए नाम अद्वितीय होना चाहिए!


1

आपका लेआउट। Xml अंदर जाना चाहिए

ऐप / डिज़ाइन / फ्रंटएंड / [आपका कस्टम पैकेज] / [आपका कस्टम थीम] / लेआउट /


0

जैसा कि आपके विशेष मामले के लिए ऊपर कहा गया है, आपको इसका उपयोग <default>टैग के अंदर नहीं करना चाहिए, लेकिन उदाहरण के उद्देश्यों के लिए आप उदाहरण के लिए इस तरह से अपने रूट मैगनेटो / जेएस निर्देशिका में रहने वाली सीएसएस फाइलें जोड़ सकते हैं app/design/frontend/vendor/theme/layout/local.xml:

<?xml version="1.0"?>

<layout version="0.1.0">
    <default>
        <reference name="head">
             <action method="addItem">
                <type>js_css</type>
                <stylesheet>css/styles.css</stylesheet>
                <params>media="all"</params>
            </action>
        </reference>
    </default>
</layout>
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.