Annuler le processus de suppression du bloc dans layout.xml

13

Je souhaite annuler la suppression d'un bloc.

le bloc est supprimé dans 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"/>

Selon la documentation , on peut caneler la suppression avec remove=false.

J'ai donc créé un fichier dans mon thème en 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"/>

Mais cela ne fonctionne pas. Selon ce problème github, ce n'est pas un bug

ÉDITER:

Voici également un article du forum connexe

Philipp Sander
la source
3
à première vue, cela ressemble à un bug pour moi. Le problème sur github a été fermé, je pense, car cela ressemble à une question. Peut-être que si vous pouviez fournir un exemple complet dans le problème (ou peut-être aussi un nouveau problème) pour reproduire le comportement, il pourrait être rouvert.
David Verholen
Vous devez remplacer le fichier xml du thème.
Suresh Chikani

Réponses:

3

J'ai également rencontré le même problème et il a été résolu en remplaçant le dossier par défaut.

Par défaut, il est désactivé dans le thème luma / vide. il vous suffit de créer une structure de base sur votre dossier de thème et de rajouter les blocs que vous souhaitez

yourthemename \ Magento_Checkout \ layout \ override \ theme \ Magento \ blank

copiez simplement checkout_index_index.xml ici et dans ce fichier collez le code ci-dessous

<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>

Vous pouvez bloquer la suppression de true / false comme ceci.

Suresh Chikani
la source
3

Il semble que ce soit un bug, et il a maintenant été corrigé dans le développement.

Voir la discussion sur github dans le numéro # 1931 .

Le patch lui-même peut être trouvé comme: 9bd170d .

Une autre suggestion, si vous avez le contrôle sur le parent et l'enfant, était d'utiliser displayau lieu deremove

<!-- 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"/>
Alex Hadley
la source
3

Pas besoin de remplacer quoi que ce soit, après avoir ajouté tous ces éléments 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"/>

Vous devez recréer leur mise en page XML à nouveau. un exemple serait de rechercher le top.searchbloc et de voir comment il a été créé, puis de copier le même bloc xml dans votre fichier xml de mise en page.

Un exemple serait comme ça

<referenceBlock name="product.info.description" remove="false" />

et juste après

<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>
Zeeshan Khuwaja
la source
2
vous avez raison! quand j'ai posé cette question (il y a 2 ans) c'était un bug et ne fonctionnait pas. En attendant, c'est réparé.
Philipp Sander