Benim gözlemci işlevi, böyle bir olay tarafından geçen bir değişken olsun:
public function observerFunc(Varien_Event_Observer $observer)
{
$sth = $observer->getEvent()->getSth();
}
Bir sth
nesne ise, üzerinde yöntem çağırarak değiştirebilirim. Ama sth
basit bir dize ise nasıl değiştirebilirim ? Aşağıdakileri başarılı olmadan denedim:
public function observerFunc(Varien_Event_Observer $observer)
{
$sth = $observer->getEvent()->getSth();
$observer->getEvent()->setSth('test');
$observer->setSth('test');
}
Sadece bazı olayların da dizenin değiştirilebileceği bir taşıma nesnesini geçtiğini öğrendim (teşekkürler Alex ), ancak olay page_block_html_topmenu_gethtml_after
geçmiyor. Peki ne yapabilirim?
Söz konusu olay bu şekilde gönderilir ve $ html'yi değiştirmek istiyorum:
$html = $this->_getHtml($this->_menu, $childrenWrapClass);
Mage::dispatchEvent('page_block_html_topmenu_gethtml_after', array(
'menu' => $this->_menu,
'html' => $html
));