取消layout.xml中的块删除过程


13

我想撤消删除块。

块被删除 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"/>

根据文档,一个罐头可以用remove=false

所以我在主题中创建了一个文件 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"/>

但这是行不通的。根据这个github问题,这不是错误

编辑:

这也是相关的论坛帖子


3
乍一看,这听起来像是我的虫子。我认为github上的问题已关闭,因为这听起来像个问题。也许您可以在问题中提供完整的示例(或可能是新问题)来重现该行为,则可以重新打开该行为。
David Verholen '16

您必须覆盖主题xml文件。
Suresh Chikani

Answers:


3

我也遇到了同样的问题,它通过覆盖默认文件夹得以解决。

默认情况下,它在亮度/空白主题中处于禁用状态。您只需要在主题文件夹上创建基本结构,然后重新添加所需的块

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

只需在此处复制checkout_index_index.xml,然后在此文件中粘贴以下代码

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

您可以像这样阻止删除true / false。


3

看来这是一个错误,现已在开发中修复。

参见github上的讨论,编号#1931

修补程序本身可以找到:9bd170d

如果您可以控制父母和孩子,另一个建议是使用display而不是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

将所有这些都添加remove到后,无需覆盖任何内容false

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

您需要再次重新创建其布局xml。一个示例是搜索top.search块并查看其创建方式,然后在布局xml文件中复制相同的块xml。

一个例子就是这样

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

然后

<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
你是对的!当我问这个问题(2年前)时,这是一个错误,无法正常工作。同时,它是固定的。
菲利普·桑德

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.