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"/>

ドキュメントよると、1つを削除することができ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
一見すると、これはバグのように聞こえます。githubの問題はクローズされました。質問のように聞こえるからです。問題の完全な例を提供できれば(または新しい問題でも)、動作を再現できる場合があります。
デビッドVerholen

テーマxmlファイルをオーバーライドする必要があります。
スレシュChikani

回答:


3

私も同じ問題に直面し、デフォルトのフォルダを上書きすることで解決しました。

デフォルトでは、luma / blankテーマでは無効になっています。テーマフォルダに基本構造を作成し、必要なブロックを再度追加するだけです

yourthemename \ Magento_Checkout \ layout \ override \ theme \ Magento \ blank

ここに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>

このようにtrue / falseの削除をブロックできます。


3

これはバグのように見えますが、現在は開発で修正されています。

問題#1931としてgithubの議論を参照してください。

パッチ自体は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年前)、これはバグであり、機能していませんでした。一方、それは修正されています。
フィリップサンダー

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.