Magento - 确定页面使用的是哪个xml布局文件?

时间:2011-01-08 05:44:39

标签: xml layout magento

我尝试阅读文档,但我仍然不太了解magento的xml布局文件是如何工作的。

在目录app/design/frontend/default/modern/layout中,我看到很多xml文件。如何确定网站上任何给定页面使用的xml文件?

例如,如果我在http://mysite.com的主页上,我使用的是哪个布局xml文件?如果我在http://mysite.com/hello-world,然后是哪个xml文件怎么办?

3 个答案:

答案 0 :(得分:7)

高级版本:您永远不会只使用一个布局文件。

所有XML文件都组合在一个名为Package Layout的巨型XML文件中。

然后,每个页面请求产生许多称为“句柄”的特殊字符串符号。

然后,在包布局中搜索与这些句柄匹配的节点。

匹配的节点组合成一个称为页面布局的XML文件。

这是任何特定请求使用的布局文件。

(无耻,但有用,插件如下)

我写了更多in depth article on this,如果你转到Commerce Bug demo page并查看布局标签,你可以看到任何页面请求产生的句柄示例,以及包和页面布局。

答案 1 :(得分:1)

作为一个微不足道的“开始”(但请阅读Alan的链接),如果您在页面目录/产品/视图中,默认情况下加载的布局句柄为<catalog_product_view>。但总的来说,它要复杂得多。使用布局提示,您可以找出构成页面的块和模板,这通常更有用。

答案 2 :(得分:0)

每个要布局的文件都在这里加载 app/code/core/Mage/Core/Model/Layout/Update.php Mage_Core_Model_Layout_Update::fetchFileLayoutUpdates()

在这里为页面构造xml: app/code/core/Mage/Core/Model/Layout.php Mage_Core_Model_Layout::generateXml()

人们希望他们在这里得到的答案比从书本和文章中得到的答案要快。