【问题标题】:Magento - determine which xml layout file a page is using?Magento - 确定页面正在使用哪个 xml 布局文件?
【发布时间】:2011-06-05 16:15:45
【问题描述】:

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

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

例如,如果我在http://mysite.com 的主页上,我使用的是哪个布局xml 文件?如果我在http://mysite.com/hello-world 上,那会是哪个 xml 文件呢?

【问题讨论】:

    标签: xml layout magento


    【解决方案1】:

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

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

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

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

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

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

    (无耻,但有用,后面的插件)

    我写了更多in depth article on this,如果您转到Commerce Bug demo page 并查看“布局”选项卡,您可以看到任何页面请求产生的句柄示例,以及“包和页面”的输出布局。

    【讨论】:

    • 对于那些正在寻找可以完成许多与 Alan 的 Commerce Bug 扩展相同的事情的免费扩展的人,我在 Mgt-Commerce 上找到了一个。 Developer Toolbar
    • 我想知道如何确定哪些句柄与请求相关。我可以影响吗?
    • @robsch 如果您在这里或在 Magento Stack Exchange 上提出正确的问题,您更有可能得到答案。
    • 谢谢艾伦。我会这样做的。
    • 问题可以在这里找到:magento.stackexchange.com/questions/31519/…
    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

      要布局的每个文件都在这里加载 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()

      人们希望他们在这里比从书籍和文章中更快地得到答案。

      【讨论】:

        猜你喜欢
        • 2013-03-23
        • 1970-01-01
        • 1970-01-01
        • 2014-02-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-03-21
        相关资源
        最近更新 更多