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>

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

  • Валерий: к записи Моё личное мнение - хороший хостинг. На нём уже да »
  • DeKoS: к записи Робит всё. »
  • Администратор: к записи Что-то слишком дешево, подозрительно... »
  • Валерий: к записи Лучше, конечно, платный хостинг. Бесплатных полноц »
  • Администратор: к записи Нажмите на кнопку Скачать в статье. »
  • маша: к записи Ничего не понятно для новичка без CSS кода. Пожалу »
  • Администратор: к записи Почитайте информацию на http://javascript.ru/ »

Статистика спама

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