ユーザー ログイン ブロックを介してログインしたユーザーをリダイレクトしたいと思います。私が持っているのは、次のコードを含むモジュールです。
付録、2011 年 3 月 9 日、15:30h: kiamlaluno のアドバイスに従ってコードを変更しました。
付録、2011 年 3 月 9 日、17:08h: 小さな修正: ノード/管理者を管理者に変更。
付録、3.9.2011、17:24h: 削除[]
-> コードは現在このように機能していますが、DB でモジュールの優先順位を変更することを忘れないでください。
function _MYMODULE_user_login_submit($form, &$form_state) {
global $user;
if ($user->uid == 1) {
$form_state['redirect'] = 'admin';
} elseif ($user->uid) {
$form_state['redirect'] = 'node/add/image';
return;
}
}
/**
* Modifies the outfit and behaviour of the user login block.
*/
function MYMODULE_form_user_login_block_alter(&$form, $form_state) {
unset($form['#action']);
// removes the forgot password and register links
$form['links'] = array();
// Redirects the user to the image upload page after login
// This cannot be done by a rule, the rule based redirect is only
// working for the login page not the user login block.
$form['#submit'] = array('_MYMODULE_user_login_submit');
}
ユーザーをリダイレクトしません。_MYMODULE_user_login_submit()単に無視されているようです。
私がすでに知っていること:
- ログインページではなくユーザーログインブロックでログインしているため、ルール/トリガーを使用できません
- 投稿では常に「logintoboggan を使用する」と言われますが、「登録時」と「確認時」のリダイレクト オプションしかありませんが、「認証時」または「ログイン後」が必要です。
- とにかく、私はこれ以上モジュールを使いたくありません。私は数行の PHP を好みます。