メンバー リストには、ロール「ベンダー」が関連付けられている特定のユーザーがいます。そのようなメンバーはすべて、ログイン時に特定のページにリダイレクトされます。これはどのように達成できますか?
9 に答える
この猫の皮を剥ぐには複数の方法があります... これは私が好む Drupal 7 の方法です。
function hook_user_login(&$edit, $account) {
$edit['redirect'] = 'node/123';
}
DRUPAL7には2つの方法があります
1)アクションとトリガーを使用して、このhttp://drupal.org/node/298506を参照してください
2)カスタムモジュールを使用する場合
function YOURMODULE_user_login(&$edit, $account) {
if (!isset($_POST['form_id']) || $_POST['form_id'] != 'user_pass_reset' || variable_get('login_destination_immediate_redirect', FALSE)) {
if(in_array('THE-ROLE-WANTED-TO-REDIRECT',$account->roles)):
drupal_goto('PATH');
else: drupal_goto('user/'.$account->uid);
endif;
}
}
Drupalでアクションとトリガーを定義できます。
アクション(管理者/設定/アクション)-特定のページにリダイレクトします
トリガー(admin / build / trigger / user)-ユーザーがログインした後
これを試して。
編集(コメントを参照):
小さなモジュールを作成して、ユーザーのログインプロセスでユーザーの役割を確認し、必要に応じてリダイレクトします。 drupal_goto =>drupalのリダイレクト関数
hook_user =>ユーザー操作のトリガー
そして、ユーザーの役割について:
GLOBAL $user;
$roles = $user->roles;
$vendor = in_array('vendor', $roles);
$vendorはtrue/false値を保持し、リダイレクトするかどうかを決定します。
これを行う方法がわからない場合は、ここに投稿してください。モジュールを作成します。しかし、これはおそらくあなたのために将来のdrupaモジュールを書くための良い習慣でしょう。:)
ルールを使用できます
イベント: ユーザーがログインしました。
状態: ユーザーに役割があります。
アクション: ページのリダイレクト
LoginDestination: http://drupal.org/project/login_destinationなど、(Trigger+Actions 以外に) これを行うモジュールがあります。このDrupal フォーラムの投稿には、それに関する詳細情報もあります。
hook_user の次の条件
if($op =='login') drupal_goto("your path");
これは、コンテンツ アクセスとログイン トボガンモジュールを組み合わせて使用することで実現できます。ページを制限し、ユーザーにログインしてページにアクセスするよう促すことができます。