Есть ли способ изменить шаблон продукта во время выполнения в зависимости от некоторого атрибута продукта? Продукт имеет настраиваемый атрибут, который содержит путь к шаблону, а разные продукты могут иметь разные шаблоны.Magento изменить шаблон продукта во время выполнения
0
A
ответ
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) Override в блоке функции _prepareLayout добавить вам setTemplate логика:
protected function _prepareLayout()
{
$this->setTemplate('product/view/special.phptml');
parent::_prepareLayout();
}
Вы также можете сделать это и в контроллере, но это потребует от вас нескольких копий/паст, которые не были бы идеальны для обслуживания.