Nella mia funzione di osservatore, ottengo una variabile passata dall'evento in questo modo:
public function observerFunc(Varien_Event_Observer $observer)
{
$sth = $observer->getEvent()->getSth();
}
Se sth
è un oggetto, posso modificarlo chiamando metodi su di esso. Ma come posso modificare sth
se è una stringa semplice? Ho provato quanto segue senza successo:
public function observerFunc(Varien_Event_Observer $observer)
{
$sth = $observer->getEvent()->getSth();
$observer->getEvent()->setSth('test');
$observer->setSth('test');
}
Ho appena appreso che alcuni eventi passano anche un oggetto di trasporto in cui la stringa può essere modificata (grazie Alex ), ma l'evento page_block_html_topmenu_gethtml_after
no. Quindi cosa posso fare?
L'evento in questione viene inviato in questo modo e voglio modificare $ html:
$html = $this->_getHtml($this->_menu, $childrenWrapClass);
Mage::dispatchEvent('page_block_html_topmenu_gethtml_after', array(
'menu' => $this->_menu,
'html' => $html
));