ログイン成功したら特定の URL へリダイレクトさせる preload
XOOPS Cube は、ログインに成功したとき、直前に閲覧していたのページにリダイレクトされるようになっています。
しかし、サイトによっては、ログイン成功時に特定のページにリダイレクトさせたいこともあります。
たとえば、ログインするのは管理者だけという Web サイト。
こういう Web サイトでは、ログインブロックも非表示で、user.php をブックマークしておいて、user.php からログインすることになります。
XOOPS Cube でこの方法でログインすると、トップページにリダイレクトされますが、このようなサイトではサイト管理のためにログインすることが多いのに、いったんトップページにリダイレクトされてから改めて管理画面にはいることになり面倒です。
そこでログインしたら即管理画面へ移動する preload を作成してみました。
XOOPS_URL/preload/loginRedirect.class.php として保存
< ?php
/**
*
* @author Ryuji AMANO
*
*/
class loginRedirect extends XCube_ActionFilter
{
function _getRedirectUrl()
{
return XOOPS_URL .\'/admin.php\';
}
function preBlockFilter()
{
$this->mRoot->mDelegateManager->add(\"Site.CheckLogin.Success\", array(&$this, \'loginSuccessRedirect\'));
}
function loginSuccessRedirect(&$xoopsUser)
{
$this->mController->executeForward($this->_getRedirectUrl());
}
}
?>
>
もうちょっと手をくわえれば、ユーザグループごとに別のページへリダイレクトするようにもできます。