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


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.


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

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>

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

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.