1

私はマジェントのカスタマイズサイトを行っています。タイプ、バージョンなどの製品の追加属性を追加する必要があります。マジェントを初めて使用します。新しいカスタムブロックを製品の詳細ページに追加するにはどうすればよいですか。モジュールを作成しました。以下のコーディングを使用しています。

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

コードにブロックを追加する必要はありません。設定 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 である必要があります。

于 2013-01-29T16:46:37.190 に答える