В моей функции наблюдателя я получаю переменную, переданную событию, например:
public function observerFunc(Varien_Event_Observer $observer)
{
$sth = $observer->getEvent()->getSth();
}
Если sth
это объект, я могу изменить его, вызвав для него методы. Но как я могу изменить, sth
если это простая строка? Я попробовал следующее безуспешно:
public function observerFunc(Varien_Event_Observer $observer)
{
$sth = $observer->getEvent()->getSth();
$observer->getEvent()->setSth('test');
$observer->setSth('test');
}
Я только что узнал, что некоторые события также передают транспортный объект, в котором строка может быть изменена (спасибо Алекс ), но событие page_block_html_topmenu_gethtml_after
этого не делает. Так что я могу сделать?
Рассматриваемое событие отправляется следующим образом, и я хочу изменить $ html:
$html = $this->_getHtml($this->_menu, $childrenWrapClass);
Mage::dispatchEvent('page_block_html_topmenu_gethtml_after', array(
'menu' => $this->_menu,
'html' => $html
));
источник