web-dev-qa-db-ja.com

ログイン時にDrupalを取得して、ユーザープロフィール以外のページに移動するにはどうすればよいですか?

問題:ログイン時にユーザーProlfileページへの移動を停止するために Drupal を取得するためにいくつかのことを試みました。私は LoginToboggan モジュールもインストールしました。このモジュールには素敵な機能がありますが、Drupalがユーザープロファイルページにログインするすべてのユーザーを送信するのを止めません。 明確にするために、LoginTobogganの「「即時ログイン」機能を使用する場合、特定のページに[オプションで]ユーザーをリダイレクトする」-は既存のユーザーではなく新規ユーザー...はい、私は知っています、意味がありません。

GOAL:ログインページを設定できる必要があります。役割に基づいてページの読み込みを設定する必要はありませんが、それはクレイジーな複雑さでなければいいでしょう。

UPDATE:私のニーズに基づいて修正を見つけました。以下の回答を参照してください。

7
blunders

あなたはできる:

  • Login Destination モジュールを使用します。
  • ユーザーがwww.example.com/user?destination=some/pathにログインできるようにします。これにより、フォームの送信後にwww.example.com/some/pathにリダイレクトされます。
  • Hook_form_alterを実装するカスタムモジュールを作成します。ここで説明されています: http://drupal.org/node/236234
2
marcvangend

理解した。だから、あなた:

SET IT IT UP:

  1. ページを作成、
  2. BLOCK構成設定を使用して、ページにデフォルトのログインモジュールのみを表示します。
  3. ロード時には、そのロールのユーザーに対してのみコンテンツを表示するようにブロックを設定します。

ISSUES:マイナス面は、ログインしていないユーザーにはTITLEページが表示され、ログインできるユーザーには同じページTITLEが表示されることです。

それが意味をなさない場合はコメントしてください。より良い解決策がある場合は、OR別の回答を投稿してください。ありがとう!!

3
blunders

ルールモジュールを使用して、ロールに応じて、ログイン時に別のページにユーザーを誘導したり、ログインしたページに一般的なリダイレクトを行ったりする人もいると聞きました。

http://drupal.org/project/rules

1
Purcell

Rules モジュールを使用してDrupalでこれを行うことができます...

ルール「エクスポート形式」と呼ばれるDrupalバージョン7のルールの例を次に示します。

{ "rules_redirect_selected_roles_to_selected_term_pages" : {
    "LABEL" : "Redirect selected roles to selected term pages",
    "PLUGIN" : "reaction rule",
    "ACTIVE" : false,
    "OWNER" : "rules",
    "REQUIRES" : [ "rules" ],
    "ON" : { "user_login" : [] },
    "IF" : [
      { "user_has_role" : { "account" : [ "account" ], "roles" : { "value" : { "5" : "5" } } } }
    ],
    "DO" : [ { "redirect" : { "url" : "node\/123" } } ]
  }
}

相対パスadmin/config/workflow/rules/reaction/importにある「import rule」というラベルの付いたリンクを使用して、Drupalの管理UIを介して、独自のDrupalインストールで上記のルールを単に「インポート」できるはずです。独自のDrupalサイト。

上記のルールが実際に行うことに関する詳細:

  1. ルールイベント= User has logged inによってトリガーされます。
  2. これには、ルール条件が含まれます。この場合はUser has role(s) = subscriberです。実際、上記のエクスポート形式の4は、これをエクスポートしたDrupalインストールのsubscriberに対応します。インポートする前に、43に変更すると、_administrator代わりに(このルールをインポートした後、ルールUIを使用して変更することにより、必要な「ロール」を選択します)。これを任意のロールに適用する場合は、このルール条件を省略(削除)します(このような削除を実行する最も簡単な方法は、この例をインポートした後にルールUIを使用することです)。
  3. ルールアクション= Page redirect = node/123を実行します。このnode/123は、これをエクスポートしたDrupalインストールで必要なものですが、必要な任意の有効な(相対)パスに変更することができます。そのため、必ずnode/123を「...ログイン時のユーザープロファイル以外のページ...」に対応するページの相対パスに変更してください。

それだけです、魅力のように動作します!

次のようなオプションを使用してルールを強化することで、さらに洗練された方法にすることができます。

  • ユーザーの役割に依存するページ(パス)にリダイレクトします。
  • リダイレクトを曜日または時刻に依存させます(例:ショップの営業時間/営業時間外)。

PS:(**) Rules モジュールでできる素晴らしいことの例に興味がある場合は、 Drupal.SE のこれらの回答をご覧ください。 ( Rules モジュールでタグ付けされた質問へ)。

1
Pierre.Vriens