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

Пишем модуль, Form API в Drupal 7 (уровень 2.1). Часть 2

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

видео Пишем модуль, Form API в Drupal 7 (уровень 2.1). Часть 2

Пишем модуль Drupal 7, hook_menu - Видеоуроки по Drupal

Продолжение (см. Пишем модуль, 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”.

Карта
rss