[РЕШЕНО]Небольшой вопрос по поводу hook_menu и Передачи Аргумента вызывемой функции. Код внутри

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

Аватар пользователя andr-ok andr-ok 7 августа 2013 в 14:17

Дело в том что когда перехожу на страницу st/*пусто* друпал выдает WARNING MISSING ARGUMENT.
Но мне-то не надо чтоб он выдавал этот варнинг.
Я просто обрабатываю аргумент и при его отсутсвии через drupal_goto() перенаправляю на st/*что надо*
ТАК ВОТ - как убрать(избежать появления этого warninig)?

 $items['st/%'] = array(
    'title' => t('Ст'),
    'page callback' => 'main_table',
        'page arguments' => array(1),  
  );

Комментарии

Аватар пользователя andr-ok andr-ok 7 августа 2013 в 18:51

Имеете ввиду так?

function printStatistic_menu() {

  $items['st/%'] = array(
    'title' => t('Ст'),
    'page callback' => 'FUN2',
        'page arguments' => array(1),
        'access callback' => 'is_ud_role',     
  );
  $items['st'] = array(
    'title' => t('Статистика'),
    'page callback' => 'FUN1',
       
        'access callback' => 'is_ud_role',     
  );
 
 
 
  return $items;
}

Не Работает. Ошибка все та же отсутсвие аргумента. Видно потому что st все равно соответсвует st/%

Аватар пользователя andr-ok andr-ok 7 августа 2013 в 19:02

Решение.
когда не передается аргумента, то аргументу функции FUN2 не присваивается ничего, даже NULL. И WARNING образуется когда видит что вызывается функции FUN2, но ей не передали аргументов. Значит нужно сделать аргумент FUN2 не обязательным, то есть присвоить значение ему. то есть
при определении функции FUN2 объявленой в PAGE CALLBACK,вместо

function FUN2($arg)

пишем

function FUN2($arg=NULL)