Magento的自定义活动

时间:2009-12-17 11:14:52

标签: events magento

如何在Magento中添加自定义事件,例如“done_some_thing”?

我正在编写一个购物车,为通过特定链接的客户提供一定的折扣,并希望在购物车和结帐页面中显示相同的价格

1 个答案:

答案 0 :(得分:31)

要发送活动,请使用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();
    }
}