2

我正在研究这个观察者,用于在页面加载时从 URL 中提取参数,并希望有人能帮助我弄清楚如何让它按照我想要的方式工作。我只希望这个观察者在前端页面加载而不是后端触发。如果我将范围设置为如下所示的前端,则它不起作用。如果我将其更改为全局,它会很好地触发。我该如何补救?

<?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>
4

2 回答 2

2

我不是 100% 确定,但它看起来像事件 controller_front_init_routers 在前端范围初始化之前调度。因此,如果可能,您应该选择稍后触发的其他事件。我不太明白,你的任务是什么,但也许 event controller_action_predispatch 是可以接受的?

于 2012-08-22T19:49:05.397 回答
1

尝试监听 controller_action_layout_load_before 事件,而不是 controller_front_init_routers。此事件仅在前端触发。有关 Magento 事件列表的更多信息,请阅读此处

于 2012-08-23T06:43:29.990 回答