[РЕШЕНО] hook_menu() + PHP5 - не работает.

Главные вкладки

Аватар пользователя elia elia 17 апреля 2010 в 22:05

Простенький модуль регистрирует свою форму в системе меню:

function dosug_menu() {
  $items['dosug'] = array(
    'title' => 'menu_callback',
        'access callback' => 'user_access',
        'page callback' => 'drupal_get_form',
        'page arguments' => 'dosug_list',
        'type' => MENU_CALLBACK,
  );
  return $items;
}

На Drupal 6.16 + PHP 4.3.11 + MySQL 4.0.22 все работает.
А на Drupal 6.16 + PHP 5.2.9 + MySQL 5.0.76 не работает:

    * warning: Invalid argument supplied for foreach() in /home/.../includes/menu.inc on line 258.
    * warning: array_merge(): Argument #1 is not an array in /home/.../includes/menu.inc on line 323.
    * warning: Missing argument 1 for drupal_get_form() in /home/.../includes/form.inc on line 69.
    * warning: call_user_func_array(): First argument is expected to be a valid callback, '' was given in /home/.../includes/form.inc on line 372.

Передергивание кеша, ручная зачистка {cash_menu} и другие пляски с бубном не помагают. Дайте правильный бубен Smile

Комментарии

Аватар пользователя graker graker 17 апреля 2010 в 22:20

Правильный бубен: page arguments - массив. И ничего чистить и дергать не надо.

А access callback вообще не нужно указывать, если он равен user_access. Тем более если вы все равно аргументы для него не передаете (которые, если что, тоже должны быть в массиве).

Аватар пользователя elia elia 18 апреля 2010 в 14:45

Ок. Реально досадный ляп.
Скоро смогу проверить.

Но все-таки - почему такой 'page arguments' работает на PHP4 и не работает на PHP5?