Пишем модуль, Form API в Drupal 7 (уровень 2.1). Часть 2
Опубликовано: 30.07.2017
Продолжение (см. Пишем модуль, Form API в Drupal 7 (уровень 2.1) часть 1) . В этой части статьи мы научимся тому, как правильно писать функцию проверки к форме (валидации) а также функцию отправки формы (сабмита1).
Form API в Drupal 7 урок 1 (вступление)
В первой части статьи ( линк ) мы приступили к изучению процедуры написания модуля с использованием базовых возможностями hook_menu. Также мы научились создавать форму, содержащую 2 элемента: “textfiled” (текстовое поле), “select” (выпадающий список) с “submit” (кнопкой отправки формы). В данной части мы распишем валидацию нашей формы, а также, ее отправку.
Система Form API в Drupal 7 составлена довольно интересно. Для каждой формы есть возможность применять функции обработки - такие, например, как валидация (проверка) и сабмит (финальная функция).
В функции валидации формы должны прописываться различные проверки. Если в функции валидации будет вызвана функция “form_set_error”, тогда функция отправки формы не будет запущена. Если же валидация у нас пройдена успешно, то есть вызванной функции “form_set_error” нет, тогда после валидации обязательно запуститься функция сабмита.
Начинаться функция валидации, также как и функция сабмита, должна с названия функции формы, плюс в конце названия функции необходимо добавить соотвествующую приставку.
Пример: у нас есть функция, которая выводит форму с названием “calculator_page_form”, тогда функция валидации будет с именем “calculator_page_form_validate”, а функция сабмита будет называться “calculator_page_form_submit”.
Давайте составим функцию валидации и сабмита в модуле, написанном нами в предыдущий раз. Сама функция будет иметь следующий вид:
/** * Validate function for calculator_page_form. */ function calculator_page_form_validate ($form, & $form_state) { } /** * Submit function for calculator_page_form. */ function calculator_page_form_submit ($form, & $form_state) { }Обратите внимание на то, что функции уникальны, имеют соответственные приставки (“_validate” и “_submit”), и в них, также, доступны 2 аргумента - “$form” и “$form_state”.
Сегодня | Завтра | ||
USD | 32.62 | 32.50 | |
EUR | 39.90 | 39.92 |
Обменник | Переходов |
Wmchanger | 6 |
E-Market | 5 |
WMtoCash.com | 4 |
Str-Money | 3 |
Hot-Change | 3 |
Вы можете получить WMR-бонус в размере 0,01-0,10 WMR на свой кошелек 1 раз в сутки | |
Кошелек
|
|
Код
|
|
Обмен Webmoney |