API Формы
Особенностью Drupal версии 4.7 и более поздних является наличие интерфейса О прикладного программирования (Application Programming Interface — API), используемого для создания, проверки и обработки HTML-форм. API формы абстрагирует формы во вложенный массив свойств и значений. Затем, когда приходит время генерирования страницы, этот массив визуализируется механизмом отображения форм. Из подобного подхода вытекает несколько следствий.
• Вместо того чтобы выводить HTML-код, мы создаем массив и позволяем движку генерировать HTML-код.
- Поскольку мы имеем дело с представлением формы в виде структурированных данных, мы можем добавлять, удалять, переупорядочивать и изменять окормы. Это особенно удобно, когда необходимо просто и ненавязчиво изменить форму, созданную другим модулем.
• Любой элемент формы можно преобразовать в любую функцию темы.
• Дополнительные процедуры проверки правильности формы или ее обработки добавляются к любой форме.
• Операции с формами защищены против атак на основе ввода данных в формы, когда пользователь изменяет форму и затем пробует отправить ее на сайт.
• Кривая изучения форм в плане их использования довольно крутая!
Скрытое поле, содержащее идентификатор текущей формы, посылается брау-как часть формы. Этот идентификатор обычно соответствует функции, который определяет форму. и посылается как первый параметр drupal_get_forra(). Например, функция userregister() определяет регистрационную форму пользователя.
Затем вызывается функция element_inf о (). Она запускает обработчик прерываний hook_elements () во всех модулях, в которых он реализован. В пределах ядра Drupal стандартные элементы (переключатели и переключатели на несколько положений) определяются реализацией system.module в hook_elements (). Модули осуществляют реализацию этого обработчика прерываний, если они хотят определить свои собственные типы элемента.
Вы могли бы захотеть осуществить реализацию hookelements () в своем модуле, чтобы наделить элемент формы специальными свойствами, такими как кнопка загрузки изображения, которая показывает миниатюру в течение предварительного представления узла, или чтобы расширить существующий элемент формы с помощью определения для него большего количества свойств.