Следует учитывать что в случае openId авторизации в этот элемент
будет помещен элемент a со ссылкой на домашнюю страницу
mdate - дата публикации сообщения innerHtml заменяется на дату
-avatar - элемент img атрибут src которого заменияется на аватар автора
-astatus - статус автора на форуме innerHtml заменяется на статус
-acomment - комментарий к нику, введенный автором при регистрации.
+avatar - элемент img атрибут src которого заменияется на аватар автора,
+ или на templates/1x1.gif если у автора нет аватара.
+ap-status - статус автора на форуме innerHtml заменяется на статус
+ap-comment - комментарий к нику, введенный автором при регистрации.
innerHtml заменяется на комментарий
+И прочие классы с префиксом ap-, innerHtml которых заменяеняется
+на соответствущие поля из профайла автора. Если поле имеет в имени
+подчерк, допустимо вместо подчерка использовать дефис "-" в названии
+класа.
+
+
msubject - тема сообщения. Заменяется innerHtml
mtext - текст сообщения. innerHtml заменяется на отформатированный текст
mreply - ссылка на скрипт ответа. Атрибут href будет заменен на
Страница списка тем (головная страница форума)
-Может иметь элемент с классом message, описывающий форум в целом (его
-создатель, вводный текст и т.д.
+Может иметь элемент с классом annotation, описывающий форум в целом (его
+создатель, вводный текст и т.д. устроенный внутри аналогично элементу
+списка форумов (см ниже). Если в шаблоне присутствует элемент meta
+name="description", то туда помещается текстовое представление аннотации
+форума.
+
+Если в шаблоне присутствуют элементы с классом top-page, то они будут
+сохранены только на головной странице форума, а при создании подфорумов
+будут из их оглавлений удаляться.
Шаблоном описания конкретной темы является элемент с классом topic,
-устроенный аналогично message (показывается текст и автор первой реплики
-темы) с той разницей, что элемент с классом subject должен быть ссылкой.
+Содержащий элемент с классом title (название темы, должно быть
+ссылкой), abstract (аннотация темы)
+author (ссылка), date (дата создания темы), tlink (якорь для ссылок на
+элемент списка тем ), last-updated и msgcount.
Внутри элемента с классом topic должна присутствовать форма
с кнопками edit delete move setrights и скрытым полем id.
администратора.
-Кроме этого, cтраница должна иметь ссылку с классом newtopic или форму с именем
-newtopic и кнопкой submit с именем newtopic
+элемент с классом topic должен быть заключен в элемент с классом
+topiclist.
+
+При отсутствии тем на странице элементу с классом topiclist сервер
+приписывает атрибут style="display: none;".
-СÑ\82Ñ\80аниÑ\86а Ñ\81пиÑ\81ка Ñ\84оÑ\80Ñ\83мов (головнаÑ\8f Ñ\81Ñ\82Ñ\80аниÑ\86а Ñ\81айÑ\82а, Ñ\81Ñ\82Ñ\80аниÑ\86а Ñ\84оÑ\80Ñ\83ма Ñ\81
-подÑ\80азделами)
+Ð\9fÑ\80и добавлении новой Ñ\82емÑ\8b Ñ\8dлеменÑ\82 Ñ\81 клаÑ\81Ñ\81ом topic копиÑ\80Ñ\83еÑ\82Ñ\81Ñ\8f и
+вÑ\81Ñ\82авлÑ\8fеÑ\82Ñ\81Ñ\8f непоÑ\81Ñ\80едÑ\81Ñ\82венно за пÑ\80едÑ\8bдÑ\83Ñ\89им
-Устроена аналогично странице списка тем.
+
+Кроме этого, cтраница должна иметь ссылку на форумный скрипт с
+параметром newtopic=1 или форму с именем
+topicinfo и кнопкой submit с именем newtopic
+
+Список подфорумов устроен аналогично списку тем.
Элемент списка форумов должен иметь класс forum, а форма/ссылка для
-создания нового форума соотвесттвенно имя/класс newforum.
+создания нового форума соотвесттвенно имя/класс newforum, а объемлющий
+элемент, который скрывается при отсутствии подфорумов - класс forumlist
+
+В шаблоне элемента списка форумов может присутствовать элемент img
+с классом logo. Если такой элемент обнаружен, то при наличии в
+директории форума файла logo с расширением png, jpg или gif, в src
+пропиcывается ссылка на этот файл. Иначе прописывается ссылка на
+templates/1x1.gif
Допускается также ситуация когда на одной странице присутствует и список
форумов, и список тем. (В этом случае если физически отсутствуют либо
те, либо другие, соответствующему элементу-шаблону выставляется
-style="visibility: hidden");
+style="display: none");
Кроме этого на всех страницах рекомендуется иметь элемент-ссылку, который
отображает текущее имя пользователя. Этот элемент должен
вызывается без соответствующего значения в url или postdata, это поле
заполняется значением заголовка referer http-запроса.
- Скрипт регистрации (операция login)
+Обработка форматированного (размеченного) текста:
+
+В некоторые поля форм (текст реплики, подпись пользователя) должен
+вводиться форматированный текст.
+
+Такому полю должно соответствовать поле с именим имя_format (например,
+полю text соотвествует поле text_format, полю signature -
+signature_format). Поле format может принимать одно из трех значений
+- html, bbcode и text. Если поле format имеет значение html, то
+содержимое соответствующего текстового поля рассматривается как html,
+подвергается чистке от небезопасных тэгов и сохраняется в таком виде.
+Если поле format имеет значение text, то спецсимволя эскейпятся, а
+переводы строки заменяются на теги <br>.
+
+Если поле имеет значение bbcode, то обрабатываются управляющие
+последовательности bbcode.
+
+Наличие URL в тексте проверяется независимо от формата.
+
+
+ Скрипт входа в систему (операция login)
Форма с именем login содержит поля name и password
- Может также содержать checkbox с именем ipbind (привязка
+ Может также содержать checkbox с именем bindip (привязка
авторизационной куки к IP)
- (OpenID пока не описываем)
+ При авторизации по OpenID используется поле openidsite.
+ Его значение интерпретируется как шаблон для операции sprintf, который
+ должен содержать один спецификатор формата %s, куда подставляется имя
+ пользователя.
+
+ Если поле openidsite имеет пустое значение, пользователь
+ рассматривается как локальный. Если непустое, то как
+ openid-пользователь.
Кнопка submit называется login
именем register)
Содержит поля user
pass1 pass2 comment
- avatar (поле ввода URL) или avatarfile(file upload field)
- email
Может также содержать любые дополнительные поля информации о
- пользователе (кроме поля status). Они будут сохранены в списке пользователей
+ пользователе. Они будут сохранены в списке пользователей
и могут потом выводиться в шаблонах рядом с информацией об авторе.
Скрытое поле required содержит список полей, которые обязательно
требуются при регистрации. Поля user, pass1 и pass2 туда включать не
следует.
Скрытое поле ignore содержит список полей, которые НЕ НУЖНО
- сохранять в качестве информации о пользователе.
+ сохранять в качестве информации о пользователе. Поля user, pass1, pass2
+ и bindip туда включать не нужно. Так же если в форме присутствуют поля
+ avatar и avatarfile, поле avatarfile будет автоматически включено в
+ этот список, а поле avatar при наличии зааплоаженного файла будет
+ заменено на URL к этому файлу.
+
+ Параметр restricted_userinfo в конфигурационном файле форума позволяет
+ задать список полей, которые пользователь не имеет права редактировать
+ сам, все равно в процессе регистрации или при редактировании профиля.
+
+ Поля, которые, при их наличии, обрабатываются скриптом форума
+ специальным образом
+
+ 1. avatar/avatarfile - картинка пользователя. Поле avatarfile
+ (зааплоаженная картинка) имеет приоритет над avatar (внешняя URL)
+ В случае если задано avatarfile, в информации о пользователе
+ сохраняется поле avatar с URL к этой картинке
+
+ 2. signature - обычно поле с форматированным текстом. Дописывается в
+ конец каждого созданного данным пользователем сообщения
+
+ 3. email - если не пусто, то проверяется на корректность посредством
+ модуля EMail::Valid
+
+ 4. status - если имеет значение disabled, то данному пользователю
+ запрещен вход на форум до тех пор, пока администратор форума не изменит
+ статус. В случае, если требуется подтверждение регистрации модератором
+ рекомендуется прописывать это поле в restricted_user_info и указывать в
+ конфигурациии форума default_status = disabled,
Скрипт отправки комментария
- поля subject text (тэг textarea)
+Операция reply
+ поля subject
+ text (тэг textarea)
+ text_format
Можно также включать (динамически добавлять) поля file upload image1
image2 etc.
- кнопка submit называется reply
+ кнопка submit называется reply.
+ Данная форма может также включать поля формы login. Т.е.
+ поддерживается аутентификация пользователя одновременно с отправкой
+ комментария.
+
+ В силу технических ограничений, одновременно с регистрацией по OpenID
+ невозможен upload файлов и отправка комментариев длинной более 2-4Кб.
+ Точный предел размера комментария зависит от длины URL форума и
+ пределов размера URL, установленных при компиляции веб-сервера форума
+ и веб-сервера openid-сервера.
+
Скрипт создания новой темы или нового форума
- поля subject text imageN и urlname. В последнее поле следует запретить
+ поля
+ subject
+ text
+ text_format
+ urlname.
+ При создании форума еще может присутствовать file upload field
+ logo. Зааплоаженный туда файл помещается в директрию форума
+ с именем logo и расширением соответствующим расширению исходного
+ файла.
+
+
+ В последнее поле следует запретить
ввод символов нелатинского алфавита '/' и '?'
Cкрипт просмотра списка пользователей (опция userlist)
В результате заполнения формы поле с именем moderators должно
содержать список модераторов для данной темы (соответствующей
- url страницы id) поле с именем administrators список всех
+ url страницы в pathinfo) поле с именем administrators список всех
администраторов данного сайта.
Скрипт редактирования свойств пользователя.