我在网上搜索了如何在产品页面上添加“模板”和模板。我构建了一个显示某种信息的自定义模块,我希望在我的产品的长描述中说明这一点。
我一直在尝试格式化模块的xml布局,但没有运气。
经过一番搜索,我发现了这个:Programatically create Magento blocks and inject them into layout我无法让它为我工作。但可能是因为我错过了什么。
我的模块结构如下:
代码:app / code / local / deveti / Countrypurchase
DESIGN:app / design / frontend / default / default / template / Countrypurchase / index.phtml
布局:app / design / frontend / default / default / layout / countrypurchase.xml
我知道正确的方法是编辑主布局文件,手动添加一个块,但我想在运行中这样做。
编辑:这有效!
所以我会在我的模块布局xml countrypurchase.xml中做这样的事情:
<?xml version="1.0"?>
<layout version="1.0">
<catalog_product_view>
<reference name="product.info">
<block type="core/template" name="product.countrypurchase" as="countrypurchase" template="countrypurchase/index.phtml" />
</reference>
</catalog_product_view>
</layout>
我添加了对catalog / product / view.phtml的调用:
<?php echo $this->getChildHtml('countrypurchase'); ?>
它有效;)
感谢您的帮助!
答案 0 :(得分:1)
产品视图页面的问题在于它的输出主要由模板catalog/product/view.phtml
中的PHP代码控制。 Magento没有提供很多可扩展性的开箱即用点。您可以将其添加到content
块,但这会将您的自定义内容完全置于顶部或完全位于底部。
我认为您需要修改模板并添加PHP代码以在您想要的位置呈现自定义块,例如:
<?php
echo $this->getChildHtml('product.countrypurchase');
?>
有了这个,您可以通过XML布局或以编程方式添加名称为product.countrypurchase
的块。