0

フロントエンドで「常に」パブリック関数を実行したい。

だから私は community/Myname/Forcelogin/etc/config.xml にあります:

<config>    
    <modules>
        <Myname_Forcelogin><version>0.1.0</version></Myname_Forcelogin>
    </modules>
    <global>
        <models>
            <check_login>
                <class>Myname_Forcelogin_Model</class>
            </check_login>
        </models>
    </global>
</config>

community/Myname/Forcelogin/Model/Forcelogin.php:

class Myname_Forcelogin_Model_Forcelogin
{
    public function check_login()
    {
        die('Hello there');
    }
}

では、「check_login()」を常にフロントエンドで実行するには、何を追加/変更する必要がありますか?

4

1 に答える 1

1

あなたの質問が何であるか完全にはわかりませんが、正しく理解できれば、すべてのページでモデルをインスタンス化してこのメ​​ソッドを実行する必要がありますか? このメソッドを実行するイベントリスナーを用意することを検討したい場合があります。使用するイベントのアイデアについては、この質問を参照してください。

編集

config.xmlこのように見えるように変更します

<config>    
    <modules>
        <Myname_Forcelogin><version>0.1.0</version></Myname_Forcelogin>
    </modules>
    <global>
        <models>
            <check_login>
                <class>Myname_Forcelogin_Model</class>
            </check_login>
        </models>
        <events>
            <controller_action_layout_load_before>
                <observers>
                    <checklogin><!-- this tags name does not matter, so long as it is all lower case and unique -->
                        <type>singleton</type>
                        <class><!-- the class alias of the listening model --></class>
                        <method><!-- the method to be called on that model --></method>
                    </checklogin>
                </observers>
            </controller_action_layout_load_before>
        </events>
    </global>
</config>

詳細については、このリンクに従ってください

于 2013-07-09T14:35:15.243 に答える