Файл макета для устранения неисправностей в Magento 2


9

Я использую Magento 2.02. Я создал свою собственную тему под названием «cff», которая основана на Luma.

Я пытаюсь снять catalog.compare.linkблок вtop.links

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

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

И если я добавлю

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

в этом файле, как и ожидалось, текст «Сравнить товары» исчезает из блока top.links.

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

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

/app/design/frontend/cff/cff/Magento_Catalog/layout/default.xml

Пожалуйста, кто-нибудь может сказать мне, где должен находиться макет переопределения?

Это код внутри моего основного макета 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="catalog.compare.link" remove="true" />
    </body>
</page>

Прежде всего, пожалуйста, обновите до последней версии Magento2 (2.1.5), и она должна работать нормально. Кроме того, если вы находитесь в среде разработки, НЕ используйте статическое развертывание контента, то есть для производства, и при разработке вы должны использовать символические ссылки. Также не забудьте удалить / обновить кеш "php bin / magento cache: flush" в корне вашего magento или у администратора
Влад Патру

Ответы:


1

Вы можете попробовать удалить контейнер ссылок сравнения: compare-link-wrapper

<referenceContainer name="compare-link-wrapper" remove="true" />

Существует небольшая документация относительно удаления элементов с помощью макета XML, но вы можете найти ее здесь: http://devdocs.magento.com/guides/v2.0/frontend-dev-guide/layouts/xml-instructions.html

Что касается вашего вопроса о том, где должен храниться этот файл: вы правы, полагая, что нам нужно расширить файл default.xml, добавив его в нашу тему Magento_Catalog/layout/default.xmlилиMagento_Theme/layout/default.xml

Я просто попытался использовать тот же код, который вы предоставили, и у меня не было проблем с удалением блока сравнения. Я бы дважды проверил, что вы очистили свои кеши и вам не нужно ничего публиковать в каталоге вашего паба.

ОБНОВЛЕНИЕ 4/7/16:

Вы можете обновить каталог паба, удалив pub/staticкаталог вручную и запустив команду:

setup:static-content:deploy

Привет, Тайлер, я не понимаю твоего первого отправления. Что такое «сравнительный эталонный контейнер»? код, который вы даете, не отображается в /vendor/magento/module-catalog/view/frontend/layout/default.xml. Я пробовал файл в обоих местах, которые вы предлагаете, но он не работает. Пожалуйста, вы можете вспомнить причину, почему это может быть? И, наконец, что вы имеете в виду «публиковать что-либо в каталоге вашего паба? Не должен ли magento позаботиться обо всем в этой папке? Извините, что смутный, кривая обучения чертовски крута вокруг этих частей ...
jodaki

Извините, я забыл сказать спасибо за ваш ответ, Тайлер! Я очень ценю вашу помощь ..
Jodaki

@jo Я добавил немного
Тайлер Крафт

0

В папке вашей темы сначала перейдите в папку Magento_Theme / layout .

затем создайте папку layout / override / base и добавьте файл default.xml от поставщика и добавьте <referenceBlock name="catalog.compare.link" remove="true" />.


не нужно переопределять, просто обновите до последней версии Magento, используя метод, который он уже пробовал, и, возможно, просто удалите кеш
Влад Патру

0

Я попытался удалить referenceContainer sidebar.additional со страницы со списком товаров. Я сделал следующие процедуры.

  1. Я только что скопировал <referenceContainer name="sidebar.additional">из \ vendor \ magento \ module-catalog \ view \ frontend \ layout \ default.xml
  2. И положить его под <body>. Код должен выглядеть <referenceContainer name="sidebar.additional" remove="true"></referenceContainer>в app \ design \ frontend \ theme \ theme-name \ Magento_Theme \ layout \ default.xml.
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.