访问回调。函数不返回false和true值

时间:2015-08-20 06:01:10

标签: php drupal

我在drupal中访问回调有问题。

我有一个页面,只能访问那些id在表格中的用户。

PHP

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',
        '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'不会返回真或假。

function module_access () {

return TRUE;

}

在访问回调中,它没有返回TRUE' 在页面"您无权访问此页面。"

2 个答案:

答案 0 :(得分:0)

我可以看到你提供的访问参数为array(1)。但是您的访问回调函数不包含任何参数。

您可以在访问回调函数中定义函数参数。但我不知道你的情况是否相关。从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;
}

编辑:您需要在modul.pages.inc文件中定义函数module_access

答案 1 :(得分:0)

  1. 删除'输入' => MENU_LOCAL_TASK。这是标签。
  2. 检查父菜单项是否可访问' blank5c'。