pas*_*ine 5 attributes templates product magento
我想根据产品所属的属性集创建不同的产品视图:Magento 是否提供了执行此操作的方法?
- 更新 -
按照我添加的 dan.codes 建议
$update->addHandle('PRODUCT_ATTRIBUTE_SET_ID_'.$product->getAttributeSetId());
Run Code Online (Sandbox Code Playgroud)
到 Mage_Catalog_ProductController (我复制了 ProductController.php 并将其放在 local/Mage/Catalog/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>
Run Code Online (Sandbox Code Playgroud)
刚过
<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>
Run Code Online (Sandbox Code Playgroud)
然后我创建了catalog/product/view/attribute_set/book.phtml,但它没有显示在我的产品视图页面中。
- 更新 Magento 1.5 -
我注意到处理程序更新已在最后一个 Magento 版本中移动。
$update->addHandle('PRODUCT_TYPE_'.$product->getTypeId());
$update->addHandle('PRODUCT_'.$product->getId());
Run Code Online (Sandbox Code Playgroud)
现在位于 Mage/Catalog/Helper/Product/View.php 中。
我已经测试过了,效果仍然很好!
不,它没有,但您可以通过扩展 Mage_Catalog_ProductController 中的 _initProductLayout 方法来扩展功能,代码如下
$update = $this->getLayout()->getUpdate();
$update->addHandle('default');
$this->addActionLayoutHandles();
$update->addHandle('PRODUCT_TYPE_'.$product->getTypeId());
$update->addHandle('PRODUCT_'.$product->getId());
Run Code Online (Sandbox Code Playgroud)
你可以添加
$update->addHandle('PRODUCT_ATTRIBUTE_SET_ID_'.$product->getAttributeSetId());
Run Code Online (Sandbox Code Playgroud)
然后在你的layout.xml中你可以有
<PRODUCT_ATTRIBUTE_SET_ID_IDHERE>
<reference name="root">
<action method="setTemplate"><template>template/path/here.html</template></action>
</reference>
</PRODUCT_ATTRIBUTE_SET_ID_IDHERE>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5730 次 |
| 最近记录: |