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


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.


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

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>

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

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.