Автор оригинала: @lexander
Bermuda, возможно, вы уже сталкивались с подобным.
1. Как поместить на страницу 2 формы, чтобы не было конфликта. Например, dataGrid и форму редактирования, форму редактирования и подписку на рассылку и т.д.?
Это первая мель, но решение есть
http://examples.qcodo.com/examples/multiple_qform/intro.php
Как раз пример с формой и датагридом.
2. Пытался интегрировать Qforms в ZendFramework — идея провалилась почти на старте из-за п. 1
У меня "Helo world" на ZendFramework (как контроллер) и Qforms (как View) получилось, правде две формы не пробовал. Могу выслать заготовку.
3. Вложенные шаблоны так же не удались (формы конфликтуют)
Это со временем пройдет само собой, просто вы еще не адаптировались к идеологии фрэймфорка. Там такие вещи решаются немного по-другому, причем аж несколькими способами. Попрактикуйте еще с более простыми вещами, впоследствии идеология приживется и Вы найдете решение.
4. Может вы знаете, как можно "инкапсулировать" формы, т.е. возможно ли в код простого шаблона (без форм) вставить что-то наподобие:
PersonListForm::Run('PersonListForm', 'generated/person_list.tpl.php');
и
ProjectListForm::Run('ProjectListForm', 'generated/project_list.tpl.php');
В Qcodo шаблоны php-нативные, т. е. они должны выполняться.
В примерах
http://examples.qcodo.com/examples/
Для каждого примера есть "view source" и вроде как все разжевано. Обращаться Вы должны к контроллеру страницы, которая в свою очередь выполняет шаблон.
В результате должна получиться страница с 2-мя формами?
Для этого попробуйте использовать QPanels как на примере выше.
Честно говоря, я поначалу был очень недоволен qocodo и очень долго не мог перестроиться от web-овского асинхронного поведения приложений, к поведению Qcodo -- stateful, event-driven architecture for web-based forms. Тем не менее в итоге получилось реализовать весь задуманный функционал причем без грязных хаков.
-~{}~ 02.05.07 16:04:
З. Ы.
В большинстве случаев две формы просто не нужны.
Qcodo позволяет на разные события повесить разные действия серверной части.
Хотите две формы? Сделайте одну, но разнесенную на две части, у каждой части своя кнопка сабмита. На каждую кнопку свой обработчик события.
Хотите чтобы в каждой форме работал Enter? Аналогично на собитие нажатия enter-а в текстовом поле можно повесить обработчик.
И вообще, забудьте про количество форм. Сфокусируйтесь на событиях генерируемых пользователем.
Hint: на разные события можно вешать общий обработчик.