0

如果用户未登录,有一些重定向解决方案。如果我不想重定向到登录页面,而是重定向到主域网页怎么办

所以这很容易,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

那么最简单的方法是将目标参数添加到注销链接。

因此,如果您的链接看起来像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 回答