Magento:哪些文件用于生成Package Layout XML对象?

时间:2013-06-18 18:04:33

标签: magento magento-1.7

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

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

感谢。

1 个答案:

答案 0 :(得分: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尝试加载哪些文件。