属性セット X に属する製品で、すべての製品でレイアウトの更新を 1 つずつ設定せずに別のテンプレートを使用したい。
レイアウト ファイルにこの新しいハンドルを作成しました。
<product_view_bis>
<reference name="product.info">
<action method="setTemplate"><template>catalog/product/view7.phtml</template></action>
<block type="core/template" name="replacements" template="catalog/product/replacements.phtml">
<block type="replacements/replacement" name="replacement_options" template="catalog/product/replacement_options.phtml">
<action method="addOptionRenderer"><type>select</type><block>replacements/options</block><template>catalog/product/view/options/type/replacement.phtml</template></action>
</block>
</block>
</reference>
</product_view_bis>
次に、関連するヘルパー (Mage_Catalog_Helper_Product_View) を次のように拡張します。
if ($product->getAttributeSetId()==X) $update->addHandle('product_view_bis');
これにより、catalog/product/view.phtml が、いくつかのカスタム ブロックを呼び出す独自のファイルに置き換えられます。
まったく機能しません。しかし、私がこれを置くと:
<reference name="product.info">
<action method="setTemplate"><template>catalog/product/view7.phtml</template></action>
<block type="core/template" name="replacements" template="catalog/product/replacements.phtml">
<block type="replacements/replacement" name="replacement_options" template="catalog/product/replacement_options.phtml">
<action method="addOptionRenderer"><type>select</type><block>replacements/options</block><template>catalog/product/view/options/type/replacement.phtml</template></action>
</block>
</block>
</reference>
バックエンドの製品 Custom Layout Update で動作します。
誰でも私を助けることができますか?