drupal模块重定向目标问题
我正在研究另一个模块的想法。该模块只需将用户自动重定向到指定节点,如以下示例代码所示:drupal模块重定向目标问题,drupal,redirect,hook,Drupal,Redirect,Hook,我正在研究另一个模块的想法。该模块只需将用户自动重定向到指定节点,如以下示例代码所示: function test_module_init(){ drupal_goto('node/100'); } 代码只是一个例子。但是,真正的问题是代码一直在执行,直到浏览器返回“太多重定向”错误消息 我明白为什么会这样。我需要的帮助是最好的钩子来放置我的drupal_goto代码,使其执行一次,而不是当前在钩子初始化中执行的多次。您不能这样做吗: function test_module
function test_module_init(){
drupal_goto('node/100');
}
代码只是一个例子。但是,真正的问题是代码一直在执行,直到浏览器返回“太多重定向”错误消息
我明白为什么会这样。我需要的帮助是最好的钩子来放置我的drupal_goto代码,使其执行一次,而不是当前在钩子初始化中执行的多次。您不能这样做吗:
function test_module_init() {
if(isset($_GET['q') && $_GET['q'] == 'node/100') {
// skip goto statement
return;
}
drupal_goto('node/100');
}
您编写的init钩子会在每次页面加载时触发,包括在node/100上时。这就是你被重定向的原因。因此,页面正在重定向到自身。只有当您还没有在node/100上时,才需要重定向。如果需要,您可以在$_GET['q']中找到此信息
你不需要一个不同的钩子,你只需要确保如果你已经在目标页面上,你不会调用drupal_goto 在这种情况下没有。我正在设置一个模块,该模块将检测用户所属的有机组,并始终将用户重定向到所述组。这样,用户只会看到他所属的组页面,而不会看到其他节点