ในฟังก์ชั่นผู้สังเกตการณ์ของฉันฉันได้รับตัวแปรที่ส่งผ่านโดยเหตุการณ์เช่นนั้น:
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
));