我有一个drupal访问回调的问题。
我有一个页面,它只能访问那些id在表中的用户。
PHPfunction niiar5c_menu()
{
// Blank5c
$items['blank5c/add'] = array(
'title' => 'Бланк 5С',
'page callback' => 'drupal_get_form',
'page arguments' => array('module_blankadd'),
'file' => 'modul.pages.inc',
'access callback' => 'module_access',
'access arguments' => array(1),
'type' => MENU_LOCAL_TASK,
'weight' => 2,
);
return $items;
}
function module_access () {
global $user;
$uuid = $user->uid;
$nids = db_select('whoboss', 'n')
->fields('n', array('name'))
->execute()
->fetchCol();
if (in_array($uuid, $nids)){
return TRUE;} else return FALSE;
}
但是函数'module_access'没有返回true或false。
function module_access () {
return TRUE;
}
access callback不返回TRUE在"您未被授权访问此页面"页面上。
- 删除"type"=> MENU_LOCAL_TASK。
- 检查父菜单项是否可访问'blank5c'。
我可以看到您提供的访问参数为array(1)。但是你的访问回调函数不包含任何参数。
可以在access回调函数内部定义函数参数。但我不觉得这和你的案子有什么关系。删除hook_menu中的access参数,然后再试一次,如下所示
function niiar5c_menu()
{
// Blank5c
$items['blank5c/add'] = array(
'title' => 'Бланк 5С',
'page callback' => 'drupal_get_form',
'page arguments' => array('module_blankadd'),
'file' => 'modul.pages.inc',
'access callback' => 'module_access',
'type' => MENU_LOCAL_TASK,
'weight' => 2,
);
return $items;
}
编辑:您需要在文件module .pages.inc