aktualizuj układ programowo w obserwatorze zdarzeń magento
Próbuję zmienić szablon (view.phtml) bloku (product.info
) na stronie szczegółów produktu, aby to zrobić, obserwuję wydarzenie (controller_action_layout_generate_blocks_before
), w nim po dokonaniu niezbędnych kontroli próbuję zmienić szablon bloku (product.info
) w następujący sposób:
$layout = $observer->getEvent()->getLayout();
$layout->getUpdate()->addUpdate('
<reference name="product.info">
<action method="setTemplate">
<template>customlayout/product/view.phtml</template>
</action>
</reference>');
$layout->getUpdate()->load();
$layout->generateXml();
Jeśli to zrobię"<remove name='product.info'/>"
, zostanie usunięty, ale podczas próby wykonania powyższego nie działa.
Edytować:
Wymaganiem jest dynamiczne przełączenie szablonu (szczegółu produktu) na wybrany (w CustomModule) na bieżący produkt.