Использование Zend_Form для построения нестандартных форм.

bkonst

.. хочется странного?...
Использование Zend_Form для построения нестандартных форм.

На днях пришлось вплотную столкнуться с Zend Framework. Естественно, через 30 минут после знакомства потребовалось создать форму. Естественно, полез в документацию... и был удивлён тем, что не нашёл простой возможности сформировать форму типа

<form>
Label1 <input ...>
Label2 <input ...>

...поясняющий текст...

Label3 <input ...>
Label4 <input ...>
</form>

То есть в принципе-то возможность есть - написать новый декоратор, который бы "...поясняющий текст..." силком впихивал перед нужным полем.... да только, боюсь, в результате всё будет усыпано декораторами, содержащими ссылки на кусочки оформления формы.

Вопрос больше философский: генерация HTML-кода форм через Zend_Form действительно такая нетривиальная вешь, или я не уловил какой-то тонкости?
 

Santiago

Новичок
Для сложных форм, как вариант, следует сделать отдельный шаблон и расставить там сами элементы формы.
 

AmdY

Пью пиво
Команда форума
если я не ошибаюсь там есть возможность писать свой декоратор. rtfm
 

bkonst

.. хочется странного?...
Автор оригинала: bkonst
....
То есть в принципе-то возможность есть - написать новый декоратор, который бы "...поясняющий текст..." силком впихивал перед нужным полем.... да только, боюсь, в результате всё будет усыпано декораторами, содержащими ссылки на кусочки оформления формы.
Автор оригинала: AmdY
если я не ошибаюсь там есть возможность писать свой декоратор. rtfm
Актуальный совет, да... :D
 

BigWindow

Новичок
А у меня немного оффтопный вопрос:
Зачем вообще нужен такой функционал? Я имею ввиду создание html формы из скрипта. Неужели это бывает необходимо? И не проще ли создавать форму в шаблоне?
 

bkonst

.. хочется странного?...
В порядке продолжения оффтопа: хочется-то генерации HTML-кода самих контролов и JS-обёрток для них, а не формы целиком.
 

crocodile2u

http://vbolshov.org.ru
bkonst
На мой взгляд - создание формы скриптом создает лишь иллюзию уменьшения кол-ва работы ("а у меня все само генерится") - а на деле приводит к тому, что приходится вместо стандартного синтаксиса ХТМЛ+жабоскрипт использовать никому незнакомый АПИ генератора форм.
 

bkonst

.. хочется странного?...
Автор оригинала: berkut
bkonst quick_form умеет вставлять кнопачки в шаблон
Я знаю. Более того, Zend_Form можно похачить до того же состояния.
Мне просто интересно, действительно ли Zend_Form настолько негибок из коробки.

-~{}~ 14.07.08 17:11:

Автор оригинала: crocodile2u
bkonst
На мой взгляд - создание формы скриптом создает лишь иллюзию уменьшения кол-ва работы ("а у меня все само генерится") - а на деле приводит к тому, что приходится вместо стандартного синтаксиса ХТМЛ+жабоскрипт использовать никому незнакомый АПИ генератора форм.
От (нормальной) генерации кода есть как минимум один приятный плюс - автоматически появляющаяся одинаковая валидация на сервере, и на клиенте.
 

crocodile2u

http://vbolshov.org.ru
bkonst
Продолжение споров на эту тему приведет к очередному холивару. Просто уточню: я говорил о своей личной позиции по данному вопросу.
 

Santiago

Новичок
bkonst
Почему "похачить"? Это вполне документированная возможность. Для больших и сложных форм удобно использовать в шаблоне что-то типа:
Код:
<?= $form->your_form->your_element ?>
А управление формами и элементами перенести в отдельный класс.
+ Zend_Form довольно гибок в расширении валидаторов и фильтров, что довольно удобно.
 

bkonst

.. хочется странного?...
Автор оригинала: Santiago
bkonst
Почему "похачить"? Это вполне документированная возможность. Для больших и сложных форм удобно использовать в шаблоне что-то типа:
Код:
<?= $form->your_form->your_element ?>
А управление формами и элементами перенести в отдельный класс.
+ Zend_Form довольно гибок в расширении валидаторов и фильтров, что довольно удобно.
Вот! Вот этого и я добивался. Спасибо.
(Я бы не сказал, что из документации так уж очевидно вытекает, что можно "из коробки" написать <?= $form->your_form->your_element ?>, но сам попробовать мог бы. mea culpa).
 
Сверху