我正在研究另一个模块的想法。该模块应该简单地将用户自动重定向到指定的节点,如以下示例代码所示:
function test_module_init(){
drupal_goto('node/100');
}
代码仅仅是一个例子。但是,真正的问题是代码一直执行,直到浏览器返回“太多重定向”错误消息。
我明白为什么会这样。我需要帮助的是最好的钩子来放置我的drupal_goto代码,因此它执行一次而不是当前在hook_init中执行的多次。
答案 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即可。