내 관찰자 함수에서 다음과 같이 이벤트가 전달한 변수를 얻습니다.
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');
}
방금 일부 이벤트가 문자열을 변경할 수있는 전송 객체를 전달한다는 것을 알았지 만 ( Alex 덕분에 ) 이벤트 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
));