【问题标题】:How to create a custom front page redirect for anonymous user?如何为匿名用户创建自定义首页重定向?
【发布时间】:2010-08-18 18:26:55
【问题描述】:

我在 what-i.com 上有一个使用 Drupal Commons 配置文件的网站。我创建了一个名为“whati”的自定义主题并将其放在 /sites/all/themes 文件夹中。我的 page-front.tpl.php 应该驱动我的首页。

它有两个场景的 if-else 语句:登录和未登录的用户。对于已登录的用户,一切正常:登录后,用户会看到我的自定义首页。对于未登录(匿名)的用户,它总是将他们转发到http://what-i.com/user?destination=home。我不知道如何覆盖该重定向:它不接受我的 page-front.tpl.php 中的 if 语句,我尝试使用 frontpage 模块但没有成功,并且我还尝试更改下面的首页设置站点信息无济于事。

谁能帮我解决这个问题:也就是说,我希望我的匿名用户看到我创建的自定义首页,而不是被重定向到 user?destination=home。

【问题讨论】:

    标签: php drupal anonymous frontpage drupal-commons


    【解决方案1】:

    您可以通过 TPL 文件或模块 init() 执行此操作。

    来自 x.tpl.php:

    if (drupal_is_frontpage()) {
       global $user;
       if ($user->uid == 0) {
           drupal_goto('some page');
       }
     }
    

    来自一个模块:

    mymodule_init() {
       global $user;
       if ($user->uid == 0 && drupal_is_frontpage()) {
          drupal_goto('some page');
       }
    }
    

    【讨论】:

    • Kevin,当我尝试您的解决方案并将代码放在 page.tpl.php 文件的顶部时,我的页面进入无限重定向循环。这怎么能解决?谢谢。
    • 对不起,用 if ($is_front) { //code } 包装整个语句。那应该解决这个问题。更新了我的答案。
    • 这段代码可以通过使用drupal_is_front_page()函数来简化:api.drupal.org/api/function/drupal_is_front_page/6
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-08-17
    • 2023-03-06
    • 2012-07-15
    • 1970-01-01
    • 2016-03-07
    • 2019-10-01
    • 1970-01-01
    相关资源
    最近更新 更多