1

私はカスタム モジュールを構築しています。場合によっては、価格ブロックを価格が表示されていないカスタム ブロックに置き換えたいのですが、ブロックをオーバーライドできないようです。モジュール config.xml で次のコードを使用しました

    <catalog>
      <rewrite>
        <product_price>Namespace_Module_Block_Catalog_Product_Price</product_price>
      </rewrite>
   </catalog>

モジュール テンプレート ディレクトリに /product/price.phtml を作成しましたが、price.phtml は最初の catalog/product/price.phtml をオーバーライドしません。そのテンプレート ファイルをオーバーライドするにはどうすればよいですか?

4

2 に答える 2

1

元のブロック構成がまだ有効であり、標準価格テンプレートを設定しているようです。

ブロッククラスはテンプレートを明示的に設定していますか?

protected function _construct()
{
    $this->setTemplate('yourmoduledirectory/product/price.phtml ');
}

または、新しいテンプレートを設定するレイアウトの更新を提供しましたか?

于 2013-01-18T08:25:36.967 に答える
1

独自のテンプレート ファイルと独自のブロック クラスを作成します。さらに、特定の IndexController をオーバーライドする必要があります。そこで、レイアウトを更新し、元のブロックを独自のものに置き換える必要があります。

プログラムによるブロックの削除: プログラムによるレイアウトからのブロックの削除

于 2013-01-18T08:00:39.397 に答える