Anuluj proces usuwania bloku w layout.xml


13

Chcę cofnąć usunięcie bloku.

blok jest usuwany w 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"/>

Zgodnie z dokumentacją można usunąć usunięcie za pomocą remove=false.

Więc utworzyłem plik w moim motywie w 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"/>

Ale to nie działa. Według tego problemu z githubem nie jest to błąd

EDYTOWAĆ:

Oto także powiązany post na forum


3
na pierwszy rzut oka brzmi to jak błąd. Wydaje mi się, że problem dotyczący github został zamknięty, ponieważ brzmi jak pytanie. Może gdybyś mógł podać pełny przykład w numerze (lub może także nowy numer) w celu odtworzenia zachowania, może on zostać ponownie otwarty.
David Verholen

Musisz przesłonić plik XML motywu.
Suresh Chikani,

Odpowiedzi:


3

Napotkałem również ten sam problem i został on rozwiązany przez przesłonięcie folderu domyślnego.

Domyślnie jest wyłączony w motywie luma / blank. wystarczy utworzyć podstawową strukturę w folderze motywu i ponownie dodać potrzebne bloki

twoja nazwa \ Magento_Kasa \ układ \ przesłanianie \ motyw \ Magento \ pusty

po prostu skopiuj checkout_index_index.xml tutaj iw tym pliku wklej poniższy kod

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

Możesz zablokować usunięcie true / false w ten sposób.


3

Wygląda na to, że jest to błąd i został teraz naprawiony w fazie rozwoju.

Zobacz dyskusję na temat github jako numer 1931 .

Samą łatkę można znaleźć jako: 9bd170d .

Alternatywną sugestią, jeśli masz kontrolę nad rodzicem i dzieckiem, było użycie displayzamiastremove

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

Nie ma potrzeby, aby zastąpić niczego, po dodaniu wszystkich z nich removedofalse

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

Musisz ponownie odtworzyć ich układ xml. przykładem może być wyszukiwanie top.searchbloku i zobaczenie, jak został utworzony, a następnie skopiowanie tego samego bloku xml do pliku xml układu.

Przykład byłby taki

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

i zaraz potem

<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
masz rację! kiedy zadałem to pytanie (2 lata temu), był to błąd i nie działał. Tymczasem jest to naprawione.
Philipp Sander,

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.