Cancelar el proceso de eliminación del bloque en layout.xml

13

Quiero deshacer la eliminación de un bloque.

el bloque se elimina en 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"/>

Según la documentación , se puede canalizar la eliminación con remove=false.

Entonces creé un archivo en mi tema 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"/>

Pero esto no funciona. De acuerdo con este problema de Github, no es un error

EDITAR:

Aquí también hay una publicación relacionada en el foro

Philipp Sander
fuente
3
a primera vista esto me parece un error. Creo que el tema de github se cerró porque parece una pregunta. Tal vez si pudiera proporcionar un ejemplo completo en el problema (o tal vez también un nuevo problema) para reproducir el comportamiento, podría volver a abrirse.
David Verholen
Tienes que anular el archivo xml del tema.
Suresh Chikani

Respuestas:

3

También enfrenté el mismo problema y se resolvió anulando la carpeta predeterminada.

Por defecto está deshabilitado en luma / tema en blanco. solo necesita crear una estructura básica en su carpeta de temas y volver a agregar los bloques que desee

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

simplemente copie checkout_index_index.xml aquí y en este archivo pegue el siguiente código

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

Puede bloquear eliminar verdadero / falso de esta manera.

Suresh Chikani
fuente
3

Parece que es un error, y ahora se ha solucionado en Desarrollo.

Vea la discusión sobre github como el número 1931 .

El parche en sí se puede encontrar como: 9bd170d .

Una sugerencia alternativa, si tiene control sobre padre e hijo, era usar en displaylugar 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
fuente
3

No es necesario anular nada, después de agregar todo esto removeafalse

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

Necesita volver a crear su diseño xml nuevamente. un ejemplo sería buscartop.search bloque y ver cómo se creó y luego copiar el mismo bloque xml en su archivo xml de diseño.

Un ejemplo sería así

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

y justo despué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
fuente
2
¡estás en lo correcto! cuando hice esta pregunta (hace 2 años), era un error y no funcionaba. Mientras tanto, está arreglado.
Philipp Sander