Joomla 2.5 onAfterInitialise 事件未被触发
Joomla 2.5 onAfterInitialise event not being triggered
我正在尝试编写单点登录扩展程序,以便我们的具有正确权限的 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 = '';
}
}
您需要将 onAfterInitialise
放入系统插件中。作为平行示例,请注意 Remember 插件如何成为 system 插件,然后 Cookie 插件如何成为 authentication 插件。系统插件在堆栈中很早就被检查,并在每次页面加载时被检查。身份验证插件在身份验证开始时进行检查,并在特定时间作为一个组专门加载。由于您有一个身份验证插件,它不会在正确的时间触发以响应您正在寻找的系统事件。
我正在尝试编写单点登录扩展程序,以便我们的具有正确权限的 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 = '';
}
}
您需要将 onAfterInitialise
放入系统插件中。作为平行示例,请注意 Remember 插件如何成为 system 插件,然后 Cookie 插件如何成为 authentication 插件。系统插件在堆栈中很早就被检查,并在每次页面加载时被检查。身份验证插件在身份验证开始时进行检查,并在特定时间作为一个组专门加载。由于您有一个身份验证插件,它不会在正确的时间触发以响应您正在寻找的系统事件。