Скасувати процес видалення блоку в 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"/>

Згідно з документацією , видалення можна за допомогою каналу 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 закрилося, я думаю, тому що це звучить як питання. Можливо, якщо ви могли б надати повний приклад у випуску (або, можливо, і в новому випуску), щоб відтворити поведінку, яку вона може бути відновлена.
Девід Верхолен

Ви повинні перекрити XML-файл теми.
Суреш Чікані

Відповіді:


3

Я також зіткнувся з тією ж проблемою, і це було вирішено шляхом зміни папки за замовчуванням.

За замовчуванням він відключений у luma / blank темі. вам просто потрібно створити основну структуру в папці тем і знову додати потрібні блоки

yourthemename \ Magento_Checkout \ layout \ override \ topic \ 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

Схоже, це помилка, і тепер вона виправлена ​​в програмі Development.

Дивіться дискусію про github як випуск №1931 .

Сам патч можна знайти як: 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 роки тому), це помилка і не працює. Тим часом це виправлено.
Філіп Сандер

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.