web-dev-qa-db-ja.com

匿名ユーザーをログインページにリダイレクトする

匿名ユーザーが「node/add/project」というURLにヒットしたときにリダイレクトする必要があります。それ以外の場合は、そのURLを入力したままにしておきます。

私がこれを正しい方法で行っているかどうかはわかりません(おそらく機能しないようです!)-誰かが光を当てたり、アドバイスしたりできますか?

 function local_menu(){
 $ items ['node/add/project'] = array(
 'page callback' => 'local_project_anonymous'、
 'アクセスコールバック '=> TRUE、
' type '=> MENU_CALLBACK、
); 
 
 return $ items; 
} 
 
 function local_project_anonymous(){
 global $ user; 
 if($ user-> uid == 0){
 drupal_goto( 'user/login') ; 
} 
} 

乾杯

3
williamsowen
function MODULE_init(){
  global $user;
  if ($user->uid == 0  && $_GET['q'] == 'node/add/project' ) {
    drupal_goto('user/login');
  }
}
6
Shoaib Nawaz

多分あなたは LoginToboggan モジュールを使うことができます。

LoginTobogganモジュールは、外部モジュールのDrupalログインシステムにいくつかの変更を加えたもので、次の機能と使いやすさの向上を提供しています。

  • ユーザーが自分のユーザー名OR自分の電子メールアドレスを使用してログインできるようにします。
  • ユーザーがすぐにログインできるようにします。
  • ログインしていない(匿名)ユーザーのアクセス拒否ページにログインフォームを提供します。
  • モジュールには2つのログインブロックオプションがあります。1つはJavaScriptを使用して、[ログイン]をクリックするとすぐにブロック内のフォームを表示します。もう1つは、ユーザーを別のページに移動しますが、ログイン時にユーザーを元のページに戻します。
  • 正確を期すために、2つのEメールフィールドで登録フォームをカスタマイズしてください。
  • オプションで、「即時ログイン」機能を使用する場合、ユーザーを特定のページにリダイレクトします。
  • オプションで、電子メールアドレスの検証時にユーザーを特定のページにリダイレクトします。
  • 必要に応じて、ログインの成功を示すユーザーメッセージを表示します。
  • オプションで、ログインフォームと登録フォームの両方を1つのページに結合します。
  • オプションで、未定義のユーザーを事前定義された間隔でシステムからパージします。
  • Rules モジュールと統合して、ユーザーが電子メール検証プロセスで検証するときにさまざまなタスクを実行します(例は http://drupal.org/node/880904 を参照)。
2
perseus