Описание шаблонов форума
Шаблоны форума представляют собой обыкновенные HTML-файлы.
В них должны присутствовать элементы с определенными классами и поля
форм с определенными именами. Скрипты форума вставляют в эти файлы
информацию руководствуясь классами элементов и именами полей форм.
Шаблоны страниц:
1. Страница темы
title - в элемент с таким классом помещается заголовок темы. Тот же
самый заголовок помещается в элемент
в
Например
Тема форума
message
На странице темы должен присутствовать блоковый элемент с классом
message. Подстановка конкретного сообщения производится внутрь этого
элемента. При появлении в теме следующего сообщения этот элемент
копируется и копия вставляется сразу после предыдущего.
Элементу приписывается атрибут id, содержащий уникальный идентификатор
данного сообщения
Внутри элемента с классом message должны содержаться следующие элементы
manchor - якорь на который будут формироваться ссылки на это сообщение.
Атрибут name заменяется на идентификтаор этого сообщения
mlink - ссылка на это сообщение. Атрибут href заменяется на
mauthor - ник автора сообщения. innerHtml заменяется на ник автора
Следует учитывать что в случае openId авторизации в этот элемент
будет помещен элемент a со ссылкой на домашнюю страницу
mdate - дата публикации сообщения innerHtml заменяется на дату
avatar - элемент img атрибут src которого заменияется на аватар автора
astatus - статус автора на форуме innerHtml заменяется на статус
acomment - комментарий к нику, введенный автором при регистрации.
innerHtml заменяется на комментарий
msubject - тема сообщения. Заменяется innerHtml
mtext - текст сообщения. innerHtml заменяется на отформатированный текст
mreply - ссылка на скрипт ответа. Атрибут href будет заменен на
корректную url. Элемент id заменяется на reply<идентификатор
сообщения>
Например:
Кроме того, в элементе c классом message должна присутствовать форма
с классом actions.
В ней должны присутсвовать следующие поля
1. Скрытое поле id
2. Скрытое поле author
3. Кнопка edit
4. Кнопка delete
5. Кнопка move
6. Кнопка reply (заменяет собой ссылку с классом mreply)
Клиент-сайд скрипт должен уметь скрывать кнопку move, если пользователь
не является модератором, а также кнопки edit и delete, если
пользователь не является автором сообщения, т.е. значение куки
forum_author не совпадает с содержимым скрытого поля author
Для того чтобы определить, является ли пользователь модератором данной
страницы, нужно включить в html следующий элемент
Полученый по этой url скрипт выставляет две глобальные переменные
moderator
и administrator в значение true, если пользователь имеет соответствущие
права на данную тему и false, если не имеет.
Кроме того этот скрипт выставляет глобальную переменную author, которая
имеет значение идентификатора автора, что избавляет client-side cкрипт
от самостоятельного анализа cookies.
Манипулирование формами должно производиться из обработчика body onLoad
чтобы скрипт getrights успел загрузиться.
Если кука FORUM_AUTHOR или глобальная переменная author не определены,
то желательно также скрыть кнопку reply и ссылку с классом mreply.
Кроме того на странице могут присутствовать элементы a с классами
next и prev. В случае если тема разрослась более чем на одну страницу,
их href-атрибуты заменяются на ссылки на предыдущую следующую страницу.
Если тема состоит из одной страницы, ссылки будут вести на неё же.
Как вариант, можно использовать классы bnext и bprev. Если нет
предыдущей/следующей страницы, элементы a с такими классами будут
заменены на span.
Страница списка тем (головная страница форума)
Может иметь элемент с классом message, описывающий форум в целом (его
создатель, вводный текст и т.д.
Шаблоном описания конкретной темы является элемент с классом topic,
устроенный аналогично message (показывается текст и автор первой реплики
темы) с той разницей, что элемент с классом subject должен быть ссылкой.
Внутри элемента с классом topic должна присутствовать форма
с кнопками edit delete move setrights и скрытым полем id.
Кнопку setrights следует показывать только пользователю с правами
администратора.
Кроме этого, cтраница должна иметь ссылку с классом newtopic или форму с именем
newtopic и кнопкой submit с именем newtopic
Страница списка форумов (головная страница сайта, страница форума с
подразделами)
Устроена аналогично странице списка тем.
Элемент списка форумов должен иметь класс forum, а форма/ссылка для
создания нового форума соотвесттвенно имя/класс newforum.
Допускается также ситуация когда на одной странице присутствует и список
форумов, и список тем. (В этом случае если физически отсутствуют либо
те, либо другие, соответствующему элементу-шаблону выставляется
style="visibility: hidden");
Кроме этого на всех страницах рекомендуется иметь элемент-ссылку, который
отображает текущее имя пользователя. Этот элемент должен
конфигурироваться client-side cкриптом и показывать либо текст
"Зарегистрироваться" и аналогичный и вести на
/cgi-bin/forum/<адрес текущей страницы?login=1
либо имя пользователя и вести на
/cgi-bin/forum/