Шаблоны Fapos CMS
Как изготовить шаблон для Fapos? Именно на этот вопрос я и дам ответ в этой статье. Кроме как здесь, она так же будет помещена в соответствующий раздел доки. Ну что же, мой дорогой друг, без лишних церемоний, приступим...
Структура шаблонов Fapos
Каждый шаблон представляет каталог, внутрь которого помещено определенное содержимое. Как правило это изображения, таблицы стилей(css), javascript файлы и HTML файлы. Все это может иметь произвольную структуру, все кроме папки /html/. Эта папка является обязательной и все ее содержимое, так же, является обязательным. Стили, изображения и любые другие примочки могут находиться где угодно, лишь бы они были доступны через браузер и к ним были указаны правильные пути. Что касается путей, их надо указывать не абсолютно - начиная со слеша, а относительно. Это не обязательно, но если в шаблоне пути указаны абсолютные и затем его поставят на систему, установленную в субкаталог, они не будут работать. Для указания относительных путей надо использовать конструкцию "../", которая означает возврат на один каталог вверх. А вот на папке /html/ мы остановимся конкретно, так как она очень объемиста и мне есть что вам поведать касательно нее. Все файлы, такие как html? css и javascript должны иметь кодировку UTF-8 без BOM, это обязательно, иначе некоторые страницы будут отображаться не корректно, особено это проявляется в браузере Опера любой версии. И так, папка /html/ содержит набор каталогов для всех модулей, за исключением поиска, страниц и статистики(файлы модуля search и pages находятся в папке default, а модулю statistic шаблон вообще не нужен). Далее речь пойдет о каждом модуле.
Модули news, stat, loads, foto.
Я решил их объединить, так как их шаблоны очень схожи. На уникальностях я буду ставить акцент. И так, каталог шаблона для каждого из этих модулей выглядит так:
addform.html
editform.html
main.html
tablemat.html
vievmat.html
addform.html - форма добавления материала. Атрибут name формы должен иметь значение sendForm и этот же атрибут кнопки отправки формы должен иметь значение submitForm. Возможно наличие еще одной кнопки отправки для предварительного просмотра у которой этот атрибут должен быть равен viewMessage. И ряд текстовых полей и textarea со следующими атрибутами name: title, mainText, description, tags, sourse, sourse_email, sourse_site. В каталоге фото отсутствуют такие поля как description, tags, sourse, sourse_email, sourse_site. В атрибуты value этих полей должны быть поставлены соответствующие локальные метки {TITLE}, {MAIN_TEXT}, {DESCRIPTION}, {TAGS}, {SOURSE}, {SOURSE_EMAIL}, {SOURSE_SITE}. Кроме этого во всех модулях, о которых говориться, кроме foto, присутствуют два поля типа checkbox, с трибутами name равными commented, available. Атрибут value у них всегда равен единице(1), по-этому для их выделения или возврата в исходное состояние в случае ошибки или предпросмотра используется конструкция
<input type="checkbox" name="available" value="1" {AVAILABLE} />
<input type="checkbox" name="commented" value="1" {COMMENTED} />
Все модули имеют селектор для выбора категории с именем cats_selector и используется он следующим образом
<select name="cats_selector">{CATS_SELECTOR}</select>
В атрибут action формы ставиться локальная метка {ACTION}, это позволяет отправлять форму точно в цель. В каталоге файлов так же есть дополнительное поле file c именем attach, а в каталоге фото такое же, но с имененм foto.
editform.html - Форма редактирования материала. По используемым полям и меткам, полный аналог формы добавления, за исключением того что в этой форме нельзя использовать поля типа file.
main.html - Основной шаблон модуля. В нем можно использовать любые глобальные метки. Обязан иметь метку {CONTENT}.
tablemat.html - Шаблон для отображения материала в списке. Помимо очевидных меток {TITLE}, {MODER_PANEL}, {CATEGORY_NAME}, {CATEGORY_URL}, {AUTHOR}, {PROFILE_URL}, {ANNOUNCE}, {VIEWS}, {DATE}, {COMMENTS}, имеются такие как {LOADS} - количество загрузок файла(только каталог файлов), {ENTRY_URL} - урл для просмотра материала. Так же можно использовать любые метки вида {ПОЛЕ_В_БД}.
vievmat.html - Просмотр материала. Работают теже метки что и в tablemat.html + {MAIN_TEXT} - полный текст материала, {ATTACHMENT} - ссылка на загрузку файла, {PREVIOUS_URL} и {NEXT_URL} - соседние изображения в каталоге фото, {MAIN} - ссылка на изображение в каталоге фото, {DESCRIPTION} - описание изображения.
Во всех файлах обрабатываются чанки и сниппеты.
Модуль chat.
addform.html - форма отправки сообщения. Атрибут action равен {ACTION}. Текстовые поля с именами captcha_keystring и name. У поля name атрибут value равен {NAME}. На странице должна быть выведена каптча при помощи метки {CAPTCHA}. Так же должна присутствовать textarea с именем message и значением {MESSAGE}.
main.html - Общий шаблон. Отличается от общих шаблонов других модулей, так как чат должен иметь возможность встраиваться в страницу на ряду с остальным содержимым. Должен содержать iframe на адрес /chat/view_messages/ и метку {CONTENT}, куда будет подставляться форма отправки сообщения.
viewmat.html - Содержит такие очевидные метки как {DATE}, {IP}, {NAME}, {MESSAGE}.
Модуль forum.
Этот раздел расчитан на более менее опытного пользователя
addforumform.html - форма добавления форума
addthemeform.html - форма добавления темы
editforumform.html - форма редактирования форума
editpostform.html - форма редактирования поста
editthemeform.html - форма редактирования темы
forumtable.html - общий контейнер для тем при просмотре конкретного форума
get_stat.html - статистика
main.html - общий шаблон
navi.html - используется для вывода навигации вверху и внизу страницы
previewmessage.html - используется как контейнер для текста сообщения при его предварительном просмотре
replyform.html - форма для добавления поста. Находится внизу списка сообщений темы
themetable.html - общий контейнер для сообщений темы при просмотре темы
vievcat.html - общий контейнер для форумов раздела при просмотре главной страницы форума
vievforum.html - контейнер для оформления форума при просмотре главной страницы(повторяется внутри vievcat.html)
vievpost.html - контейнер для оформления поста при просмотре темы (повторяется)
vievthemes.html - контейнер для оформления темы при просмотре форума (повторяется)
Ожидаем продолжения...!