Content Management Framework. Easy. Convenient. Free.
Навигация
Новости
DLTFM!
Отныне документация доступна и в формате для скачивания.
1 февраля 2010 | Подробнее...
Новая документация
Первые разделы Руководства уже на сайте.
20 января 2010 | Подробнее...
Онлайн-поддержка
Теперь вы можете задать свои вопросы через ICQ.
11 января 2010 | Подробнее...
Новая версия ACMS!
Итак, спустя два с лишним года, вышла новая версия движка.
5 января 2010 | Подробнее...
Больше плагинов!
Два новых плагина появились за прошедшие пару дней.
16 марта 2008 | Подробнее...
Сравнение версий
Еще один плагин, полезный для разработчиков.
9 декабря 2007 | Подробнее...
Долгожданный плагин
Появился плагин поддержки пользователей и прав.
23 ноября 2007 | Подробнее...

Пример создания красивых форм

В этом примере речь пойдет об оформлении различных форм на сайте. Если у вас сложный, динамический проект, в котором формы ввода данных − обычное явление, и дизайн сайта требует, чтобы они были стильно оформлены, значит, данный пример − для вас.

Обычно формы − самая "некрасивая" часть на сайте: логика форм сама по себе требует солидного количества HTML-тегов, а в сочетании с оформлением страницы все это может привести к мешанине в тегах и путанице. Попробуем исправить положение. Идея простая: вынесем все оформление во вспомогательные теги, чтобы вызывать их по мере надобности, а также разделим форму на независимые элементы.

Для начала выполните два несложных шага:

1. Скачайте и распакуйте архив по этой ссылке. Внутри находится один файл (forms-templates.sql), это набор дополнительных шаблонов для форм. Импортируйте его в панели управления (Управление ACMS − Импорт БД). В списке шаблонов должно появиться несколько новых элементов.

2. Скачайте архив по второй ссылке. Распакуйте его в корневую папку вашего проекта с сохранением структуры каталогов, это набор изображений для обрамления форм. Убедитесь, что в папке вашего сайта появился подкаталог images, а в нем − подкаталог forms.

Теперь приступим к экспериментам. Откройте любой подходящий шаблон и добавьте в него фрагмент:

<insert:formMain title="Вход в систему" page="actionUser" action="login">
  <insert:formInput title="Имя:" name="username"/>
  <insert:formPassword title="Пароль:" name="password"/>
</insert:formMain>

Откройте эту страницу в браузере. Должно получиться что-то вроде этого:

Как видите, достаточно простой фрагмент кода отображает прилично оформленную форму, причем если нажать на кнопку отправки, данные будут отправлены на страницу "actionUser", а помимо собственно данных формы (поля "username" и "password"), будет также отправлен скрытый параметр "action" со значением "login". Все эти значения указаны в параметрах тегов и вы можете задавать их по своему желанию.

В данном случае форма состоит из двух элементов: поле ввода (шаблон formInput) и поле ввода пароля (шаблон formPassword). Второе отличается от первого только тем, что на экране вместо данных отображаются звездочки. Для обоих полей, а также для самой формы, указан еще один параметр − "title". Это заголовок формы/поля.

Рассмотрим более сложный пример:

<?php
$styleOptions=array(
  "classic"=>"Классический стиль",
  "modern"=>"Стиль \"Модерн\"",
  "lite"=>"Лайт-версия");
?>

<insert:formMain title="Регистрация нового участника" page="actionUser" action="register">
  <insert:formInput title="Имя участника:" name="username"/>
  <insert:formPassword title="Пароль:" description="Не менее 5 символов." name="password"/>
  <insert:formPassword title="Повторите пароль:" name="password2"/>
  <insert:formInput title="E-mail адрес:" name="email" value="webmaster@yoursite.ru"/>
  <insert:formTextarea title="Примечания:" name="notes"/>
  <insert:formChooser title="Выберите стиль:" name="style" options=styleOptions/>
  <insert:formYesNo title="Подписаться на рассылку:" name="subscribe"/>
</insert:formMain>

На экране это должно выглядеть примерно так:

Главные отличия по сравнению с предыдущим вариантом: используется больше разных элементов, кроме параметра "title" у одного элемента есть параметр "description" (краткое описание поля, если нужно), у еще одного элемента есть параметр "value" (начальное значение поля), а в самом низу есть выпадающий список. Для выпадающего списка (шаблон formChooser), кроме прочего, необходим список возможных значений в виде ассоциативного массива. Этот массив формируется в PHP-вставке в начале примера, а потом передается шаблону параметром "options". Разумеется, список возможных значений можно формировать и в пакете, например, выбирать из базы данных:

$usergroups=$database->getLines("usergroups");
$usergroupOptions=extractArrayColumns($usergroups,"id","title");

Как видите, ничего сложного. Если интересно, можете посмотреть у себя исходный текст страницы с формой и сравнить объем HTML-кода с фрагментом выше. Вы удивитесь! :)

Документация
Лучшие сайты на ACMS
Наши друзья
Другие интересные CMF
Помогите проекту!
WMZ: Z111111111111
WMR: R111111111111
Онлайн-поддержка
Техподдержка сайтов,
Разработка модулей
ICQ: 555555555