Dalam fungsi pengamat saya, saya mendapatkan variabel yang dilewati oleh acara seperti itu:
public function observerFunc(Varien_Event_Observer $observer)
{
$sth = $observer->getEvent()->getSth();
}
Jika sth
merupakan objek, saya dapat mengubahnya dengan memanggil metode di atasnya. Tetapi bagaimana saya bisa mengubah sth
jika ini adalah string sederhana? Saya mencoba yang berikut ini tanpa hasil:
public function observerFunc(Varien_Event_Observer $observer)
{
$sth = $observer->getEvent()->getSth();
$observer->getEvent()->setSth('test');
$observer->setSth('test');
}
Saya baru tahu bahwa beberapa peristiwa juga melewati objek transportasi di mana string dapat diubah (terima kasih Alex ), tetapi acara page_block_html_topmenu_gethtml_after
tidak. Jadi apa yang bisa saya lakukan?
Acara tersebut akan dikirim seperti ini dan saya ingin mengubah $ html:
$html = $this->_getHtml($this->_menu, $childrenWrapClass);
Mage::dispatchEvent('page_block_html_topmenu_gethtml_after', array(
'menu' => $this->_menu,
'html' => $html
));
sumber