Magento-同一事件有2位或更多观察员 [英] Magento - 2 or more observer on same event
本文介绍了Magento-同一事件有2位或更多观察员的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
2正在观察同一sales_order_shipment_save_before
事件. ModuleA
是我首先创建的,然后又创建了ModuleB
2 of my observer are observing same sales_order_shipment_save_before
event. ModuleA
was the one i created first and then i created ModuleB
现在仅调用ModuleB
的观察者,而不调用ModuleA
.
Now only ModuleB
's observer is called and not ModuleA
.
请让我知道如何解决此问题,并召集两个观察员.
Please let me know how can i resolve this and both of observers are called.
ModuleA
<?xml version="1.0"?>
<config>
<global>
<models>
<shipmentsave>
<class>My_Shipmentsave_Model</class>
</shipmentsave>
</models>
</global>
<adminhtml>
<events>
<sales_order_shipment_save_before>
<observers>
<shipmentsave>
<type>singleton</type>
<class>shipmentsave/observer</class>
<method>salesOrderShipmentSaveBefore</method>
</shipmentsave>
</observers>
</sales_order_shipment_save_before>
</events>
</adminhtml>
</config>
Observer.php
<?php
class My_Shipmentsave_Model_Observer
{
public function salesOrderShipmentSaveBefore(Varien_Event_Observer $observer)
{
$shipment = $observer->getEvent()->getShipment();
return;
}
}
ModuleB
<?xml version="1.0" encoding="UTF-8"?>
<config>
<modules>
<My_Bshipment>
<version>0.1.0</version>
</My_Bshipment>
</modules>
<admin>
<routers>
<bshipment>
<use>admin</use>
<args>
<module>My_Bshipment</module>
<frontName>bshipment</frontName>
</args>
</bshipment>
</routers>
</admin>
<adminhtml>
<events>
<sales_order_shipment_save_before>
<observers>
<shipmentsave>
<type>singleton</type>
<class>bshipment/observer</class>
<method>salesOrderShipmentSaveBefore</method>
</shipmentsave>
</observers>
</sales_order_shipment_save_before>
</events>
</adminhtml>
<global>
<models>
<bshipment>
<class>My_Bshipment_Model</class>
</bshipment>
</models>
<resources>
<bshipment_setup>
<setup>
<module>My_Bshipment</module>
</setup>
<connection>
<use>core_setup</use>
</connection>
</bshipment_setup>
<bshipment_write>
<connection>
<use>core_write</use>
</connection>
</bshipment_write>
<bshipment_read>
<connection>
<use>core_read</use>
</connection>
</bshipment_read>
</resources>
<blocks>
<!-- adminhtml>
<rewrite>
<shipment_view>My_Bshipment_Block_Adminhtml_Shipment_View</shipment_view>
</rewrite>
</adminhtml-->
<adminhtml>
<rewrite>
<sales_order_shipment_view>My_Bshipment_Block_Adminhtml_Shipment_View</sales_order_shipment_view>
</rewrite>
<rewrite>
<sales_shipment_grid>My_Bshipment_Block_Adminhtml_Shipment_Grid</sales_shipment_grid>
</rewrite>
</adminhtml>
<!-- udropship>
<rewrite>
<adminhtml_shipment_view>My_Bshipment_Block_Adminhtml_Shipment_View</adminhtml_shipment_view>
</rewrite>
</udropship-->
</blocks>
<helpers>
<bshipment>
<class>My_Bshipment_Helper</class>
</bshipment>
</helpers>
</global>
</config>
Observer.php
<?php
class My_Bshipment_Model_Observer
{
public function salesOrderShipmentSaveBefore(Varien_Event_Observer $observer)
{
$shipment = $observer->getEvent()->getShipment();
return;
}
}
关于, 索拉比(Saurabh)
Regards, Saurabh
推荐答案
没有时间进行测试,但乍一看我会尝试制作
No time to test this, but at first glance I'd try making
<shipmentsave>
每个模块的
区别.像
distinct for each module. Something like
<observers>
<shipmentsave>
<type>singleton</type>
<class>bshipment/observer</class>
<method>salesOrderShipmentSaveBefore</method>
</shipmentsave>
</observers>
和
<observers>
<bshipmentsave>
<type>singleton</type>
<class>bshipment/observer</class>
<method>salesOrderShipmentSaveBefore</method>
</bshipmentsave>
</observers>
这篇关于Magento-同一事件有2位或更多观察员的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文