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 sth
es sich um ein Objekt handelt, kann ich es durch Aufrufen von Methoden ändern. Aber wie kann ich ändern, sth
wenn 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_after
jedoch 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
));
quelle