Magento事件观察范围



我正在研究这个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事件列表的更多信息,请阅读此处。

最新更新