Layout.xml में ब्लॉक हटाने की प्रक्रिया को रद्द करें


13

मैं एक ब्लॉक को हटाने को पूर्ववत करना चाहता हूं।

ब्लॉक को हटा दिया गया है vendor/magento/theme-frontend-blank/Magento_Checkout/layout/checkout_index_index.xml

<referenceBlock name="minicart" remove="true"/>
<referenceContainer name="header.panel" remove="true"/>
<referenceBlock name="top.search" remove="true"/>
<referenceBlock name="catalog.compare.link" remove="true"/>
<referenceBlock name="catalog.topnav" remove="true"/>
<referenceContainer name="footer-container" remove="true"/>

प्रलेखन के अनुसार , एक के साथ हटाने को रद्द कर सकता है remove=false

इसलिए मैंने अपने विषय में एक फ़ाइल बनाई Magento_Checkout/layout/checkout_index_index.xml

<referenceBlock name="minicart" remove="false"/>
<referenceContainer name="header.panel" remove="false"/>
<referenceBlock name="top.search" remove="false"/>
<referenceBlock name="catalog.compare.link" remove="false"/>
<referenceBlock name="catalog.topnav" remove="false"/>
<referenceContainer name="footer-container" remove="false"/>

लेकिन यह काम नहीं करता है। इस github मुद्दे के अनुसार, यह एक बग नहीं है

संपादित करें:

यहाँ एक संबंधित फोरम पोस्ट भी है


3
पहली नजर में यह मेरे लिए एक बग की तरह लगता है। गितुब पर मुद्दा बंद हो गया मुझे लगता है क्योंकि यह एक प्रश्न जैसा लगता है। हो सकता है कि यदि आप व्यवहार को फिर से खोलने के लिए इस मुद्दे (या शायद एक नया मुद्दा) में एक पूर्ण उदाहरण प्रदान कर सकें।
डेविड वेरहोलन

आपको विषय xml फ़ाइल को ओवरराइड करना होगा।
सुरेश चिकानी

जवाबों:


3

मुझे भी इसी समस्या का सामना करना पड़ा और इसे डिफ़ॉल्ट फ़ोल्डर को ओवरराइड करके हल किया गया था।

डिफ़ॉल्ट रूप से यह luma / blank विषय में अक्षम है। आपको केवल अपने थीम फ़ोल्डर पर मूल संरचना बनाने और अपने इच्छित ब्लॉक को फिर से जोड़ना होगा

yourthemename \ Magento_Checkout \ लेआउट \ ओवरराइड \ विषय \ Magento \ खाली

बस यहां checkout_index_index.xml कॉपी करें और इस फ़ाइल में नीचे दिए गए कोड को पेस्ट करें

<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" layout="1column" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
  <body>
  <!-- <referenceBlock name="minicart" remove="true"/>-->
   <!--<referenceContainer name="header.panel" remove="true"/>-->
    <referenceBlock name="top.search" remove="true"/>
    <referenceBlock name="catalog.compare.link" remove="true"/>
    <referenceBlock name="catalog.topnav" remove="true"/>
   <!--<referenceContainer name="footer-container" remove="true"/>-->
</body>

आप इस तरह से सत्य / असत्य को हटा सकते हैं।


3

ऐसा लगता है कि यह एक बग है, और अब विकास में तय किया गया है।

# 1931 के अंक के रूप में गितूब पर चर्चा देखें ।

पैच खुद के रूप में पाया जा सकता है: 9bd170d

एक वैकल्पिक सुझाव, यदि आपके पास माता-पिता और बच्चे पर नियंत्रण है, तो displayइसके बजाय उपयोग करना थाremove

<!-- parent_layout_handle.xml -->
+ <referenceContainer name="root" display="false"/>
- <referenceContainer name="root" remove="true"/>

<!-- child_layout_handle.xml -->
+ <referenceContainer name="root" display="true"/>
- <referenceContainer name="root" remove="false"/>

3

इन सबको जोड़ने के बाद आपको कुछ भी ओवरराइड करने की आवश्यकता नहीं removeहैfalse

<referenceBlock name="minicart" remove="false"/>
<referenceContainer name="header.panel" remove="false"/>
<referenceBlock name="top.search" remove="false"/>
<referenceBlock name="catalog.compare.link" remove="false"/>
<referenceBlock name="catalog.topnav" remove="false"/>
<referenceContainer name="footer-container" remove="false"/>

आपको उनके लेआउट xml को फिर से बनाने की आवश्यकता है। एक उदाहरण top.searchब्लॉक की खोज करना और यह देखना होगा कि यह कैसे बनाया गया था और फिर उसी ब्लॉक xml को अपने लेआउट xml फ़ाइल में कॉपी करें।

एक उदाहरण इस तरह होगा

<referenceBlock name="product.info.description" remove="false" />

और ठीक उसके बाद

<block class="Magento\Catalog\Block\Product\View\Description" name="product.info.description" template="Magento_Catalog::product/view/attribute.phtml" group="detailed_info">
                            <arguments>
                                <argument name="at_call" xsi:type="string">getDescription</argument>
                                <argument name="at_code" xsi:type="string">description</argument>
                                <argument name="css_class" xsi:type="string">description</argument>
                                <argument name="at_label" xsi:type="string">none</argument>
                                <argument name="title" translate="true" xsi:type="string">Details</argument>
                            </arguments>
                        </block>

2
तुम सही हो! जब मैंने यह सवाल पूछा (2 साल पहले) यह एक बग था और काम नहीं कर रहा था। इस बीच यह तय हो गया।
फिलिप सैंडर

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