【问题标题】:Magento: relationship between template files and the layout XML fileMagento:模板文件和布局 XML 文件之间的关系
【发布时间】:2011-09-19 23:57:56
【问题描述】:

我看到标注模板(frontend\my_package\default\template\callouts 中的文件)没有相应的布局 XML 文件(frontend\my_package\default\layout)。所以,我想如果我在 frontend\my_package\default\layout\callouts.xml 有一个空白布局 XML 文件,这将禁用 Magento 首页上的标注块。但是,它不起作用。

结帐模板确实有一个 checkout.xml 布局文件,因此将其设为空白文件会从我正在查看的页面中删除结帐块。对于结帐块情况,checkout.xml 是否覆盖从活动目录.xml 中调用的内容?我没有从 catalog.xml 中删除相应的行,但是空白的 checkout.xml 文件无论如何都会禁用此块。

我知道删除 catalog.xml 中任何块的相应行会删除/不会在网页上加载我想要的内容,但我想知道为什么我尝试“覆盖”标注不起作用.蒂亚!

注意:我已经禁用了缓存。

【问题讨论】:

    标签: layout magento


    【解决方案1】:

    简短版:所有这些 XML 文件都合并为一个巨大的 XML 文件。然后,在每次请求期间,选择某些顶级标签( 等;这些标签称为句柄)内的 XML,并将其合并到一个较小的 XML 文件中。留在较小的 XML 文件中的节点是一组用于创建某些块的指令。每个(嗯,大多数)块都有一个 phtml 模板文件。当您向local.xml 添加内容时,您是在说“除了正常内容之外,还要添加这些内容”。当您替换catalog.xml 这样的整个文件时,您是在说“我们是我的文件”,请忽略您通常执行的操作。

    如果您对长版感兴趣,请阅读 No Frills Magento Layout,我在 Magento 布局系统上的 DRM 免费 PDF。

    【讨论】:

      【解决方案2】:

      “覆盖”标注的一种解决方案是:

      /app/design/frontend/base/default/layout/local.xml

      <layout version="0.1.0">
          <default>
              <remove name="left.permanent.callout" />
              <remove name="right.permanent.callout" />
          </default>
      </layout>
      

      注意:不过,艾伦的回答涵盖了您问题中的所有其他内容。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-12-12
        • 2015-10-11
        • 2017-04-15
        • 1970-01-01
        相关资源
        最近更新 更多