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 がディスパッチされるようです。したがって、可能であれば、後で起動する別のイベントを選択する必要があります。あなたのタスクが何であるかはよくわかりませんが、おそらくイベント controller_action_predispatch は受け入れられますか?

于 2012-08-22T19:49:05.397 に答える
1

controller_front_init_routers の代わりに、controller_action_layout_load_before イベントをリッスンしてみてください。このイベントはフロントエンドでのみトリガーされます。Magento イベント リストの詳細については、こちらをお読みください

于 2012-08-23T06:43:29.990 に答える