我正在使用hook_menu()创建一个页面,但我得到“您无权访问此页面。”

时间:2011-08-24 19:30:53

标签: drupal drupal-modules drupal-hooks

我正在尝试使用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 个答案:

答案 0 :(得分: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;
}

'access callback'元素包含函数的名称(在本例中为user_access),它将检查用户是否具有'access arguments'元素中指定的权限。

'page callback'元素将运行您的自定义函数。

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

最后,在重新测试之前,不要忘记清除菜单缓存。

相关问题