0

布局目录中有几个布局文件,其中 page.xml 先处理,local.xml 最后处理。但是,我不清楚如何确定该目录中的哪些其他 xml 文件用于生成 Package Layout XML 对象。据推测,对于不同的frontName + controller name + action name,这些文件的不同子集合被捆绑在一起。此外,将它们捆绑在一起的顺序可能会影响像 Mage_Core_Block_Text_List 这样的块,它只会在添加块时显示它们。

那么,如何确定特定页面请求是否会在生成最终页面布局 XML 派生的包布局 XML 对象时将给定的 foo.xml 布局文件捆绑在一起?

谢谢。

4

1 回答 1

1

虽然涉及大量文件,(由于模块开发人员将布局文件添加到配置中,配置被加载并合并,然后布局更新对象从合并的配置中读取以确定要加载的文件),您可能正在寻找这

#File: app/code/core/Mage/Core/Model/Layout/Update.php
public function getFileLayoutUpdatesXml($area, $package, $theme, $storeId = null)
{
    //...
    $fileStr = file_get_contents($filename);
    $fileStr = str_replace($this->_subst['from'], $this->_subst['to'], $fileStr);
    $fileXml = simplexml_load_string($fileStr, $elementClass);
    //...
}

记录或 var_dump$filename变量,您将能够看到 Magento 正在尝试加载哪些文件。

于 2013-06-18T18:20:04.110 回答