Drupal: как передать аргументы форме на странице в HOOK_menu()

Прежде всего я отмечу, — все, что будет описано далее актуально исключительно для Drupal 7.xx.

Итак, передать кастомные, т.е. свои пользовательские аргументы, помимо стандартных $form и $form_state в форму, сделанную на Form API можно с помощью хука HOOK_menu() к примеру вот так:

<?php
// HOOK_menu():
function RedBookCms_menu() {
    // ...
    $items['base/words/%'] = array(
        'title' => 'Пример страницы с аргументами',
        'page callback' => 'drupal_get_form',
        'page arguments' => array('RedBookCms_WordsBase_form', 2),
        'access arguments' => array('edit translations'),
    );
    // ...
    return $items;
}

// HOOK_form():
function RedBookCms_WordsBase_form($form, &$form_state, $lang = 'tur') {
    // И вот здесь уже обрабатываете вашу 
    // кастомную переменную, в примере это $lang.
    // ...
    return $form;
}

// Form submit:
function RedBookCms_WordsBase_form_submit($form, &$form_state) {
    // ...
}
?>

Обратите внимание, что третий входной параметр добавился лишь к собственно функции, где задаются элементы формы. Сабмит остается прежним. По крайней мере у меня.

Получается некая замена GET-параметрам PHP: вместо http://example.com/base/words?lang=tur пишем и используем http://example.com/base/words/lang/tur.

Опубликовано 7-02-2014 в 16:59


Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>











Свежие комментарии

  • krasnov8953: к записи Не работает как мне кажется строчка $newTvId = $ »
  • Dimanski: к записи ничего не понимаю. Ставлю ModX на хостинг r01.ru »
  • Дмитрий: к записи Спасибо! Очень выручили. С битриксом беда, а прав »
  • леонид: к записи как сделать что были в ряд? у меня получается по о »
  • Администратор: к записи Статический IP. »
  • Steel: к записи Администратор, вы данную проблему решили подключен »
  • Дмитрий: к записи Хотел узнать как прикрутить данное окно (http://re »

Blogroll:

  • Полезную программу illustrator скачать бесплатно русская версия может скачать даже школьник →

Последние твиты