Layout Magento:模板文件和布局XML文件之间的关系

Layout Magento:模板文件和布局XML文件之间的关系,layout,magento,Layout,Magento,我发现详图索引模板(frontend\my_package\default\template\Callout中的文件)没有相应的布局XML文件(frontend\my_package\default\layout)。因此,我认为如果我在frontend\my_package\default\layout\callout.XML中有一个空白的布局XML文件,这将禁用Magento首页上的callout块。但是,它不起作用 签出模板确实有一个checkout.xml布局文件,因此将其设置为空白文件将

我发现详图索引模板(frontend\my_package\default\template\Callout中的文件)没有相应的布局XML文件(frontend\my_package\default\layout)。因此,我认为如果我在frontend\my_package\default\layout\callout.XML中有一个空白的布局XML文件,这将禁用Magento首页上的callout块。但是,它不起作用

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

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


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

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


如果您对长版本感兴趣,请阅读Magento版面系统上的my DRM free PDF

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

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

注:艾伦的回答涵盖了你问题中的所有其他内容