在Magento中创建Hello World事件分配器(观察者)? [英] Creating Hello world event dispatcher(observer) in Magento?
问题描述
我正在尝试在Magento中创建事件分配器(在将产品添加到购物车后应调用该事件分配器).
I am trying to create an event dispatcher in Magento (which should be called after a product gets added to cart).
到目前为止我所做的:
我对此进行了Google搜索,发现此链接.我按照此链接中指定的说明进行操作.我配置了config.xml文件,并在mymodule/model文件夹下创建了一个Observer.php filder.但是,我看不到任何结果.
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
和Dispatcher
之间缺少Model
.
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屋!