我尝试阅读文档,但我仍然不太了解magento的xml布局文件是如何工作的。
在目录app/design/frontend/default/modern/layout
中,我看到很多xml文件。如何确定网站上任何给定页面使用的xml文件?
例如,如果我在http://mysite.com
的主页上,我使用的是哪个布局xml文件?如果我在http://mysite.com/hello-world
,然后是哪个xml文件怎么办?
答案 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()
人们希望他们在这里得到的答案比从书本和文章中得到的答案要快。