2011-12-11 25 views
0

我工作的另一個模塊的想法。該模塊簡單地假定用戶自動重定向到指定的節點像在下面的示例代碼:Drupal的模塊重定向目的地問題

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

代碼僅僅是一個例子。但是,很實在的問題是代碼保持執行,直到瀏覽器返回「過多的重定向」錯誤消息。

我明白爲什麼會發生這種情況。我需要什麼幫助,是把我的drupal_goto代碼,以便它執行它目前確實在hook_init了多次的一次,而最好的鉤子。

回答

1

你就不能這樣做:

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

不在此例。到所述組我正在設置的模塊,其將檢測到的用戶所屬的有機基團,並始終將用戶重定向。這樣用戶將只能看到他所屬的組頁面,而沒有其他節點 – sisko

0

初始化掛鉤您在每個頁面加載寫道火災時,你是在節點/ 100,包括。這就是爲什麼你會得到重定向。因此,該頁面正在重定向到自己。如果你還沒有在node/100上,你實際上只需要重定向。如果需要,您可以在$ _GET ['q']中找到此信息。

你不需要一個鉤子,你只需要確保你不叫drupal_goto如果你已經在目標頁面上。