【问题标题】:Magento code for $this->getChildHtml('topContainer');$this->getChildHtml('topContainer'); 的 Magento 代码
【发布时间】:2012-07-30 02:48:58
【问题描述】:

我正在编写一个 magento 主题。我启用了路径提示,但在 标头调用$this->getChildHtml('topContainer'); 不显示任何路径提示。我怎样才能找出哪个 进行上述调用时会加载 .phtml 文件,因此 我可以创建适当命名和定位的 .phtml 自定义文件?

【问题讨论】:

    标签: templates magento


    【解决方案1】:

    topContainer 是一个“page/html_wrapper”块。 这意味着没有与之关联的模板文件。

    这个块的作用是在一个 html 元素中渲染它的所有子块。 看看 'app/code/core/Mage/Page/Html/Wrapper.php' 中的 _toHtml() 方法。

    此致,

    乔纳森

    ---更多解释:

    你可以看看一个完美的例子:

    1. layout/customer.xml(在基本主题中)
    2. layout/sales.xml(在基本主题中)

    你有一个类似的块:

    <block type="page/html_wrapper" name="my.account.wrapper" translate="label">
    

    这是呈现所有其他客户帐户块的区域。 为了将块放置在该区域中,您必须创建一个“引用”节点,并将属性“name”设置为“wrapper”的名称。

    例如,如果您(在 sales.xml 中)查看“sales_order_view”句柄,您将看到 &lt;reference name="my.account.wrapper"&gt; 以及在此节点内的其他块。

    这些其他块是经典块(核心/模板),它们有模板文件。

    因此,您可以将“page/html_wrapper”块与“core/text_list”块进行比较。 唯一的区别是第一个将渲染的子块包装到一个 html 元素中。

    看看上面提到的 2 个文件,它们会对你有很大帮助。

    【讨论】:

    • 您好,我仍然不了解这些没有与之关联的模板文件的块是如何工作的。有人可以解释一下吗?
    • 我已经更新了我的遮阳篷,提供了更多的细节,希望对你有帮助
    • 请注意,您应该引用top.container 而不是topContainer - 前者是块的名称,而后者只是一个别名。
    猜你喜欢
    • 2012-06-09
    • 1970-01-01
    • 2013-06-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-29
    • 2014-06-23
    • 1970-01-01
    相关资源
    最近更新 更多