1

我正在做一个 magento 定制站点,我需要添加产品的附加属性,例如它的类型、版本等。我是 magento 的新手,如何将新的自定义块添加到产品详细信息页面。我已经创建了一个模块,并且我正在使用以下编码。

app\code\local\SmartGrowth\CompatibleWith\Block\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 次,并且该块出现的位置是一个问题

$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 的新手,任何帮助将不胜感激。

4

2 回答 2

5

There's no need to add the block in code, it should be done using config XML files.

Create an XML config for your module (plenty of tutorials on this).

check catalog.xml (app/design/frontend/base/default/layout/)

<catalog_product_view translate="label">
 ....
</catalog_product_view>

This is where the blocks are setup for display on the product view page. You can modify this using your own modules XML file, something like this:

<catalog_product_view translate="label">
    <reference name="content">
        <block type="compatiblewith/compatible" name="my.block" template="compatiblewith/compatible/template.phtml" />
    </reference>
</catalog_product_view>

this will show your custom block on the product view page, inside the content area.

You also have an error with the naming of your block if it's called Compatible.php the class should be SmartGrowth_CompatibleWith_Block_Compatible

于 2013-01-29T16:46:37.190 回答
0

您可以在快速查看区域下方的产品商店(产品图像旁边的部分的css类名称)中添加自定义模板,而无需修改核心文件。在模块的布局文件中添加此代码以获得所需的结果(将“模块”“块”替换为您的实际模块和块名称):

<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。

希望它会有所帮助。

于 2014-01-03T12:58:56.837 回答