[Решено] Передать параметр в MENU_LOCAL_TASK

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

Аватар пользователя pawelch pawelch 22 декабря 2010 в 12:05

Как передать параметр в $items?

То есть есть страница programs/3
в ней MENU_LOCAL_TASK добавить программу - и ссылка в ней /programs/%id/add/

а нужно чтобы было /programs/3/add/
вот текст из модуля
$items['programs/%id/add/'] = array(
'title' => 'Добавить передачу',
'page callback' => 'drupal_get_form',
'page arguments' => array('program_form',arg(2)),
'access arguments' => array('administer site configuration'),
'type' => MENU_LOCAL_TASK,
'weight' => 2,

);

Комментарии

Аватар пользователя graker graker 22 декабря 2010 в 12:30

Если я правильно понял из изложенного, у вас ошибка в 'page arguments' => array('program_form',arg(2)). arg(2) указывает на 'add', а на %id указывает arg(1).

Соответственно, если вам нужно, чтоб в drupal_get_form была передана тройка, надо вместо arg(2) передавать arg(1).

При этом не совсем понятно, зачем вы используете запись '%id', а не просто '%' или же '%node'. Создаете новый вайлдкард?

Аватар пользователя pawelch pawelch 22 декабря 2010 в 12:41

Спасибо большое !!!

Это я модуль для программы передач пишу.

И исправил на:

$items['programs/%/add/'] = array(
        'title' => 'Добавить передачу',
        'page callback' => 'drupal_get_form',
        'page arguments' => array('program_form',arg(2)),
        'access arguments' => array('administer site configuration'),
        'type' => MENU_LOCAL_TASK,
                'weight' => 2,
    );

Теперь работает!