In meiner Beobachterfunktion erhalte ich eine Variable, die vom Ereignis wie folgt übergeben wird:
public function observerFunc(Varien_Event_Observer $observer)
{
$sth = $observer->getEvent()->getSth();
}
Wenn sthes sich um ein Objekt handelt, kann ich es durch Aufrufen von Methoden ändern. Aber wie kann ich ändern, sthwenn es sich um eine einfache Zeichenfolge handelt? Ich habe folgendes ohne Erfolg versucht:
public function observerFunc(Varien_Event_Observer $observer)
{
$sth = $observer->getEvent()->getSth();
$observer->getEvent()->setSth('test');
$observer->setSth('test');
}
Ich habe gerade erfahren, dass einige Ereignisse auch ein Transportobjekt übergeben, in dem die Zeichenfolge geändert werden kann (danke Alex ), das Ereignis page_block_html_topmenu_gethtml_afterjedoch nicht. Was kann ich also tun?
Das betreffende Ereignis wird wie folgt ausgelöst und ich möchte $ html ändern:
$html = $this->_getHtml($this->_menu, $childrenWrapClass);
Mage::dispatchEvent('page_block_html_topmenu_gethtml_after', array(
'menu' => $this->_menu,
'html' => $html
));