2009-07-24 73 views
3

任何人知道如何在用户出现登录屏幕并选择创建新帐户后返回“最后一页”?在Drupal中注册后重定向

基本上顺序是这样的:

  1. 用户试图去保护的内容
  2. 重定向到登录页面
  3. 如果他登录如果他选择“,他将被重定向到原来的页面
  4. 创建新帐户“并填写完毕,他被重定向到主页

我们如何让他自动变红被定向到原始页面(不是静态页面)。

回答

4

有几种方法可以解决这个问题。最直接的方法是在导航中的某处添加一个登录链接,将链接追加到url。该代码,这是一样的东西:

<?php 
    if (user_is_anonymous()) { 
    $link = l(t('Login'), 'user/login', array('query' => drupal_get_destination())); 
    } 
?> 

您还可以在管理/设置/错误报告,可能要么去输出上面的代码回调,或者一个简单的PHP设置自定义访问拒绝页输出该代码的节点。

此外,Drupal核心提供的用户登录块使用相同的方法将成功登录重定向回原始页面。

编辑:请注意,上述方法很少用于注册,因为这里涉及更多的步骤。具体而言,当用户需要验证电子邮件地址时,通过电子邮件传递始发目的地将涉及修改核心用户注册过程。

它可能仍然可以在配置为不验证电子邮件地址的站点上运行。然后这个想法是提供2个链接:1个用于登录,另一个用于注册,都传递目的地信息。

LoginToboggan也可能值得追求,虽然它还没有提供确切的注册feature you're looking for

+0

这几乎就是我所做的。我基本上通过链接到包含目的地的注册页面来定制用户登录块(使用类似的语法)。似乎工作得很好。 – Jared 2009-07-24 23:22:18

0

直PHP将包含这种形式的头:

<?php header("Location: " . $_SERVER['HTTP_REFERER']); ?> 

更多信息,请参阅php manual

编辑:

你也可以包括在一个隐藏字段您的表单并将其设置为

$url = $_SERVER['PHP_SELF']; // or HTTP_REFERER depending on the setup 

包括剪切到您的注册表单中的标题代码。