http://wm-monitoring.ru/ ')) {alert('Спасибо за то что установили нашу кнопку! =)');} else {alert('Очень жаль! =(');}"> http://wm-monitoring.ru/

Главная Новости

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

Опубликовано: 21.10.2017

Прежде всего я отмечу, — все, что будет описано далее актуально исключительно для 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

Карта
rss