匿名ユーザーが「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') ; } }
乾杯
function MODULE_init(){
global $user;
if ($user->uid == 0 && $_GET['q'] == 'node/add/project' ) {
drupal_goto('user/login');
}
}
多分あなたは LoginToboggan モジュールを使うことができます。
LoginTobogganモジュールは、外部モジュールのDrupalログインシステムにいくつかの変更を加えたもので、次の機能と使いやすさの向上を提供しています。
- ユーザーが自分のユーザー名OR自分の電子メールアドレスを使用してログインできるようにします。
- ユーザーがすぐにログインできるようにします。
- ログインしていない(匿名)ユーザーのアクセス拒否ページにログインフォームを提供します。
- モジュールには2つのログインブロックオプションがあります。1つはJavaScriptを使用して、[ログイン]をクリックするとすぐにブロック内のフォームを表示します。もう1つは、ユーザーを別のページに移動しますが、ログイン時にユーザーを元のページに戻します。
- 正確を期すために、2つのEメールフィールドで登録フォームをカスタマイズしてください。
- オプションで、「即時ログイン」機能を使用する場合、ユーザーを特定のページにリダイレクトします。
- オプションで、電子メールアドレスの検証時にユーザーを特定のページにリダイレクトします。
- 必要に応じて、ログインの成功を示すユーザーメッセージを表示します。
- オプションで、ログインフォームと登録フォームの両方を1つのページに結合します。
- オプションで、未定義のユーザーを事前定義された間隔でシステムからパージします。
- Rules モジュールと統合して、ユーザーが電子メール検証プロセスで検証するときにさまざまなタスクを実行します(例は http://drupal.org/node/880904 を参照)。