





Примечание: На сегодняшний день есть модуль Form Builder, который позволяет пользователям создавать структуры API форм через графический AJAX-интерфейс. Но эта статья не о нем... Для начала стоит написать что это за генератор и зачем он нужен. Как известно, формы в Друпале представлены в виде массива. И чем больше элементов на форме, тем внушительнее смотрится этот массив. Он не сложный, но на его составление уходит время. Именно для ускорения процесса я и начал разработку генератора форм.
Краткая характеристика: "Drupal-form v.1.0" написан на Actionscript 2.0. Данные по элементам: Справочник Forms API
ОПИСАНИЕ ИНТЕРФЕЙСА
Внешний вид генератора можно увидеть на рисунке 1. Тут все просто как апельсин! Рабочее пространство разделено на 5 областей: 1. Панель управления - настройки генератора и запуск на выполнение 2. Панель "Элементы" - служит для выбора элементов формы 3. Панель "Свойства" - Отображает свойства выбранного элемента (элемента формы или самой формы) 4. Панель "Вес" - Показывает "Вес" элементов, учитывая вложенность элементов в "fieldset". Чем выше элемент, тем меньше его вес. 5. Рабочий стол - Место, где происходит магия. Именно сюда необходимо помещать элементы будущей формы. Тут их можно перетаскивать, изменяя вес, и удалять.
ПРИМЕР ИСПОЛЬЗОВАНИЯ
Думаю, любой, кто начинал изучать принципы работы с формами на Drupal, встречал статью 10 шагов к постижению форм в Друпале. На примере этих форм продемонстрирую работу своего генератора.
Начало... После запуска приложения, на рабочем столе автоматически появляется один элемент: "form". Его положение зафиксировано. Клик по объекту открывает панель "Свойства". Рядом с каждым свойством стоит чекбох. Те свойства, что отмечены галочкой будут добавлены в массив во время генерации. По умолчанию отмечены параметры, которые, в большинстве случаев, стоит обязательно заполнить при создании элемента. Верхнее текстовое поле предназначено для имени элемента. Имя формы в программе используется как префикс в названии функции _form($form_state). В нашем "подопытном примере" функция называется "my_module_my_form($form_state)", значит нам необходимо задать в качестве имени формы "my_module_my" (рисунок 2). Остальные параметры оставляем без изменений. Идем дальше по примеру...
Пример 1. Простая форма с одним элементом - тестовое поле ("name") с заголовком "Name". Имя формы задано. Добавим первый элемент:
- На панели элементов выбираем текстовое поле ("textfield").
- Клик по элементу на рабочем столе открывает панель "Свойства". По умолчанию выделено 5 параметров для генерации, но мы точно следуем примеру и оставляем только два - type и title.
- Заполняем два поля: имя элемента ('name') и заголовок ('Name').
- Перед генерацией на панели настроек поставьте галочку на свойстве t() - автоматически оборачивать текст в функцию t(), для дальнейшего перевода (рисунок 3)
- Все, первая форма готова. Не верите? Нажмите кнопку "генерировать". Перед копированием, полученный код можно отредактировать прямо в окне с результатом (рисунок 4). Пример 2. Добавить кнопку отправки формы (имя "submit"). Если Вы еще не закрыли окно с предыдущим результатом, то сейчас самое время это сделать. Приступим.
- На панели элементов выберем кнопку отправки ("submit")
- Указываем параметры кнопки. В нашем случае - имя кнопки "submit" (рисунок 5)
- Ура! Форма готова (рисунок 6).
Комментарии
Добавить комментарий