Magento:自定义模块布局覆盖不起作用

时间:2012-06-06 01:22:15

标签: php xml magento layout

我有一个小的自定义模块应该在所有产品页面上显示,但它没有。它仅在设置对" content"的引用时显示,但我希望它显示在已有的产品视图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)。我做错了什么?

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:1)

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