Joomla 2.5 onAfterInitialise事件未被触发

时间:2015-08-13 23:05:42

标签: joomla joomla2.5

我尝试编写单点登录扩展程序,以便具有正确权限的MediaWiki用户不需要登录我们的Joomla 2.5。我无法使其工作,因为onAfterInitialise事件不会触发(如果我尝试使用这些事件,onAfterRoute或onAfterDispatch也不会触发)。我知道扩展实际上正在运行,因为onUserAuthentication事件正在触发并以我的测试用户身份登录。

下面是我的代码,其中包含两个事件,第一个触发并执行die()语句,第二个触发后触发并无条件地正确验证我。

我在这里缺少一些东西,比如一个分机不能使用两种不同类别的事件吗?

class plgAuthenticationMwSSO extends JPlugin {

    function __construct( &$subject, $config ) {
        parent::__construct( $subject, $config );
    }

    public function onAfterInitialise() {
        die('testing');
    }

    public function onUserAuthenticate( $creds, $opt, &$response ) {
        $response->username = 'Foo';
        $response->fullname = 'Foo Bar';
        $response->email = 'foo@bar.baz';
        $response->status = JAuthentication::STATUS_SUCCESS;
        $response->error_message = '';
    }
}

1 个答案:

答案 0 :(得分:0)

您需要将onAfterInitialise放入系统插件中。作为一个并行示例,请注意Remember插件是系统插件,然后Cookie插件是身份验证插件。系统插件在堆栈的早期检查,并在每次页面加载时进行检查。身份验证开始时会检查身份验证插件,并在特定时间专门作为一个组加载。由于您具有身份验证插件,因此不会在适当的时间触发它来响应您要查找的系统事件。