Я хочу создать различные представления продукта на основе набора атрибутов, к которому принадлежит продукт: предоставляет ли Magento способ сделать это?
- ОБНОВЛЕНИЕ -
Следуя предложению dan.codes, я добавил
$update->addHandle('PRODUCT_ATTRIBUTE_SET_ID_'.$product->getAttributeSetId());
в Mage_Catalog_ProductController (я продублировал ProductController.php и поместил егов local / Mage / Catalogue / controllers /).
Затем я добавил это в catalog.xml
<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>
сразу после
<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>
Затем я создал каталог /product / view / attribute_set / book.phtml, но он не отображается на странице просмотра моего продукта.
- ОБНОВЛЕНИЕ MAGENTO 1.5 -
Я заметил, чтоОбновление обработчика перенесено в последний выпуск Magento.
$update->addHandle('PRODUCT_TYPE_'.$product->getTypeId());
$update->addHandle('PRODUCT_'.$product->getId());
сейчас в Mage / Catalog / Helper / Product / View.php.
Я тестировал, и он все еще прекрасно работает!