Magento 2: कस्टम मॉड्यूल लेआउट xml फ़ाइल के साथ पृष्ठों के विशिष्ट अनुभाग में स्थिर ब्लॉक जोड़ना


16

Magento 1.x में xml लेआउट फ़ाइल का उपयोग करके एक स्थिर ब्लॉक जोड़ना संभव है।

<reference name="root">
        <block type="cms/block" name="name">
            <action method="setBlockId"><block_id>static-block-id</block_id></action>
        </block>
</reference>

लेकिन, Magento 2 में हम इसे कैसे प्राप्त कर सकते हैं?

जवाबों:


25

अंत में मुझे समाधान मिल गया। आप निम्नलिखित तरीके से स्थिर ब्लॉक को कॉल कर सकते हैं।

<referenceContainer name="footer">
    <block class="Magento\Store\Block\Switcher" name="store_switcher" as="store_switcher" after="footer_links" template="switch/stores.phtml"/>

     <block class="Magento\Cms\Block\Block" name="test">
        <arguments>
            <argument name="block_id" xsi:type="string">promo</argument>
        </arguments>
    </block>
</referenceContainer>

आपको संदर्भ नाम कैसे मिला?
स्टीव जी

@StevieG या तो इसका पता लगाएं या डिफ़ॉल्ट XML कार्यान्वयन पढ़ें ताकि आपको पता चले कि सब कुछ कैसे बनाया गया है (दीर्घकालिक के लिए बहुत उपयोगी है)।
मेल्विन

8

इसे नीचे दिए गए चरणों का पालन करके आसानी से व्यवस्थापक पैनल से किया जा सकता है।

  1. सामग्री पर जाएं -> विजेट
  2. नया विजेट जोड़ें
  3. CMS स्टेटिक ब्लॉक के रूप में चयन करें
  4. डिज़ाइन पैकेज / थीम और जारी रखें का चयन करें
  5. सेट Widget Title, Storeऔर Sort orderमें Storefront propertiesटैब
  6. Widget optionsटैब में स्टैटिक ब्लॉक का चयन करें
  7. विजेट सहेजें
  8. Add Layout Updateबटन पर क्लिक करें
  9. Display onड्रॉपडाउन से विकल्प का चयन करें जैसे: Specific pageविनिर्देश पर ब्लॉक प्रदर्शित करने के लिए

  10. Pageड्रॉपडाउन से पेज चुनें

  11. Containerड्रॉपडाउन से कंटेनर का चयन करें
  12. विजेट सहेजें

यह केवल CMS पृष्ठों के लिए उपयोगी है। क्या हम इसे अपने कस्टम मॉड्यूल xml में भी इस्तेमाल कर सकते हैं?
प्रफुल्ल राजपूत

मैंने केवल cms पृष्ठ का उदाहरण दिया है, आप इसे हर संभव मॉड्यूल या पृष्ठ के लिए उपयोग कर सकते हैं। आप ड्रॉपडाउन पर प्रदर्शन में विकल्प की सूची देखकर एक विचार प्राप्त कर सकते हैं
तराल पटोलिया

यह उत्कृष्ट, स्वच्छ और सरल है। धन्यवाद।
dawhoo

5

यदि आप 2-कॉलम-बाएं पृष्ठ में स्टेटिक-ब्लॉक को कॉल करना चाहते हैं, तो आप बस इसका उपयोग कर सकते हैं,

नीचे आप quickblockअपने स्थैतिक-ब्लॉक पहचानकर्ता के साथ बदल सकते हैं ।

<referenceContainer name="sidebar.main">
            <block class="Magento\Cms\Block\Block" name="quick-block">
                <arguments>
                    <argument name="block_id" xsi:type="string">quickblock</argument>
                </arguments>
            </block>
</referenceContainer>

ऊपर ब्लॉक साइडबार के साथ 2columns-left के लिए ठीक काम कर रहा है।


नमस्ते यदि हम केवल पेज पेज लेआउट के लिए स्टेटिक ब्लॉक को कॉल करना चाहते हैं? मैंने साइडबार के साथ xml में स्टेटिक ब्लॉक कॉल किया। क्या कारण हो सकता है?
जैक

@ राकेश, <; php गूंज $ यह-> getLayout () -> createBlock ('Magento \ Cms \ Block \ Block') -> setBlockId ('आइडेंटिफ़ायर_आईडी') -> toHtml (); ?> मैं सफलता में इस्तेमाल किया।
phtml

2

निम्नलिखित कोड में, Magento के डैशबोर्ड पर बनाए गए CMS ब्लॉक से "block_identifier" को बदलें और इसे layout.xml में जोड़ें। यह काम करता हैं।

<referenceContainer name="footer">
       <block class="Magento\Cms\Block\Block" name="block_identifier">
            <arguments>
                <argument name="block_id" xsi:type="string">block_identifier</argument>
            </arguments>
        </block>
    </referenceContainer>
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.