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


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.


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

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>

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

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.