0

ユーザーがログインしていない場合にリダイレクトする解決策がいくつかあります。ログイン ページではなく、メイン ドメインの Web ページにリダイレクトしたい場合はどうすればよいですか

これは簡単です。drupal goto はドメイン/ユーザー/ログインに移動しますが、ドメインにリダイレクトする必要があります。もちろん、drupal_goto(''); エラーになります!

 global $user;
   if ($user->uid == 0 && arg(0) != 'user' && arg(1) != 'login'){
   drupal_goto('user/login');
 }

(これは、関数 phptemplate_preprocess_page(&$vars) の下のテーマ template.php ファイルに配置されます)

4

1 に答える 1

1

最も簡単な方法は、destination パラメータをログアウト リンクに追加することです。

したがって、リンクが次のように見える場合は、にexample.com/logout変更してくださいexample.com/logout&destination=node/1。ログアウトすると、Drupal は自動的に宛先にリダイレクトします。リンクの生成も非常に簡単で、次のようになります。

  <?php if ($user->uid) : ?>
    <?php print l(t('log out'), 'logout', array('query' => drupal_get_destination())); ?>
    <?php print l($user->name, 'user'); ?>
  <?php else : ?>
    <?php print l(t('log in'), 'user', array('query' => drupal_get_destination())); ?>
  <?php endif; ?>

更新 12.03.2013 : リダイレクトに関するより高度なオプションについては、このモジュールをインストールできます: LoginToboggan

于 2013-03-04T12:40:16.613 に答える