Annulla il processo di rimozione del blocco in layout.xml


13

Voglio annullare la rimozione di un blocco.

il blocco viene rimosso in 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"/>

Secondo la documentazione , è possibile eliminare la rimozione con remove=false.

Quindi ho creato un file nel mio tema in 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"/>

Ma questo non funziona. Secondo questo problema di github, non è un bug

MODIFICARE:

Ecco anche un post sul forum correlato


3
a prima vista mi sembra un insetto. Penso che il problema su github sia stato chiuso perché sembra una domanda. Forse se tu potessi fornire un esempio completo nel problema (o forse anche un nuovo problema) per riprodurre il comportamento, potrebbe essere riaperto.
David Verholen,

Devi sovrascrivere il file xml del tema.
Suresh Chikani,

Risposte:


3

Ho anche affrontato lo stesso problema ed è stato risolto sovrascrivendo la cartella predefinita.

Di default è disabilitato in tema luma / vuoto. devi solo creare una struttura di base nella cartella del tuo tema e aggiungere nuovamente i blocchi desiderati

yourthemename \ Magento_Checkout \ layout \ esclusione \ tema \ vuoto Magento \

copia qui checkout_index_index.xml e in questo file incolla il codice seguente

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

Puoi bloccare rimuovere vero / falso in questo modo.


3

Sembra che si tratti di un bug ed è stato corretto in Sviluppo.

Vedi la discussione su github come numero 1931 .

La patch stessa può essere trovata come: 9bd170d .

Un suggerimento alternativo, se si ha il controllo su genitori e figli, era usare displayinvece diremove

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

Non è necessario sovrascrivere nulla, dopo aver aggiunto tutti questi 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"/>

Devi ricreare nuovamente il loro layout xml. un esempio potrebbe essere cercare il top.searchblocco e vedere come è stato creato e quindi copiare lo stesso blocco xml nel file xml del layout.

Un esempio sarebbe come questo

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

e subito dopo

<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
hai ragione! quando ho fatto questa domanda (2 anni fa) questo era un bug e non funzionava. Nel frattempo è stato risolto.
Philipp Sander,

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.