1

我有一个小的自定义模块,它应该显示在所有产品页面上,但它没有。它仅在将其引用设置为“内容”时显示,但我希望它在已经存在的产品视图 div 中显示,因此,将其显示在“product.info”引用中。

这是我的代码:

应用程序/设计/前端/默认/公司/布局/公司/socialbuttons.xml

<?xml version="1.0"?>
<layout>
  <catalog_product_view>
    <reference name="product.info">
     <block type="core/template" name="company_socialbuttons" template="company/socialbuttons.phtml" />
</reference>
  </catalog_product_view>
</layout>

我花了几个小时找到错误,但没有成功,如果我很快找不到解决方案,我会用丑陋的方式(在父 phtml 中调用 phtml)。我究竟做错了什么?

4

2 回答 2

1

如果直接引用 product.info 块,则必须在产品视图模板中调用 getChildHtml():

echo $this->getChildHtml('company_socialbuttons');

于 2012-06-06T07:26:10.953 回答
1

product.info句柄是catalog/product_view块的实例,并且contentcore/text_list块的实例。后一个块正在渲染每个子块,即使getChildHtml()模板中没有对方法的调用。
所以,如果你想将你的块添加到,你应该在模板中 product.info调用方法。 或者,您可以尝试在块中引用其他块:或getChildHtml()
product.infoalert.urlsproduct.info.extrahint

于 2012-06-06T07:30:39.990 回答