是否有办法根据某些产品属性在运行时更改产品模板?产品具有自定义属性,其中包含模板的路径,不同的产品可能具有不同的模板。
答案 0 :(得分:0)
您可以通过多种不同方式完成此操作。
我认为最好的方法是更换产品视图块。
1)创建一个新的块扩展Mage_Catalog_Block_Product_View
2)更新布局,以便页面使用该块或覆盖块。
如果你要删除许多默认的块,那么你可以使用布局来改变它:
<remove name="product.info"/>
<block type="ricard_catalog/product_view" name="ricard.product.info" as="product.info"/> <!-- I haven't set a template as the block have the logic to do so -->
3)在块中覆盖_prepareLayout函数,为你添加setTemplate逻辑:
protected function _prepareLayout()
{
$this->setTemplate('product/view/special.phptml');
parent::_prepareLayout();
}
您当然也可以在控制器中执行此操作,但这需要您执行一些不适合维护的复制/粘贴。