Cancelar o processo de remoção do bloco no layout.xml

13

Quero desfazer a remoção de um bloco.

o bloco é removido em 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"/>

De acordo com a documentação , pode-se remover a remoção remove=false.

Então, eu criei um arquivo no meu tema em 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"/>

Mas isso não funciona. De acordo com este problema do github, não é um bug

EDITAR:

Aqui também está uma postagem no fórum relacionada

Philipp Sander
fonte
3
À primeira vista, isso me parece um bug. A questão no github foi encerrada, eu acho, porque soa como uma pergunta. Talvez se você pudesse fornecer um exemplo completo do problema (ou talvez também um novo problema) para reproduzir o comportamento, ele pudesse ser reaberto.
David Verholen
Você precisa substituir o arquivo xml do tema.
Suresh Chikani

Respostas:

3

Também enfrentei o mesmo problema e ele foi resolvido substituindo a pasta padrão.

Por padrão, ele está desativado no tema luma / em branco. você só precisa criar uma estrutura básica na sua pasta de temas e adicionar novamente os blocos que deseja

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

basta copiar checkout_index_index.xml aqui e neste arquivo cole o código abaixo

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

Você pode bloquear a remoção de verdadeiro / falso como este.

Suresh Chikani
fonte
3

Parece que é um erro e agora foi corrigido no Desenvolvimento.

Veja a discussão no github como edição # 1931 .

O patch em si pode ser encontrado como: 9bd170d .

Uma sugestão alternativa, se você tiver controle sobre pai e filho, era usar em displayvez 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
fonte
3

Não é necessário substituir nada, depois de adicionar tudo isso removeaofalse

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

Você precisa recriar o xml de layout novamente. um exemplo seria procurar top.searchbloco e ver como ele foi criado e, em seguida, copiar o mesmo bloco xml no seu arquivo xml de layout.

Um exemplo seria assim

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

e logo depois

<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
fonte
2
você está certo! quando eu fiz essa pergunta (há 2 anos), isso era um bug e não estava funcionando. Enquanto isso, está consertado.
Philipp Sander
0

Eu tive o mesmo problema e também quero mostrar o cabeçalho e rodapé na página de check-out, portanto, verifique este link e achará útil.

adicionar cabeçalho e rodapé no checkout

Dhaval
fonte