我正在做一个magento习惯化网站,我需要添加产品的附加属性,比如它的类型,版本等。我是magento的新手,如何将新的自定义块添加到产品详细信息页面。我创建了一个模块,我正在使用以下编码。
应用\代码\本地\明智开发\ CompatibleWith \块\ compatible.php
类SmartGrowth_CompatibleWith_Block_CompatibleWith扩展Mage_Catalog_Block_Product_View
{
protected function _prepareLayout()
{
//$this->getProduct()->setName($this->getProduct()->getPrice());
$this->getProduct()->setName($this->getProduct()->getShortDescription());
parent::_prepareLayout();
}
}
我在_prepareLayout()中使用了以下编码,但它似乎重复了5次块,并且块出现的位置是probs
$block = $this->getLayout()->createBlock(
'Mage_Core_Block_Template',
'my_block_name_here',
array('template' => 'catalog/product/compatiblewith.phtml')
);
$this->getLayout()->getBlock('content')->append($block);
请帮助我如何做到这一点,我是magento的新手,任何帮助将不胜感激。
答案 0 :(得分:5)
不需要在代码中添加块,应该使用配置XML文件来完成。
为您的模块创建XML配置(有很多关于此的教程)。
检查catalog.xml(app / design / frontend / base / default / layout /)
<catalog_product_view translate="label">
....
</catalog_product_view>
这是设置块以在产品视图页面上显示的位置。您可以使用自己的模块XML文件对其进行修改,如下所示:
<catalog_product_view translate="label">
<reference name="content">
<block type="compatiblewith/compatible" name="my.block" template="compatiblewith/compatible/template.phtml" />
</reference>
</catalog_product_view>
这将在产品视图页面的内容区域内显示您的自定义块。
如果块的名称为Compatible.php,则块的命名也会出错。该类应为SmartGrowth_CompatibleWith_Block_Compatible
答案 1 :(得分:0)
您可以在快速查看区域下方的product-shop(产品图像旁边的部分的css类名称)中添加自定义模板,而无需修改核心文件。在模块的布局文件中添加此代码以获取所需的结果(将“module”“block”替换为您的实际模块和块名称):
<catalog_product_view>
<reference name="content">
<reference name="product.info">
<block type="module/block" name="module_block" as="other" template="module/block.phtml"/>
</reference>
</reference>
</catalog_product_view>
使用的自定义块的目标是“其他”,它是magento的view.phtml(/app/design/frontend/base/default/template/catalog/product/view.phtml)中默认提供的子HTML。
希望它会有所帮助。