2011-08-24 31 views
1

我想在我的模塊中使用hook_menu()創建一個非常簡單的頁面,但在測試之後,我得到「您無權訪問此頁面」。我無法弄清楚我做錯了什麼。以下是我使用的代碼。我使用hook_menu()創建頁面,但是我得到「您無權訪問此頁面。」

請注意,我在現有的模塊包下創建了該模塊。例如,模塊文件夾是xyz,我爲模塊創建了一個xyz_mobile文件夾,並且我在信息中添加了xyz作爲包。我不知道這是否與它有任何關係。

function xyz_mobile_menu() { 
    $items['mobile'] = array(
    'title' => 'page test', 
    'access callback' => TRUE, 
    'type' => MENU_CALLBACK, 
); 

    return $items; 
} 

回答

1

我假設Drupal 6在這裏。你所需要的「接入參數」和「頁面回調」的元素在$ items數組:

function mymodule_menu() { 
    $items = array(); 

    $items['mobile'] = array(
      'title' => 'page test', 
      'page callback' => 'mymodule_my_function', 
      'access callback' => 'user_access', 
      'access arguments' => array('access content'), // or another permission 
      'type' => MENU_CALLBACK, 
    ); 

    return $items; 
} 

「訪問回調」元素包含了函數的名稱(在這種情況下,user_access),將檢查用戶具有在「訪問參數」元素中指定的權限。

'頁面回調'元素將運行您的自定義函數。

function mymodule_my_function() { 
    return 'this is the test page'; 
} 

最後,在重新測試之前不要忘記清除菜單緩存。

+1

默認情況下,當菜單定義使用「access arguments」屬性時,訪問回調爲「user_access()」。 – kiamlaluno

相關問題