如何在其他magento模块中停止要触发的事件
我有一个magento扩展,它在如何在其他magento模块中停止要触发的事件,magento,events,triggers,Magento,Events,Triggers,我有一个magento扩展,它在事件之前将用户数据发送到时事通讯\u订户\u保存\u上的aPI。但现在我必须向该api发送更多信息,新的var只能在时事通讯\u subscriber\u save\u after上找到 问题是我如何在不从Extension的config.xml中删除的情况下停止该模块的时事通讯\u订户\u保存\u之前 如果我保留这两个,它将向api发送两次数据,如果我从扩展中删除时事通讯\u订户\u保存\u,如果有人升级它,它将再次出现 我不想禁用,因为它可以从任何地方禁用事件
事件之前将用户数据发送到时事通讯\u订户\u保存\u上的aPI。但现在我必须向该api发送更多信息,新的var只能在时事通讯\u subscriber\u save\u after
上找到
问题是我如何在不从Extension的config.xml中删除的情况下停止该模块的时事通讯\u订户\u保存\u之前
如果我保留这两个,它将向api发送两次数据,如果我从扩展中删除时事通讯\u订户\u保存\u,如果有人升级它,它将再次出现
我不想禁用,因为它可以从任何地方禁用事件 在config.xml中,您可以使用相同的事件名称,从而将事件方法更改为空。在config.xml中,您可以使用相同的事件名称,从而将事件方法更改为空
我不想禁用,因为它可以从任何地方禁用事件
但禁用观察者是正确的方法。对于这个用例,观察者类型“disabled”确实存在
因此,如果扩展将观察者配置为:
<events>
<newsletter_subscriber_save_before>
<observers>
<some_unique_code>
<type>singleton</type>
<class>extension/observer</class>
<method>sendSomething</method>
</some_unique_code>
</observers>
</newsletter_subscriber_save_before>
</events>
<events>
<newsletter_subscriber_save_before>
<observers>
<some_unique_code>
<type>disabled</type>
</some_unique_code>
</observers>
</newsletter_subscriber_save_before>
</events>
我不想禁用,因为它可以从任何地方禁用事件
但禁用观察者是正确的方法。对于这个用例,观察者类型“disabled”确实存在
因此,如果扩展将观察者配置为:
<events>
<newsletter_subscriber_save_before>
<observers>
<some_unique_code>
<type>singleton</type>
<class>extension/observer</class>
<method>sendSomething</method>
</some_unique_code>
</observers>
</newsletter_subscriber_save_before>
</events>
<events>
<newsletter_subscriber_save_before>
<observers>
<some_unique_code>
<type>disabled</type>
</some_unique_code>
</observers>
</newsletter_subscriber_save_before>
</events>
我尝试过这个方法,但它如何停止在其他地方触发事件,这就是我为什么写“不想禁用它”的原因,不管怎样,使一个空/fack函数而不是禁用对我来说是有效的,其他一些东西是错误的。如果查看Mage\u Core\u Model\u App::dispatchEvent()
,禁用的类型对当前观察者没有任何作用,它不会阻止执行其他观察者。但是用一个伪方法重写这个方法最终也会有同样的效果,所以没关系。我尝试过这个方法,但是它会停止在其他地方触发事件,这就是为什么我写了“不想禁用它”的原因。无论如何,使一个空/fack函数而不是disable对我起作用。其他一些东西是错误的。如果查看Mage\u Core\u Model\u App::dispatchEvent()
,禁用的类型对当前观察者没有任何作用,它不会阻止执行其他观察者。但是用一个伪方法重写这个方法最终也会有同样的效果,所以这没关系。