【问题标题】:Custom Events in MagentoMagento 中的自定义事件
【发布时间】:2014-12-21 12:42:42
【问题描述】:

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

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

【问题讨论】:

    标签: events magento


    【解决方案1】:

    要调度事件,请使用 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();
        }
    }
    

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-17
    • 2012-12-08
    • 2023-03-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多