Создание форм – достаточно рутинная задача. Процесс подробно описан в документации, но можно легко сделать множество механических ошибок. Например, имена и id полей формы нужно указывать несколько раз — в контроллере и представлении.
Самое главное, что в некоторых случаях вы не получите сообщения об ошибках, а значит, найти их можно будет только с помощью тщательного тестирования. Речь идет о правилах проверки полей формы. Эти правила задаются в массиве, и при этом ключ элемента массива должен совпадать с id поля. Но если вы неправильно запишите название, то CodeIgniter будет считать, что для данного поля правила просто не заданы.
Естественно, что даже частичная автоматизация процесса может значительно сэкономить ваше время.
Сначала я пробовал использовать шаблоны для создания форм, но это было не удобно. Код должен быть размещен в разных файлах, да и количество и тип полей постоянно изменяются.
Поэтому я написал небольшой генератор форм для CodeIgniter.
Вообще-то, генератор был написан довольно давно, но постоянно находился в недоделанном состоянии. Не хватало части полей, и интерфейс никак нельзя было назвать дружественным 😉 .
Принцип работы очень простой. На вкладке «Настройки» вы указываете, какие поля вам нужны их тип и имена (атрибуты name
и id
). Ограничений на количество полей нет.
В поле action
вы указываете, куда нужно отправить данные формы. Обычно это имя контроллера и метод (например, main/checkform
).
Значение в столбце name (id) устанавливается одинаковым для обоих атрибутов. Это же значение используется при создании массивов с правилами проверки ($rules
) и перечнем полей ($fields
). Естественно, использовать не латинские символы не рекомендуется 🙂 .
Столбец «value или src или label» позволяет задать надпись на кнопках, адрес рисунка или текст метки для текстовых полей. Т.е. использование значения в этом столбце зависит от типа поля.
В столбце «Правила» указываем правила проверки полей. Точно также как и при создании формы вручную. Эти поля можно оставить пустыми. Кроме того, для некоторых типов полей (например, кнопок) правила не создаются.
Когда все необходимые поля созданы, нажимаем кнопку «Генерировать код».
Созданный код появится во вкладках «Контроллер», «Предствление» и «CSS». Теперь можете его копировать в ваше приложение.
Примечание. Поддержка CSS экспериментальная. Во всех случаях создаются одни и те же правила, которые задают размещение в две колонки. Слева – метки (label), справа – поля.
Несколько общих замечаний
1) Генератор создает код, предназначенный для работы с PHP фреймворком CodeIgniter. Поэтому перед использованием советую, как минимум познакомиться с библиотекой Validation этого фреймворка.
2) Написан генератор так, чтобы сохранить максимальную свободу действий. Это означает, что вы можете не указывать параметры полей формы. Код все равно будет сформирован. Но если вы оставите незаполненным name (id), то смысла в использовании генератора просто не будет.
3) Основное назначение генератора – создать каркас формы, который при необходимости можно подправить вручную. Это значит, что класс контроллера и основную часть представления вам нужно написать самостоятельно или с помощью другого генератора 😉 .
4) Приложение написано полностью на JavaScript. Поэтому вы можете просто сохранить страницу с ним на винчестер.
Буду рад почитать ваши отзывы в комментариях 🙂 . Особенно интересно услышать критику, желательно аргументированную 😉 .
P.S. Судя по текущим результатам опроса на Хабрахабр, CodeIgniter занимает второе место по популярности после Zend Framework. Отставание всего на пару процентов.
UPD (7.10.2008). Добавил простенькую анимацию. Надеюсь, работать станет удобнее 🙂 .