商品が属している属性セットに基づいて異なる商品ビューを作成したい: Magentoはこれを行う方法を提供していますか?Magento:属性セットに基づくテンプレート
- UPDATE -
後dan.codes提案私はMage_Catalog_ProductControllerに
$update->addHandle('PRODUCT_ATTRIBUTE_SET_ID_'.$product->getAttributeSetId());
を追加しました(私はProductController.phpを複製してローカルに入れて/メイジ/カタログ/コントローラ/) 。
は、その後、私は
<PRODUCT_ATTRIBUTE_SET_ID_9> // PRODUCT ID of Book Attribute Set
<label>Catalog Product View (Book)</label>
<reference name="product.info">
<block type="catalog/product_view_type_book" name="product.info.book" as="product_type_data" template="catalog/product/view/attribute_set/book.phtml">
<block type="core/text_list" name="product.info.book.extra" as="product_type_data_extra"/>
</block>
</reference>
</PRODUCT_ATTRIBUTE_SET_ID_9>
をcatalog.xmlをするだけで
<PRODUCT_TYPE_virtual translate="label" module="catalog">
<label>Catalog Product View (Virtual)</label>
<reference name="product.info">
<block type="catalog/product_view_type_virtual" name="product.info.virtual" as="product_type_data" template="catalog/product/view/type/virtual.phtml">
<block type="core/text_list" name="product.info.virtual.extra" as="product_type_data_extra"/>
</block>
</reference>
</PRODUCT_TYPE_virtual>
後、私はその後、カタログ/製品/ビュー/ attribute_set/book.phtmlを作成したが、それは私の中に表示されていないこれを追加しました製品ビューページ。
- UPDATE Magentoのは、1.5から
私は、ハンドラの更新が最後のMagentoのリリースに移動したことに気付きました。
$update->addHandle('PRODUCT_TYPE_'.$product->getTypeId());
$update->addHandle('PRODUCT_'.$product->getId());
は現在Mage/Catalog/Helper/Product/View.phpにあります。
私はテストしましたが、それでも素晴らしいです!
その多分そのあなただけのコードが動作していることを確認する、あなたのブロックに何をしているか、私のために働い:PHP私は、これは可能性は、以下のレイアウトXMLで使用できるようになり
を持っていますルートを参照するようにXMLを変更し、テンプレートを別のものに設定し、ページが変更されているかどうかを確認します。 ' –