在 Magento 中创建 Hello world 事件调度程序(观察者)? [英] Creating Hello world event dispatcher(observer) in Magento?

查看:21
本文介绍了在 Magento 中创建 Hello world 事件调度程序(观察者)?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试在 Magento 中创建一个事件调度程序(应该在产品添加到购物车后调用).

I am trying to create an event dispatcher in Magento (which should be called after a product gets added to cart).

到目前为止我所做的:

我在谷歌上搜索了这个并找到了 这个链接.我按照此链接中指定的说明进行操作.我配置了 config.xml 文件并在 mymodule/model 文件夹下创建了一个 Observer.php 文件.但是,我看不到任何结果.

I Googled this and found this link. I followed the instructions specified in this link. I configured the config.xml file and created a Observer.php filder under mymodule/model folder. But, I can't see any result from this.

(我在示例中使用的 config.xml 和 Observer.php 文件的代码可以在 http://goo.gl/O7dBy,我的自定义模块名称是 Crossdata,包名称是 MyModule - 我做错了吗?)

(The code for config.xml and Observer.php file that i used in my example can be found under http://goo.gl/O7dBy, my custom module name is Crossdata and package name is MyModule - am i doing it wrong?)

任何其他带有简单 helloworld 事件调度程序示例的链接都会有所帮助.

Any other link with simple helloworld event dispatcher example would be helpful.

谢谢,巴兰

推荐答案

查看从 http://goo 下载的代码.gl/O7dBy 你定义:

<events>
    <add_to_cart_after>
        <observers>
            <add_to_cart_after>
                <class>dispatcher/observer</class>
                <method>hookToAddToCartAfter</method>
            </add_to_cart_after>
        </observers>
    </add_to_cart_after>
</events>

并将dispatcher的模型别名定义为:

and define the model alias of dispatcher as:

<models>
    <dispatcher>
        <class>MyPackage_Crossdata_Dispatcher_Model</class>
    </dispatcher>
</models>

生成的类名将是 MyPackage_Crossdata_Model_Dispatcher_Model_Observer,但您的观察者类名为 MyPackage_Crossdata_Dispatcher_Model_Observer,在 Crossdata<之间缺少 Model/code> 和 Dispatcher.

The resulting class name would be MyPackage_Crossdata_Model_Dispatcher_Model_Observer, but your observer class is named MyPackage_Crossdata_Dispatcher_Model_Observer, missing the Model in between Crossdata and Dispatcher.

我建议删除上面的整个 dispatcher 模型定义,只使用您已经在 config.xml 中定义的其他模型别名 crossdata:

I'd recommend to drop the whole dispatcher models definition above and only use the other model alias crossdata which you've already defined in config.xml:

<crossdata>
    <class>MyPackage_Crossdata_Model</class>
    <resourceModel>crossdata_mysql4</resourceModel>
</crossdata>   

然后将事件定义更改为:

Then change the event definition to:

<add_to_cart_after>
    <class>crossdata/observer</class>
    <method>hookToAddToCartAfter</method>
</add_to_cart_after>

创建一个文件 /app/code/local/MyPackage/Crossdata/Model/Observer.php 并在其中定义您的观察者类:

Create a file /app/code/local/MyPackage/Crossdata/Model/Observer.php and define your observer class in it:

class MyPackage_Crossdata_Model_Observer
{
    public function hookToAddToCartAfter($observer)
    {
        // your observer code
    }
}

这篇关于在 Magento 中创建 Hello world 事件调度程序(观察者)?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆