Aktualisieren Sie das Layout programmgesteuert in magento event observer
Ich versuche die Vorlage (view.phtml) eines Blocks zu ändern (product.info
) Um die Produktdetailseite aufzurufen, beobachte ich ein Ereignis (controller_action_layout_generate_blocks_before
), darin versuche ich nach notwendigen Überprüfungen die Vorlage des Blocks zu ändern (product.info
) auf folgende Weise:
$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();
Wenn ich sage"<remove name='product.info'/>"
Es wird entfernt, aber wenn Sie versuchen, das oben genannte zu tun, funktioniert es nicht.
Bearbeiten:
Voraussetzung ist, dass die Vorlage (Produktdetails) dynamisch auf die ausgewählte Vorlage (in CustomModule) gegenüber dem aktuellen Produkt umgestellt wird.