Индекс оформления Magento 2 xml не переопределяется

11

Я создаю тему Magento 2, используя пустую тему в качестве основы. Теперь проблема в пустой теме Magento 2, удаляющей верхний заголовок, панель поиска, мини-корзину на странице http: //www.yourdomain/checkout

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 темы. Для этого прочитайте раздел «Переопределение базовых макетов» в документах, ссылки на которые приведены выше.

Бен Крук
источник
уже отмечен как правильный
ответ
Что делать, если я получаю следующее сообщение: Переопределение файла представления ... не соответствует ни одному из файлов. ?
Василий Бурлаку
Это было установлено так в версии 2.06, но после обновления до 2.1 я получил это сообщение. Перемещение файла в папку «layout» сработало.
Василий Бурлаку
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:upgrade& setup:static-content:deployMagento FE печатал исключение с данным сообщением.
Василий Бурлаку