Не удается переопределить тему luma


Я использую Magento 2.1 Я создал свою собственную тему под названием 'MP/basic', которая основана на Luma. Я создал theme.xml, registration.php, веб-папка со всем, что мне нужно, внутри нее. Я могу выбрать эту новую тему в панели администратора, и она правильно отображается с моим логотипом на интерфейсе.

Я пытаюсь удалить каталог.сравните.блок ссылок вверху. ссылки и прочее.

Макет для этого блока, похоже, определен в

/vendor/magento/module-catalog/view/frontend/layout/default.xml

Я попытался добавить

<referenceBlock name="catalog.compare.link" remove="true" />

И это работает так, как ожидалось, но я не должен изменять файлы поставщиков. Поэтому я ищу правильную папку, в которой можно создать свою собственную default.xml файл для размещения нового кода: На данный момент у меня есть default.xml, и я изменил catalog_product_view.xml в котором я написал:

<page layout="1column" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
<body>      
<referenceBlock name="product.info.sku" remove="true" /> 
<referenceBlock name="view.addto.compare" remove="true" />  
<referenceBlock name="product.info.mailto" remove="true" />
</body>
</page>

Я искал везде в документации и в Интернете, но не могу найти правильную информацию по этому вопросу. Я прочитал все остальные вопрос по magento.stackexchange безрезультатно.

. Я перепробовал несколько мест, в том числе то, где определена моя тема:

/app/design/frontend/MP/basics/Magento_Catalog/layout/default.xml
OR 
/app/design/frontend/MP/basics/Magento_Catalog/page_layout/override/default.xml
OR 
/app/design/frontend/MP/basics/Magento_Catalog/layout/override/default.xml
OR 
/app/design/frontend/MP/basics/Magento_Catalog/layout/override/base/default.xml

И в нескольких других местах.

После каждой попытки Я очищал/очищал кэш, удалял pub/static/ и var/view_processed/ перераспределял статическое содержимое и выполнял настройку php bin/magento: обновление, без успеха. Новый default.xml или catalog_product_view.xml не отображается, как это происходит, когда я изменяю напрямую файлы люмы.

Я нахожусь в режиме разработчика, но он не работает в производстве. Я использую redis для кэша и вижу, что в консоли все сброшено правильно.

Пожалуйста, может кто-нибудь сказать мне, что я делаю не так, или как лучше поступить (это сводит меня с ума)

Большое спасибо, WM

Author: Rakesh Jesadiya, 2016-10-08

3 answers

Вы должны просто держать код ниже внутри default.xml файл для удаления функции сравнения с вашего сайта,

Путь : app/design/frontend/MP/basics/Magento_Catalog/layout/default.xml

 <?xml version="1.0"?>

    <page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">   
        <body>

            <referenceBlock name="category.product.addto.compare" remove="true"/>
            <referenceBlock name="catalogsearch.product.addto.compare" remove="true"/>
            <referenceBlock name="view.addto.compare" remove="true"/>
            <referenceBlock name="related.product.addto.compare" remove="true"/>
            <referenceBlock name="upsell.product.addto.compare" remove="true"/>
            <referenceBlock name="crosssell.product.addto.compare" remove="true"/>
            <referenceBlock name="view.addto.compare.bundle" remove="true"/>
            <referenceBlock name="catalog.compare.link" remove="true" />

        </body>
    </page>

Удалите папку var и очистите кэш.

 0
Author: Rakesh Jesadiya, 2016-10-08 04:47:21

Добавьте приведенный ниже код в указанный путь к файлу, вы должны указать default.xml в приведенном ниже пути

/app/design/frontend/MP/basic/Magento_Theme/layout/default.xml

<?xml version="1.0"?>
<!--
/**
 * Copyright © 2016 Magento. All rights reserved.
 * See COPYING.txt for license details.
 */
-->
<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
    <body>
        <referenceBlock name="catalog.compare.link" remove="true" />
    </body>
</page>
 0
Author: Suresh Chikani, 2016-10-08 04:49:52

Найдя решение, я отвечаю на свой вопрос.

Прежде всего, я перепробовал все пути, которые нашел в онлайн-документации . Найти хорошую и четкую информацию довольно сложно. Иногда документация устарела и ссылается на путь, который изменился, или просто действительна для git-версии magento 2.

Я попытался расширить или переопределить catalog_product_view.xml определено в теме luma, чтобы удалить блокировку, ссылающуюся на функцию "сравнить". То решения, опубликованные Ракешем и Ш. Пателем, не сработали, поэтому я решил попробовать скопировать/вставить catalogue_product_view.xml из темы luma в папке "Моя тема" и установите пустую тему в качестве родительской в theme.xml и добавьте следующие строки:

    <referenceBlock name="product.info.sku" remove="true" />
    <referenceBlock name="view.addto.compare" remove="true" />
    <referenceBlock name="product.info.mailto" remove="true" />

Но это не сработало... Чего-то не хватает, в xml-файле или, возможно, в другом месте (я думаю, что где-то в коде magento отсутствует сообщение об ошибке).

Теперь решение: Чтобы расширить или переопределить тему luma, вам необходимо скопируйте содержимое vendor/magento/theme-frontend-luma/ в вашу собственную папку темы (приложение/дизайн/интерфейс/поставщик/тема). Изменить registration.php и установите свой путь к теме (поставщик/тема), и theme.xml с вашим названием темы.

Это решение более стабильное, потому что вы зависите только от пустой темы. Поэтому, если команда magento решит изменить тему luma, это не повлияет на вас.

Затем, если вы хотите удалить ссылку "Сравнить" на странице продукта, просто отредактируйте свой app/design/frontdend/vendor/theme/Magento_Catalog/layout/catalog_product_view.xml

    <referenceBlock name="view.addto.compare" remove="true" />

Если вам нужно удалить код артикула или ссылку на почту, вы также можете добавить:

    <referenceBlock name="product.info.sku" remove="true" />
    <referenceBlock name="product.info.mailto" remove="true" />

Не удаляйте папку var/* или pub/static/* Не развертывайте статический контент повторно, вы просто потратите свое время (даже в рабочем режиме). Просто отключите кэш, внесите изменения и обновите страницу, она работает. Нет необходимости удалять/восстанавливать все...

 0
Author: will.I4M, 2016-10-10 01:28:43