drupal模块重定向目标问题

时间:2011-12-11 22:08:25

标签: drupal redirect hook

我正在研究另一个模块的想法。该模块应该简单地将用户自动重定向到指定的节点,如以下示例代码所示:

  function test_module_init(){
    drupal_goto('node/100');
  }

代码仅仅是一个例子。但是,真正的问题是代码一直执行,直到浏览器返回“太多重定向”错误消息。

我明白为什么会这样。我需要帮助的是最好的钩子来放置我的drupal_goto代码,因此它执行一次而不是当前在hook_init中执行的多次。

2 个答案:

答案 0 :(得分:1)

你不能只做这样的事情:

 function test_module_init() {
    if(isset($_GET['q') && $_GET['q'] == 'node/100') {
       // skip goto statement
       return;
    }
    drupal_goto('node/100');
 }

答案 1 :(得分:0)

您编写的init挂钩会在每个页面加载时触发,包括当您在node / 100上时。这就是你获得重定向的原因。所以页面重定向到自己。如果你还没有在node / 100上,你真的只需要重定向。如果需要,您可以在$ _GET ['q']中找到此信息。

如果您已经在目标网页上,则只需要确保不调用drupal_goto即可。