【发布时间】:2014-12-21 12:42:42
【问题描述】:
如何在 Magento 中添加自定义事件,例如“done_some_thing”?
我正在编写一个购物车,它为通过特定链接的客户提供一定的折扣,并希望在购物车和结帐页面中都显示相同的内容
【问题讨论】:
如何在 Magento 中添加自定义事件,例如“done_some_thing”?
我正在编写一个购物车,它为通过特定链接的客户提供一定的折扣,并希望在购物车和结帐页面中都显示相同的内容
【问题讨论】:
要调度事件,请使用 Mage::dispatchEvent 函数 (%magento%/app/Mage.php around line 425)。调用如下所示:
$data = array( 'somedata' => 'foo', 'layout' => $this->getLayout());
Mage::dispatchEvent('my_event_name', $data);
要观察事件,请在扩展的 config.xml 文件中指定观察者。
<config>
<global>
<events>
<my_event_name>
<observers>
<myextension>
<type>singleton</type>
<class>myextension/observer</class>
<method>someMethodName</method>
</myextension>
</observers>
</my_event_name>
</events>
</global>
</config>
创建一个对应的类和方法(Observer.php)然后你就可以开始了:
class Myextension_Model_Observer {
public function someMethodName($event) {
$layout = $event->getLayout();
$someData = $event->getSomedata();
}
}
【讨论】: