【发布时间】:2012-07-30 02:48:58
【问题描述】:
我正在编写一个 magento 主题。我启用了路径提示,但在
标头调用$this->getChildHtml('topContainer');
不显示任何路径提示。我怎样才能找出哪个
进行上述调用时会加载 .phtml 文件,因此
我可以创建适当命名和定位的
.phtml 自定义文件?
【问题讨论】:
我正在编写一个 magento 主题。我启用了路径提示,但在
标头调用$this->getChildHtml('topContainer');
不显示任何路径提示。我怎样才能找出哪个
进行上述调用时会加载 .phtml 文件,因此
我可以创建适当命名和定位的
.phtml 自定义文件?
【问题讨论】:
topContainer 是一个“page/html_wrapper”块。 这意味着没有与之关联的模板文件。
这个块的作用是在一个 html 元素中渲染它的所有子块。 看看 'app/code/core/Mage/Page/Html/Wrapper.php' 中的 _toHtml() 方法。
此致,
乔纳森
---更多解释:
你可以看看一个完美的例子:
你有一个类似的块:
<block type="page/html_wrapper" name="my.account.wrapper" translate="label">
这是呈现所有其他客户帐户块的区域。 为了将块放置在该区域中,您必须创建一个“引用”节点,并将属性“name”设置为“wrapper”的名称。
例如,如果您(在 sales.xml 中)查看“sales_order_view”句柄,您将看到 <reference name="my.account.wrapper"> 以及在此节点内的其他块。
这些其他块是经典块(核心/模板),它们有模板文件。
因此,您可以将“page/html_wrapper”块与“core/text_list”块进行比较。 唯一的区别是第一个将渲染的子块包装到一个 html 元素中。
看看上面提到的 2 个文件,它们会对你有很大帮助。
【讨论】:
top.container 而不是topContainer - 前者是块的名称,而后者只是一个别名。