Magento 2チェックアウトインデックスxmlは上書きされません


11

空白のテーマをベースにMagento 2テーマを作成しています。ここで問題は、http://www.yourdomain/checkout ページの上部ヘッダー、検索バー、ミニカートを削除するMagento 2の空白のテーマです。

vendor\magento\theme-frontend-blank\Magento_Checkout\layoutcheckout_cart_index.xml

彼らは使用して削除しました

<?xml version="1.0"?>
<!--
/**
 * Copyright © 2015 Magento. All rights reserved.
 * See COPYING.txt for license details.
 */
-->
<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance&quot; 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>
</page>

ここで同じテーマをオーバーライドすると、機能しません。私が欲しいのはそれらの要素を削除しないことなので、ここでXMLファイルを上書きする必要があります

app\design\frontend\NAMESPACE\themename\Magento_Checkout\layout\checkout_index_index.xml

<?xml version="1.0"?>
<!--
/**
 * Copyright © 2015 Magento. All rights reserved.
 * See COPYING.txt for license details.
 */
-->
<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" layout="2columns-left" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
    <body>
        <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"/>

    </body>
</page>

remove="false"これらの要素をチェックアウトから削除しないように書いています。

しかし、それはまだアイデアを削除するアイデアですか?

キャッシュをクリアしてインデックスを再作成した後、確認しましたが機能しません

回答:


15

レイアウトXMLファイルを(拡張するのではなく)オーバーライドするには、少し異なるディレクトリに追加する必要があります。詳細は公式ドキュメントに記載されています

<theme_dir>
  |__/<Namespace_Module>
    |__/layout
      |__/override
         |__/theme
            |__/<Parent_Vendor>
               |__/<parent_theme>
                  |--<layout1>.xml
                  |--<layout2>.xml

したがって、Magento \ Blankをオーバーライドする必要がある場合は、次のようになります。

app\design\frontend\NAMESPACE\themename\Magento_Checkout\layout\override\theme\Magento\blank\checkout_index_index.xml

テーマのオーバーライドが機能しない場合は、テーマのXMLではなく、モジュール自体からのレイアウトをオーバーライドする必要がないことを確認してください。これを行うには、上記のドキュメントの「基本レイアウトの上書き」セクションをお読みください。


すでに正しい
回答

次のメッセージが表示された場合の対処方法オーバーライドするビューファイル...がどのファイルとも一致しません。
Vasilii Burlacu 16

バージョン2.06ではこのように設定されていましたが、2.1にアップグレードすると、このメッセージが表示されました。「レイアウト」フォルダへのファイルの移動が機能しました。
Vasilii Burlacu 16

1
@VasiliiBurlacu-2.1で試す機会はありませんでしたが、ドキュメントによると、XMLファイルを上書きする方法は2.1でも同じです-devdocs.magento.com/guides/v2.1/frontend-dev-guide/layouts / ...
ベン・クルック

@ Ben-Space48オーバーライドメソッドが変更されたとは言わなかったので、与えられたエラーについて書いた。私はcheckout_index_index.mlあなたのポストは言うが、2.1にアップグレードした後、実行場所をすぐそこにあったsetup:upgradesetup:static-content:deployMagentoのFEは、与えられたメッセージと例外を印刷しました。
Vasilii Burlacu 16
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.