Ошибка меню Drupal 7

Я написал собственный модуль для Drupal 7 и получил следующее предупреждение:
Warning: Invalid argument supplied for foreach() в функции menu_unserialize() (строка 400 в файле /var/www/auth/includes/menu.inc).

Мое hook_menu здесь:

function mnogomirauth2_menu() { $menu['tables/udkservers'] = array( 'title' => 'udkserversTable', 'page callback' => '_menu_test', 'access arguments' => TRUE, 'type' => MENU_NORMAL_ITEM ); return $menu; } function _menu_test() { echo "test"; }

Пожалуйста, скажите мне, что не так с этим кодом?

С наилучшими пожеланиями.

3 ответа

Решение

В соответствии с Drupal API для hook_menu

"аргументы доступа": массив аргументов для передачи в функцию обратного вызова доступа с подстановкой компонента пути, как описано выше. Если обратный вызов доступа наследуется (см. Выше), аргументы доступа будут наследоваться вместе с ним, если только он не переопределен в дочернем элементе меню.

Похоже, вы указали неверный аргумент TRUE за access arguments,

Приведенный ниже код решит эту проблему:

До:

'access arguments' => TRUE,

После:

'access arguments' => array('Your Permission'), //array(TRUE)

Код, который работает, следующий.

function mnogomirauth2_menu() {
  $menu['tables/udkservers'] = array(
    'title' => 'udkserversTable', 
    'page callback' => '_menu_test', 
    'access callback' => TRUE, 
    'type' => MENU_NORMAL_ITEM
  );

  return $menu;
}

Это обратный вызов доступа, который может быть числом. Если это оценивает TRUEкаждый пользователь имеет доступ к пункту меню; это оценивает FALSEНи один пользователь не имеет доступа к пункту меню.

Рекомендации

Другие вопросы по тегам