Hủy bỏ quá trình loại bỏ khối trong layout.xml


13

Tôi muốn hoàn tác việc loại bỏ một khối.

khối được gỡ bỏ trong 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"/>

Theo các tài liệu , người ta có thể canel loại bỏ với remove=false.

Vì vậy, tôi đã tạo một tập tin trong chủ đề của mình trong 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"/>

Dường như không hiệu quả. Theo vấn đề github này, nó không phải là một lỗi

BIÊN TẬP:

Đây cũng là một bài viết diễn đàn liên quan


3
thoạt nhìn điều này nghe có vẻ như là một lỗi với tôi. Vấn đề trên github đã bị đóng cửa tôi nghĩ bởi vì nó nghe giống như một câu hỏi. Có lẽ nếu bạn có thể cung cấp một ví dụ hoàn chỉnh trong vấn đề (hoặc cũng có thể là vấn đề mới) để tái tạo hành vi thì nó có thể được mở lại.
David Verholen

Bạn phải ghi đè tập tin xml chủ đề.
Suresh Chikani

Câu trả lời:


3

Tôi cũng gặp phải vấn đề tương tự và nó đã được giải quyết bằng cách ghi đè thư mục mặc định.

Theo mặc định, nó bị vô hiệu hóa trong chủ đề luma / trống. bạn chỉ cần tạo cấu trúc cơ bản trên thư mục chủ đề của mình và thêm lại các khối bạn muốn

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

chỉ cần sao chép checkout_index_index.xml tại đây và trong tệp này dán mã bên dưới

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

Bạn có thể chặn loại bỏ đúng / sai như thế này.


3

Điều này có vẻ như là một lỗi và hiện đã được sửa trong Phát triển.

Xem các cuộc thảo luận trên github như vấn đề # 1931 .

Bản vá có thể được tìm thấy là: 9bd170d .

Một đề nghị thay thế, nếu bạn có quyền kiểm soát cha mẹ và con cái, là sử dụng displaythay vìremove

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

Không cần ghi đè bất cứ điều gì, sau khi bạn thêm tất cả những thứ này removevàofalse

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

Bạn cần tạo lại bố cục xml của họ một lần nữa. một ví dụ sẽ là tìm kiếm top.searchkhối và xem cách nó được tạo và sau đó sao chép cùng một khối xml trong tệp xml bố cục của bạn.

Một ví dụ sẽ như thế này

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

và ngay sau đó

<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
bạn nói đúng! Khi tôi hỏi câu hỏi này (2 năm trước) thì đây là một lỗi và không hoạt động. Trong khi đó, nó đã được sửa.
Philipp Sander

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.