jQuickForm = генератор форм на PHP (jQuery + HTML_QuickForm2)

Groove

Новичок
jQuickForm = генератор форм на PHP (jQuery + HTML_QuickForm2)

Собственно даю ссылку на хабр, анонс там сделал только что:
http://habrahabr.ru/blogs/php/104834/

Всем привет!
Судя по тому, что вы читаете этот топик — вам тоже интересен вопрос легкой генерации сложных форм.

Начну с главного:
Какие задачи ставились перед этой сборкой
1) Построение сложных форм БЕЗ написания шаблонов, в 90% случаев достаточно того стиля оформления, который когда то был один раз проработан и переезжает из проекта в проект.
2) Возможность управления внешних видом формы путем изменения правил CSS.
3) Возможность управления правилами проверки (валидация форм) в одном месте, при этом чтобы автоматически строились правила проверки на javascript (клиентская валидация) и на PHP (серверная валидация).
4) Валидная верстка, по возможности, с использованием минимально необходимого div-ов
5) Вызовы методов цепочкой, чтобы отсутствовала необходимость держать в голове список параметров, их очередность и прочее, чем должно заниматься IDE $el->setLabel($label)->setComment($comment); 6) Возможность быстрого созданию любого виджета из комплекта, например jQueryUI
7) Желание сделать мир хоть немного лучше! :)


Зачем еще один построитель форм?
Ну во-первых, чтобы предложить вам продукт готовый к использованию, было перерыто много источников, скачали весь интернет и попробовали на локалхосте, я задавал вопрос на хабре и на PHPClub.
Причем, если внимательно присмотреться к тем сообщениям, то изначально я планировал использовать zforms.ru, в итоге долгих раздумий и «ковыряний» во внутренностях пришел к тому, что лучше доработать сами HTML_QuickForm2, чем пытаться создавать на их основе подобие zforms.
Во-вторых, ничего нового изобретать не пришлось, зато пришлось подружить два великолепных фреймворка jQuery + HTML_QuickForm2
Что из этого получилось — судить вам!

Самая большая проблема в освоении нового фреймворка — это обычно скудное количество документации, а также отсутствие времени и желания копаться во всем подряд, для того, чтобы потом жалеть о потраченном времени.
Для новичков же — высоким порогом порой является отсутствие конкретных примеров, снабженных детальными комментариями, а также гремучая смесь PHP+HTML, в которой черт ногу сломит.

В своей работе я постарался обойти эти типичные проблемы и, на мой взгляд, достаточно сильно разделил логику от представления, а самое главное — в освоении этого генератора форм вам не придется метаться из браузера в IDE, чтобы понять что нужно сделать, чтобы получить такой результат: все самые важные процессы, протекающие при генерации самой формы, построении правил клиентской валидации, подключаемые скрипты и стили оформления, ну, и конечно же, сам сгенерированный HTML показывается внизу каждой страницы.

В итоге получилось следующее:
1) форма генерируется при помощи HTML_QuickForm2
2) правила валидации, привязанные им же к этой форме, работают как на стороне сервера, так и на стороне клиента
3) доработан сам пакет таким образом, чтобы исключить/перекрыть все магические методы. Это сделано для того, чтобы существенно сэкономить время разработчика, ведь ему уже не приходится держать в голове все параметры, необходимые для создания типового элемента типа
$form->addSelect('name', array('label' => 'My select', 'options' => $options), array('style' => 'color:red'));

По возможности старался делать так, чтобы все методы можно было вызывать с четко именованными параметрами цепочками типа:
$form->addSelect('name')->setLabel('My select')->loadOptions($options);

4) добавлены некоторые виджеты из jQuery UI и другие плагины (различные виды autocomplete, datapicker, jWysiwyg)
5) есть даже мастер-форма со страничками, перелистывающаяся при помощи кнопок вперед/назад
jquickform.ru/?page=elements_page
Причем мастер работает даже с отключенным джаваскриптом, просто в этом случае кнопки вперед/назад скрыты, а сама форму развернута на одной странице.
6) Элементы можно группировать практически с неограниченной вложенностью
7) Встроен нейтральный стиль оформления формы по-умолчанию, который, думаю, удовлетворит большинство прямо «из коробки», но изменить внешний вид формы можно будет не влезая ни в шаблоны, ни в PHP-код.

В общем настойчиво рекомендую ознакомиться всем «заинтересованным лицам».
Двое суток в офисе просидел, чтобы закончить сегодня к дню рождения сына (сегодня ему год и пять мясяцев, да — это наш маленький семейный праздник) и это мой подарок ему!

Приятных выходных! :)

Вдогонку хотел бы еще раз выразить признательность одному из авторов HTML_QuickForm2 — Борзову Алексею (Sad Spirit) за оперативную помощь и исчерпывающие комментарии. Спасибо, Алексей!

-~{}~ 24.09.10 20:05:

и, да - если кто есть из клуба на хабре - не дайте утонуть топику плиз ;)

-~{}~ 28.09.10 15:26:

Очень большое обновление, полный текст тут:
http://habrahabr.ru/blogs/php/105041/
Описаны многие (но далеко не все) прелести QuickForm, а также даны примеры интеграции в ваши приложения.
Пробуйте.

-~{}~ 28.09.10 15:27:

Из вкусного: SWF Uploader "из коробки", добавление одной строкой в форму
PHP:
$upload = $form->insertMultiUpload('file','/cms/upload/index.php', array('cat_id'=>$gallery_cat_id),102400);
 

Adelf

Administrator
Команда форума
@primum, посту 7 с половиной лет. Всякое могло случиться.
 
Сверху