布局目录中有几个布局文件,首先处理page.xml,最后处理local.xml。但是,我不清楚如何确定该目录中的哪些其他xml文件用于生成Package Layout XML对象。据推测,对于不同的frontName +控制器名称+动作名称,这些文件的不同子集合被捆绑在一起。此外,这些聚集在一起的顺序可能会影响像Mage_Core_Block_Text_List这样的块,它们只会在添加时显示块。
那么,如何确定特定页面请求是否会在生成最终页面布局XML的包布局XML对象时将给定的foo.xml布局文件聚集在一起?
感谢。
答案 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尝试加载哪些文件。