【问题标题】:Drupal 6 template redirectDrupal 6 模板重定向
【发布时间】:2013-02-21 01:42:13
【问题描述】:

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

所以这很简单,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文件中)

【问题讨论】:

  • <front> 是首页的令牌,所以 drupal_goto('<front>'); 应该可以工作
  • 我试过了。不,“导致重定向过多”……页面无法加载。我将尝试使用 drupal_is_front_page() 方法。还有其他建议吗?
  • 为什么所有的主页重定向都会导致这个问题??
  • 节点也不起作用,绕过使用不同的页面作为主页。使用 /home 或 /main_page 等页面模块创建

标签: drupal redirect drupal-6


【解决方案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

【讨论】:

  • 所以如果一个随机的人试图访问域/成员,他应该被重新路由到主页?
  • 别提了。如果某人尝试访问页面,我不明白有关将某人重新路由到首页的问题。回到“用户注销后将用户重定向到哪里?”的问题,您必须选择:到首页或他所在的最后一页(最好)。如果我以登录用户的身份访问 example.com/node/6 并单击注销,我希望再次看到相同的页面。不是登录页面或首页。但是使用参数destination是控制重定向最简单的方法。
  • 如果用户没有登录但试图访问受保护的页面怎么办?
  • 这与注销后的重定向有什么关系?用户应该会看到“拒绝访问”页面。
  • 我希望改为重定向到主页,而不是看到拒绝访问页面
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-05-02
相关资源
最近更新 更多