我正在研究这个Observer,以便在页面加载时从URL中提取参数,并希望有人能帮助我找出如何让它按我想要的方式工作。我只希望这个Observer在前端页面加载时启动,而不是在后端。如果我像下面这样把范围设置在前端,它就不起作用了。如果我把它改成全球性的,它就会着火。我该如何补救?
<?xml version="1.0" encoding="UTF-8"?>
<config>
<modules>
<MyCompany_Mailchimp>
<version>1.0.0</version>
</MyCompany_Mailchimp>
</modules>
<frontend>
<events>
<controller_front_init_routers>
<observers>
<Mailchimp_observer>
<type>singleton</type>
<class>MyCompany_Mailchimp_Model_Observer</class>
<method>catchMailchimpParams</method>
</Mailchimp_observer>
</observers>
</controller_front_init_routers>
</events>
</frontend>
</config>
我不能100%确定,但它看起来像是在初始化front作用域之前对event-controller_front_init_routers进行调度。因此,如果可能的话,您应该选择其他事件,稍后启动。我不太明白,你的任务是什么,但也许事件控制器_action_prispatch是可以接受的?
尝试在事件之前侦听controller_action_layout_load_b,而不是controller_foront_init_routers。此事件仅在前端触发。有关Magento事件列表的更多信息,请阅读此处。