-ïÐÉÓÁÎÉÅ ÛÁÂÌÏÎÏ× ÆÏÒÕÍÁ
+Описание шаблонов форума
-ûÁÂÌÏÎÙ ÆÏÒÕÍÁ ÐÒÅÄÓÔÁ×ÌÑÀÔ ÓÏÂÏÊ ÏÂÙËÎÏ×ÅÎÎÙÅ HTML-ÆÁÊÌÙ.
-÷ ÎÉÈ ÄÏÌÖÎÙ ÐÒÉÓÕÔÓÔ×Ï×ÁÔØ ÜÌÅÍÅÎÔÙ Ó ÏÐÒÅÄÅÌÅÎÎÙÍÉ ËÌÁÓÓÁÍÉ É ÐÏÌÑ
-ÆÏÒÍ Ó ÏÐÒÅÄÅÌÅÎÎÙÍÉ ÉÍÅÎÁÍÉ. óËÒÉÐÔÙ ÆÏÒÕÍÁ ×ÓÔÁ×ÌÑÀÔ × ÜÔÉ ÆÁÊÌÙ
-ÉÎÆÏÒÍÁÃÉÀ ÒÕËÏ×ÏÄÓÔ×ÕÑÓØ ËÌÁÓÓÁÍÉ ÜÌÅÍÅÎÔÏ× É ÉÍÅÎÁÍÉ ÐÏÌÅÊ ÆÏÒÍ.
+Шаблоны форума представляют собой обыкновенные HTML-файлы.
+В них должны присутствовать элементы с определенными классами и поля
+форм с определенными именами. Скрипты форума вставляют в эти файлы
+информацию руководствуясь классами элементов и именами полей форм.
-ûÁÂÌÏÎÙ ÓÔÒÁÎÉÃ:
+Во всех шаблонах производится правка относительных URL в элементах
+img src, a href, link href, form action.
+В URL начинающихся со слова templates заменяются на значение templateurl
+из конфигурации форума, URL, начинающиеся со слова users - на userurl,
+со слова forum - на путь к скрипту форума. Остальные относительные (т.е.
+не начинающиеся c http: или / url дополняются путем к корневому каталогу
+форума. Cсылки вида forum?параметры будут заменены на
+url-скрипта/url-страницы?параметры
-1. óÔÒÁÎÉÃÁ ÔÅÍÙ
-title - × ÜÌÅÍÅÎÔ Ó ÔÁËÉÍ ËÌÁÓÓÏÍ ÐÏÍÅÝÁÅÔÓÑ ÚÁÇÏÌÏ×ÏË ÔÅÍÙ. ôÏÔ ÖÅ
-ÓÁÍÙÊ ÚÁÇÏÌÏ×ÏË ÐÏÍÅÝÁÅÔÓÑ × ÜÌÅÍÅÎÔ <title> × <head>
+Шаблоны страниц:
-îÁÐÒÉÍÅÒ
- <h1 class="title">ôÅÍÁ ÆÏÒÕÍÁ</H1>
+1. Страница темы
+
+title - в элемент с таким классом помещается заголовок темы. Тот же
+самый заголовок помещается в элемент <title> в <head>
+
+Например
+ <h1 class="title">Тема форума</H1>
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<ÉÄÅÎÔÉÆÉËÁÔÏÒ
- ÓÏÏÂÝÅÎÉÑ>
+ На странице темы должен присутствовать блоковый элемент с классом
+ message. Подстановка конкретного сообщения производится внутрь этого
+ элемента. При появлении в теме следующего сообщения этот элемент
+ копируется и копия вставляется сразу после предыдущего.
+
+ Элементу приписывается атрибут id, содержащий уникальный идентификатор
+ данного сообщения
+
+Внутри элемента с классом message должны содержаться следующие элементы
+
+manchor - якорь на который будут формироваться ссылки на это сообщение.
+ Атрибут name заменяется на идентификтаор этого сообщения
+mlink - ссылка на это сообщение. Атрибут href заменяется на
+author - ник автора сообщения. innerHtml заменяется на ник автора
+ Следует учитывать что в случае openId авторизации в этот элемент
+ будет помещен элемент a со ссылкой на домашнюю страницу
+mdate - дата публикации сообщения innerHtml заменяется на дату
+avatar - элемент img атрибут src которого заменияется на аватар автора,
+ или на templates/1x1.gif если у автора нет аватара.
+ap-status - статус автора на форуме innerHtml заменяется на статус
+ap-comment - комментарий к нику, введенный автором при регистрации.
+ innerHtml заменяется на комментарий
+И прочие классы с префиксом ap-, innerHtml которых заменяеняется
+на соответствущие поля из профайла автора. Если поле имеет в имени
+подчерк, допустимо вместо подчерка использовать дефис "-" в названии
+класа.
+
+
+msubject - тема сообщения. Заменяется innerHtml
+mtext - текст сообщения. innerHtml заменяется на отформатированный текст
+mreply - ссылка на скрипт ответа. Атрибут href будет заменен на
+ корректную url. Элемент id заменяется на reply<идентификатор
+ сообщения>
-îÁÐÒÉÍÅÒ:
+Например:
<div class="message" id="0001">
<a name="00001" class="manchor"></a>
- <h2 class="msubject>ôÅÍÁ ÓÏÏÂÝÅÎÉÑ</h2>
- á×ÔÏÒ <span class="mauthor">÷ ðÕÐËÉÎ</span>
- (<span class="acomment">ðÏÌØÚÏ×ÁÔÅÌØ ÆÏÒÕÍÁ</acomment>,
- <span class"astatus">íÏÄÅÒÁÔÏÒ</span>)
+ <h2 class="msubject>Тема сообщения</h2>
+ Автор <span class="mauthor">В Пупкин</span>
+ (<span class="acomment">Пользователь форума</acomment>,
+ <span class"astatus">Модератор</span>)
<img align=left class=avatar src="/forum/users/v_pupkin.jpg">
<div class="mtext">
- ôÅËÓÔ ÓÏÏÂÝÅÎÉÑ Ó <b>×ÙÄÅÌÅÎÉÑÍÉ</b>
+ Текст сообщения с <b>выделениями</b>
</div>
- <a href="/forum/f1/topic1.html#0001" class="mlink">ÓÓÙÌËÁ ÎÁ ÜÔÏ
- ÓÏÏÂÝÅÎÉÅ</a>
+ <a href="/forum/f1/topic1.html#0001" class="mlink">ссылка на это
+ сообщение</a>
<a href="/cgi-bin/forum/f1/topic1.html?reply=reply&id=0001"
- Ólass="mreply">ÏÔ×ÅÔÉÔØ</a>
+ сlass="mreply">ответить</a>
<form class="actions" name="fa0001" action="/cgi-bin/forum/f1/topic1.html">
- <!-- .... ÓÍ ÎÉÖÅ .... -->
+ <!-- .... см ниже .... -->
<input type="hidden" name="id" value="0001">
- <input type="hidden" name="author" value="÷. ðÕÐËÉÎ">
- <input type="submit" name="edit" value="òÅÄÁËÔÉÒÏ×ÁÔØ">
- <input type="submit" name="delete" value="õÄÁÌÉÔØ">
- <input type="submit" name="move" value="ðÅÒÅÍÅÓÔÉÔØ × ÄÒÕÇÕÀ ÔÅÍÕ">
+ <input type="hidden" name="author" value="В. Пупкин">
+ <input type="submit" name="edit" value="Редактировать">
+ <input type="submit" name="delete" value="Удалить">
+ <input type="submit" name="move" value="Переместить в другую тему">
</form>
</div>
- ëÒÏÍÅ ÔÏÇÏ, × ÜÌÅÍÅÎÔÅ c ËÌÁÓÓÏÍ message ÄÏÌÖÎÁ ÐÒÉÓÕÔÓÔ×Ï×ÁÔØ ÆÏÒÍÁ
- Ó ËÌÁÓÓÏÍ actions.
- ÷ ÎÅÊ ÄÏÌÖÎÙ ÐÒÉÓÕÔÓ×Ï×ÁÔØ ÓÌÅÄÕÀÝÉÅ ÐÏÌÑ
- 1. óËÒÙÔÏÅ ÐÏÌÅ id
- 2. óËÒÙÔÏÅ ÐÏÌÅ author
- 3. ëÎÏÐËÁ edit
- 4. ëÎÏÐËÁ delete
- 5. ëÎÏÐËÁ move
- 6. ëÎÏÐËÁ reply (ÚÁÍÅÎÑÅÔ ÓÏÂÏÊ ÓÓÙÌËÕ Ó ËÌÁÓÓÏÍ mreply)
+ Кроме того, в элементе c классом message должна присутствовать форма
+ с классом actions.
+ В ней должны присутсвовать следующие поля
+ 1. Скрытое поле id
+ 2. Скрытое поле author
+ 3. Кнопка edit
+ 4. Кнопка delete
+ 5. Кнопка move
+ 6. Кнопка reply (заменяет собой ссылку с классом mreply)
+
+
+
+ Клиент-сайд скрипт должен уметь скрывать кнопку move, если пользователь
+ не является модератором, а также кнопки edit и delete, если
+ пользователь не является модератором или автором сообщения(т.е. значение куки
+ sluser не совпадает с содержимым скрытого поля author)
+
+
+ Определять какие кнопки и ссылки являются ссылками на форумный скрипт
+ и должны скрываться и показываться в зависимости от прав доступа,
+ следует по атрибуту href ссылки и атрибуту action формы в сочетании с
+ атрибутом name у соответствующей кнопки. (кнопкой считаются input
+ type=submit и input type=image).
+
+ В разделе head у шаблона должны присутствовать тэги link вида
+1. <link href="forum" rel="forum-script">
+ По общим правилам подстановки серверный скрипт при обработке шаблона
+ заменит href этого элемента на собственную url.
+
+ Соответственно формы с action равной этой URL следует рассматривать
+ как подлежащие обработке и искать в них кнопки с именами,
+ соответствующими именам операций. И ссылки с href=эта url?параметры
+ В ссылке следует искать параметр вида имя-операции.
+2. <link href="forum" rel="forum-user-list">
+ Содержимое href этого скрипта может быть использовано client-side
+ скриптом для формирования ссылки на страничку локального
+ пользователя форума (в случае если имя пользователя начинается с
+ http:://, это OpenID-пользователь и его страничка находстия по URL,
+ совпрадающей с именем пользователя.
+
+
+
+ Если кука sluser не определена,
+ то желательно также скрыть кнопку reply и ссылку с классом mreply, если
+ только в шаблоне формы reply не предусмотрены поля, позволяющие
+ залогиниться в момент отправки реплики.
+ Для получения информации о правах текущего пользователя в форуме нужно
+ запросить (через XMLHttpRequest) файл perms.txt из текущей директории
+ (где расположена текущая страница) и выше по иерархии вплоть до корня
+ форма. Корнем форума является директория, где расположен файл .forum
+ (не обязательно доступный для чтения по http. Ответ сервера 403 как и
+ ответ 200 надо рассматривать как "файл найден")
- ëÌÉÅÎÔ-ÓÁÊÄ ÓËÒÉÐÔ ÄÏÌÖÅÎ ÕÍÅÔØ ÓËÒÙ×ÁÔØ ËÎÏÐËÕ move, ÅÓÌÉ ÐÏÌØÚÏ×ÁÔÅÌØ
- ÎÅ Ñ×ÌÑÅÔÓÑ ÍÏÄÅÒÁÔÏÒÏÍ, Á ÔÁËÖÅ ËÎÏÐËÉ edit É delete, ÅÓÌÉ
- ÐÏÌØÚÏ×ÁÔÅÌØ ÎÅ Ñ×ÌÑÅÔÓÑ Á×ÔÏÒÏÍ ÓÏÏÂÝÅÎÉÑ, Ô.Å. ÚÎÁÞÅÎÉÅ ËÕËÉ
- forum_author ÎÅ ÓÏ×ÐÁÄÁÅÔ Ó ÓÏÄÅÒÖÉÍÙÍ ÓËÒÙÔÏÇÏ ÐÏÌÑ author
+ Кроме того на странице могут присутствовать элементы a с классами
+ next и prev. В случае если тема разрослась более чем на одну страницу,
+ иÑ\85 href-аÑ\82Ñ\80ибÑ\83Ñ\82Ñ\8b заменÑ\8fÑ\8eÑ\82Ñ\81Ñ\8f на Ñ\81Ñ\81Ñ\8bлки на пÑ\80едÑ\8bдÑ\83Ñ\89Ñ\83Ñ\8e Ñ\81ледÑ\83Ñ\8eÑ\89Ñ\83Ñ\8e Ñ\81Ñ\82Ñ\80аниÑ\86Ñ\83.
+ Если тема состоит из одной страницы, ссылки будут вести на неё же.
+ Как вариант, можно использовать классы bnext и bprev. Если нет
+ предыдущей/следующей страницы, элементы a с такими классами будут
+ заменены на span.
- äÌÑ ÔÏÇÏ ÞÔÏÂÙ ÏÐÒÅÄÅÌÉÔØ, Ñ×ÌÑÅÔÓÑ ÌÉ ÐÏÌØÚÏ×ÁÔÅÌØ ÍÏÄÅÒÁÔÏÒÏÍ ÄÁÎÎÏÊ
- ÓÔÒÁÎÉÃÙ, ÎÕÖÎÏ ×ËÌÀÞÉÔØ × html ÓÌÅÄÕÀÝÉÊ ÜÌÅÍÅÎÔ
- <script src="/cgi-bin/forum/<url ÔÅËÕÝÅÊ ÓÔÒÁÎÉÃÙ>?getrights=1"></script>
- ðÏÌÕÞÅÎÙÊ ÐÏ ÜÔÏÊ url ÓËÒÉÐÔ ×ÙÓÔÁ×ÌÑÅÔ Ä×Å ÇÌÏÂÁÌØÎÙÅ ÐÅÒÅÍÅÎÎÙÅ
- moderator
- É administrator × ÚÎÁÞÅÎÉÅ true, ÅÓÌÉ ÐÏÌØÚÏ×ÁÔÅÌØ ÉÍÅÅÔ ÓÏÏÔ×ÅÔÓÔ×ÕÝÉÅ
- ÐÒÁ×Á ÎÁ ÄÁÎÎÕÀ ÔÅÍÕ É false, ÅÓÌÉ ÎÅ ÉÍÅÅÔ.
- ëÒÏÍÅ ÔÏÇÏ ÜÔÏÔ ÓËÒÉÐÔ ×ÙÓÔÁ×ÌÑÅÔ ÇÌÏÂÁÌØÎÕÀ ÐÅÒÅÍÅÎÎÕÀ author, ËÏÔÏÒÁÑ
- ÉÍÅÅÔ ÚÎÁÞÅÎÉÅ ÉÄÅÎÔÉÆÉËÁÔÏÒÁ Á×ÔÏÒÁ, ÞÔÏ ÉÚÂÁ×ÌÑÅÔ client-side cËÒÉÐÔ
- ÏÔ ÓÁÍÏÓÔÏÑÔÅÌØÎÏÇÏ ÁÎÁÌÉÚÁ cookies.
+Страница списка тем (головная страница форума)
- íÁÎÉÐÕÌÉÒÏ×ÁÎÉÅ ÆÏÒÍÁÍÉ ÄÏÌÖÎÏ ÐÒÏÉÚ×ÏÄÉÔØÓÑ ÉÚ ÏÂÒÁÂÏÔÞÉËÁ body onLoad
- ÞÔÏÂÙ ÓËÒÉÐÔ getrights ÕÓÐÅÌ ÚÁÇÒÕÚÉÔØÓÑ.
+Может иметь элемент с классом annotation, описывающий форум в целом (его
+создатель, вводный текст и т.д. устроенный внутри аналогично элементу
+списка форумов (см ниже). Если в шаблоне присутствует элемент meta
+name="description", то туда помещается текстовое представление аннотации
+форума.
- åÓÌÉ ËÕËÁ FORUM_AUTHOR ÉÌÉ ÇÌÏÂÁÌØÎÁÑ ÐÅÒÅÍÅÎÎÁÑ author ÎÅ ÏÐÒÅÄÅÌÅÎÙ,
- ÔÏ ÖÅÌÁÔÅÌØÎÏ ÔÁËÖÅ ÓËÒÙÔØ ËÎÏÐËÕ reply É ÓÓÙÌËÕ Ó ËÌÁÓÓÏÍ mreply.
+Если в шаблоне присутствуют элементы с классом top-page, то они будут
+сохранены только на головной странице форума, а при создании подфорумов
+будут из их оглавлений удаляться.
- ëÒÏÍÅ ÔÏÇÏ ÎÁ ÓÔÒÁÎÉÃÅ ÍÏÇÕÔ ÐÒÉÓÕÔÓÔ×Ï×ÁÔØ ÜÌÅÍÅÎÔÙ a Ó ËÌÁÓÓÁÍÉ
- next É prev. ÷ ÓÌÕÞÁÅ ÅÓÌÉ ÔÅÍÁ ÒÁÚÒÏÓÌÁÓØ ÂÏÌÅÅ ÞÅÍ ÎÁ ÏÄÎÕ ÓÔÒÁÎÉÃÕ,
- ÉÈ href-ÁÔÒÉÂÕÔÙ ÚÁÍÅÎÑÀÔÓÑ ÎÁ ÓÓÙÌËÉ ÎÁ ÐÒÅÄÙÄÕÝÕÀ ÓÌÅÄÕÀÝÕÀ ÓÔÒÁÎÉÃÕ.
- åÓÌÉ ÔÅÍÁ ÓÏÓÔÏÉÔ ÉÚ ÏÄÎÏÊ ÓÔÒÁÎÉÃÙ, ÓÓÙÌËÉ ÂÕÄÕÔ ×ÅÓÔÉ ÎÁ ÎÅ£ ÖÅ.
+Шаблоном описания конкретной темы является элемент с классом topic,
+Содержащий элемент с классом title (название темы, должно быть
+ссылкой), abstract (аннотация темы)
+author (ссылка), date (дата создания темы), tlink (якорь для ссылок на
+элемент списка тем ), last-updated и msgcount.
- ëÁË ×ÁÒÉÁÎÔ, ÍÏÖÎÏ ÉÓÐÏÌØÚÏ×ÁÔØ ËÌÁÓÓÙ bnext É bprev. åÓÌÉ ÎÅÔ
- ÐÒÅÄÙÄÕÝÅÊ/ÓÌÅÄÕÀÝÅÊ ÓÔÒÁÎÉÃÙ, ÜÌÅÍÅÎÔÙ a Ó ÔÁËÉÍÉ ËÌÁÓÓÁÍÉ ÂÕÄÕÔ
- ÚÁÍÅÎÅÎÙ ÎÁ span.
+Внутри элемента с классом topic должна присутствовать форма
+с кнопками edit delete move setrights и скрытым полем id.
+Кнопку setrights следует показывать только пользователю с правами
+администратора.
-óÔÒÁÎÉÃÁ ÓÐÉÓËÁ ÔÅÍ (ÇÏÌÏ×ÎÁÑ ÓÔÒÁÎÉÃÁ ÆÏÒÕÍÁ)
-íÏÖÅÔ ÉÍÅÔØ ÜÌÅÍÅÎÔ Ó ËÌÁÓÓÏÍ message, ÏÐÉÓÙ×ÁÀÝÉÊ ÆÏÒÕÍ × ÃÅÌÏÍ (ÅÇÏ
-ÓÏÚÄÁÔÅÌØ, ××ÏÄÎÙÊ ÔÅËÓÔ É Ô.Ä.
-ûÁÂÌÏÎÏÍ ÏÐÉÓÁÎÉÑ ËÏÎËÒÅÔÎÏÊ ÔÅÍÙ Ñ×ÌÑÅÔÓÑ ÜÌÅÍÅÎÔ Ó ËÌÁÓÓÏÍ topic,
-ÕÓÔÒÏÅÎÎÙÊ ÁÎÁÌÏÇÉÞÎÏ message (ÐÏËÁÚÙ×ÁÅÔÓÑ ÔÅËÓÔ É Á×ÔÏÒ ÐÅÒ×ÏÊ ÒÅÐÌÉËÉ
-ÔÅÍÙ) Ó ÔÏÊ ÒÁÚÎÉÃÅÊ, ÞÔÏ ÜÌÅÍÅÎÔ Ó ËÌÁÓÓÏÍ subject ÄÏÌÖÅÎ ÂÙÔØ ÓÓÙÌËÏÊ.
+элемент с классом topic должен быть заключен в элемент с классом
+topiclist.
-÷ÎÕÔÒÉ ÜÌÅÍÅÎÔÁ Ó ËÌÁÓÓÏÍ topic ÄÏÌÖÎÁ ÐÒÉÓÕÔÓÔ×Ï×ÁÔØ ÆÏÒÍÁ
-Ó ËÎÏÐËÁÍÉ edit delete move setrights É ÓËÒÙÔÙÍ ÐÏÌÅÍ id.
-ëÎÏÐËÕ setrights ÓÌÅÄÕÅÔ ÐÏËÁÚÙ×ÁÔØ ÔÏÌØËÏ ÐÏÌØÚÏ×ÁÔÅÌÀ Ó ÐÒÁ×ÁÍÉ
-ÁÄÍÉÎÉÓÔÒÁÔÏÒÁ.
+При отсутствии тем на странице элементу с классом topiclist сервер
+приписывает атрибут style="display: none;".
+При добавлении новой темы элемент с классом topic копируется и
+вставляется непосредственно за предыдущим
-ëÒÏÍÅ ÜÔÏÇÏ, cÔÒÁÎÉÃÁ ÄÏÌÖÎÁ ÉÍÅÔØ ÓÓÙÌËÕ Ó ËÌÁÓÓÏÍ newtopic ÉÌÉ ÆÏÒÍÕ Ó ÉÍÅÎÅÍ
-newtopic É ËÎÏÐËÏÊ submit Ó ÉÍÅÎÅÍ newtopic
+Кроме этого, cтраница должна иметь ссылку на форумный скрипт с
+параметром newtopic=1 или форму с именем
+topicinfo и кнопкой submit с именем newtopic
-óÔÒÁÎÉÃÁ ÓÐÉÓËÁ ÆÏÒÕÍÏ× (ÇÏÌÏ×ÎÁÑ ÓÔÒÁÎÉÃÁ ÓÁÊÔÁ, ÓÔÒÁÎÉÃÁ ÆÏÒÕÍÁ Ó
-ÐÏÄÒÁÚÄÅÌÁÍÉ)
+Список подфорумов устроен аналогично списку тем.
-õÓÔÒÏÅÎÁ ÁÎÁÌÏÇÉÞÎÏ ÓÔÒÁÎÉÃÅ ÓÐÉÓËÁ ÔÅÍ.
+Элемент списка форумов должен иметь класс forum, а форма/ссылка для
+создания нового форума соотвесттвенно имя/класс newforum, а объемлющий
+элемент, который скрывается при отсутствии подфорумов - класс forumlist
-üÌÅÍÅÎÔ ÓÐÉÓËÁ ÆÏÒÕÍÏ× ÄÏÌÖÅÎ ÉÍÅÔØ ËÌÁÓÓ forum, Á ÆÏÒÍÁ/ÓÓÙÌËÁ ÄÌÑ
-ÓÏÚÄÁÎÉÑ ÎÏ×ÏÇÏ ÆÏÒÕÍÁ ÓÏÏÔ×ÅÓÔÔ×ÅÎÎÏ ÉÍÑ/ËÌÁÓÓ newforum.
+В шаблоне элемента списка форумов может присутствовать элемент img
+с классом logo. Если такой элемент обнаружен, то при наличии в
+директории форума файла logo с расширением png, jpg или gif, в src
+пропиcывается ссылка на этот файл. Иначе прописывается ссылка на
+templates/1x1.gif
-äÏÐÕÓËÁÅÔÓÑ ÔÁËÖÅ ÓÉÔÕÁÃÉÑ ËÏÇÄÁ ÎÁ ÏÄÎÏÊ ÓÔÒÁÎÉÃÅ ÐÒÉÓÕÔÓÔ×ÕÅÔ É ÓÐÉÓÏË
-ÆÏÒÕÍÏ×, É ÓÐÉÓÏË ÔÅÍ. (÷ ÜÔÏÍ ÓÌÕÞÁÅ ÅÓÌÉ ÆÉÚÉÞÅÓËÉ ÏÔÓÕÔÓÔ×ÕÀÔ ÌÉÂÏ
-ÔÅ, ÌÉÂÏ ÄÒÕÇÉÅ, ÓÏÏÔ×ÅÔÓÔ×ÕÀÝÅÍÕ ÜÌÅÍÅÎÔÕ-ÛÁÂÌÏÎÕ ×ÙÓÔÁ×ÌÑÅÔÓÑ
-style="visibility: hidden");
+Допускается также ситуация когда на одной странице присутствует и список
+форумов, и список тем. (В этом случае если физически отсутствуют либо
+те, либо другие, соответствующему элементу-шаблону выставляется
+style="display: none");
-ëÒÏÍÅ ÜÔÏÇÏ ÎÁ ×ÓÅÈ ÓÔÒÁÎÉÃÁÈ ÒÅËÏÍÅÎÄÕÅÔÓÑ ÉÍÅÔØ ÜÌÅÍÅÎÔ-ÓÓÙÌËÕ, ËÏÔÏÒÙÊ
-ÏÔÏÂÒÁÖÁÅÔ ÔÅËÕÝÅÅ ÉÍÑ ÐÏÌØÚÏ×ÁÔÅÌÑ. üÔÏÔ ÜÌÅÍÅÎÔ ÄÏÌÖÅÎ
-ËÏÎÆÉÇÕÒÉÒÏ×ÁÔØÓÑ client-side cËÒÉÐÔÏÍ É ÐÏËÁÚÙ×ÁÔØ ÌÉÂÏ ÔÅËÓÔ
-"úÁÒÅÇÉÓÔÒÉÒÏ×ÁÔØÓÑ" É ÁÎÁÌÏÇÉÞÎÙÊ É ×ÅÓÔÉ ÎÁ
-/cgi-bin/forum/<ÁÄÒÅÓ ÔÅËÕÝÅÊ ÓÔÒÁÎÉÃÙ?login=1
-ÌÉÂÏ ÉÍÑ ÐÏÌØÚÏ×ÁÔÅÌÑ É ×ÅÓÔÉ ÎÁ
-/cgi-bin/forum/<aÄÒÅÓ ÔÅËÕÝÅÊ ÓÔÒÁÎÉÃÙ?user=1
+Кроме этого на всех страницах рекомендуется иметь элемент-ссылку, который
+отображает текущее имя пользователя. Этот элемент должен
+конфигурироваться client-side cкриптом и показывать либо текст
+"Зарегистрироваться" и аналогичный и вести на
+/cgi-bin/forum/<адрес текущей страницы?login=1
+либо имя пользователя и вести на
+/cgi-bin/forum/<aдрес текущей страницы?user=1
-ûÁÂÌÏÎÙ ÓÌÕÖÅÂÎÙÈ ÓÔÒÁÎÉÃ (Ô.Å. ÆÏÒÍ ÒÅÇÉÓÔÒÁÃÉÉ, ÌÏÇÉÎÁ É Ô.Ä.)
+Шаблоны служебных страниц (т.е. форм регистрации, логина и т.д.)
-óÌÕÖÅÂÎÙÅ ÓÔÒÁÎÉÃÙ ÆÏÒÕÍÁ (Ô.Å. ÆÏÒÍÙ, ×Ù×ÏÄÉÍÙÅ ÓËÒÉÐÔÁÍÉ) ÔÁËÖÅ
-ÏÆÏÒÍÌÑÀÔÓÑ Ó ÐÏÍÏÝØÀ HTML-ÛÁÂÌÏÎÏ×. åÓÌÉ ÓÔÒÁÎÉÃÁ ×ÙÄÁÅÔÓÑ × ÒÅÚÕÌØÔÁÔÅ
-POST-ÚÁÐÒÏÓÁ ÕÖÅ ÓÏÄÅÒÖÁÝÅÇÏ ÔÒÅÂÕÅÍÙÅ ÄÁÎÎÙÅ, ÚÎÁÞÅÎÉÑ ÓÏÏÔ×ÅÔÓÔ×ÕÀÝÉÈ
-ÜÌÅÍÅÎÔÏ× ××ÏÄÁ ÚÁÍÅÎÑÀÔÓÑ ÎÁ ÜÔÉ ÄÁÎÎÙÅ.
+Служебные страницы форума (т.е. формы, выводимые скриптами) также
+оформляются с помощью HTML-шаблонов. Если страница выдается в результате
+POST-запроса уже содержащего требуемые данные, значения соответствующих
+элементов ввода заменяются на эти данные.
-÷ ÓÌÕÞÁÅ ÅÓÌÉ ×Ï ××ÅÄÅÎÎÙÈ ÄÁÎÎÙÈ ÐÒÏÉÚÏÛÌÁ ÏÛÉÂËÁ, ÓÏÏÂÝÅÎÉÅ Ï ÏÛÉÂËÅ
-ÓËÒÉÐÔ ×ÐÉÓÙ×ÁÅÔ × ÜÌÅÍÅÎÔ Ó ËÌÁÓÓÏÍ errmsg ×ÍÅÓÔÏ ÅÇÏ innerHtml
+В случае если во введенных данных произошла ошибка, сообщение об ошибке
+скрипт вписывает в элемент с классом error вместо его innerHtml
-ëÁË ÐÒÁ×ÉÌÏ, ×ÓÅ ÓËÒÉÐÔÙ ÐÏÌÕÞÁÀÔ ÓÌÅÄÕÀÝÕÀ ÉÎÆÏÒÍÁÃÉÀ
-1. ðÏÌÅ Ó ÉÍÅÎÅÍ ÏÐÅÒÁÃÉÉ É ÐÒÏÉÚ×ÏÌØÎÙÍ ÎÅÐÕÓÔÙÍ ÚÎÁÞÅÎÉÅÍ
- ÷ÏÚÍÏÖÎÙÅ ÏÐÅÒÁÃÉÉ
+Во всем шаблоне формы производится подстановка информации о текущем
+пользователе, аналогично тому, как она производится в элементе с классом
+message в шаблоне темы.
+
+Как правило, все скрипты получают следующую информацию
+1. Поле с именем операции и произвольным непустым значением
+ Возможные операции
reply
edit
delete
setrights
-2. ðÏÌÅ id Ó ÉÄÅÎÔÉÆÉËÁÔÏÒÏÍ ËÏÍÍÅÎÔÁÒÉÑ/ÔÅÍÙ/ÆÏÒÕÍÁ
-
-üÔÏ ÐÏÌÅ ÄÏÌÖÎÏ ÂÙÔØ ÏÂÑÚÁÔÅÌØÎÏ ÐÒÏÂÒÏÛÅÎÏ ÞÅÒÅÚ ÆÏÒÍÕ ËÁË ÓËÒÙÔÏÅ
-ÐÏÌÅ.
-
-3. ðÏÌÅ returnto - url ËÕÄÁ ÎÁÐÒÁ×ÉÔØ ÐÏÌØÚÏ×ÁÔÅÌÑ ÐÏÓÌÅ ÕÓÐÅÛÎÏÇÏ
-ÚÁ×ÅÒÛÅÎÉÑ ÏÐÅÒÁÃÉÉ. åÓÌÉ ÜÔÁ ÆÏÒÍÁ ÐÒÉÓÕÔÓÔ×ÕÅÔ × ÛÁÂÌÏÎÅ, ÎÏ ÓËÒÉÐÔ
-×ÙÚÙ×ÁÅÔÓÑ ÂÅÚ ÓÏÏÔ×ÅÔÓÔ×ÕÀÝÅÇÏ ÚÎÁÞÅÎÉÑ × url ÉÌÉ postdata, ÜÔÏ ÐÏÌÅ
-ÚÁÐÏÌÎÑÅÔÓÑ ÚÎÁÞÅÎÉÅÍ ÚÁÇÏÌÏ×ËÁ referer http-ÚÁÐÒÏÓÁ.
-
- óËÒÉÐÔ ÒÅÇÉÓÔÒÁÃÉÉ (ÏÐÅÒÁÃÉÑ login)
- æÏÒÍÁ Ó ÉÍÅÎÅÍ login ÓÏÄÅÒÖÉÔ ÐÏÌÑ name É password
- íÏÖÅÔ ÔÁËÖÅ ÓÏÄÅÒÖÁÔØ checkbox Ó ÉÍÅÎÅÍ ipbind (ÐÒÉ×ÑÚËÁ
- Á×ÔÏÒÉÚÁÃÉÏÎÎÏÊ ËÕËÉ Ë IP)
-
- (OpenID ÐÏËÁ ÎÅ ÏÐÉÓÙ×ÁÅÍ)
-
- ëÎÏÐËÁ submit ÎÁÚÙ×ÁÅÔÓÑ login
-
- æÏÒÍÁ ÒÅÇÉÓÔÒÁÃÉÉ ÎÏ×ÏÇÏ ÐÏÌØÚÏ×ÁÔÅÌÑ (ÏÐÅÒÁÃÉÑ register, ÆÏÒÍÁ Ó
- ÉÍÅÎÅÍ register)
- óÏÄÅÒÖÉÔ ÐÏÌÑ name
- password password2 comment avatar (file upload field)
- email
- íÏÖÅÔ ÔÁËÖÅ ÓÏÄÅÒÖÁÔØ ÌÀÂÙÅ ÄÏÐÏÌÎÉÔÅÌØÎÙÅ ÐÏÌÑ ÉÎÆÏÒÍÁÃÉÉ Ï
- ÐÏÌØÚÏ×ÁÔÅÌÅ (ËÒÏÍÅ ÐÏÌÑ status). ïÎÉ ÂÕÄÕÔ ÓÏÈÒÁÎÅÎÙ × ÓÐÉÓËÅ ÐÏÌØÚÏ×ÁÔÅÌÅÊ
- É ÍÏÇÕÔ ÐÏÔÏÍ ×Ù×ÏÄÉÔØÓÑ × ÛÁÂÌÏÎÁÈ ÒÑÄÏÍ Ó ÉÎÆÏÒÍÁÃÉÅÊ Ï Á×ÔÏÒÅ.
-
-óËÒÉÐÔ ÏÔÐÒÁ×ËÉ ËÏÍÍÅÎÔÁÒÉÑ
+2. Поле id с идентификатором комментария/темы/форума
+
+Это поле должно быть обязательно проброшено через форму как скрытое
+поле.
+
+3. Поле returnto - url куда направить пользователя после успешного
+завершения операции. Если эта форма присутствует в шаблоне, но скрипт
+вызывается без соответствующего значения в url или postdata, это поле
+заполняется значением заголовка referer http-запроса.
+
+Обработка форматированного (размеченного) текста:
+
+В некоторые поля форм (текст реплики, подпись пользователя) должен
+вводиться форматированный текст.
+
+Такому полю должно соответствовать поле с именим имя_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 с именем bindip (привязка
+ авторизационной куки к IP)
+
+ При авторизации по OpenID используется поле openidsite.
+ Его значение интерпретируется как шаблон для операции sprintf, который
+ должен содержать один спецификатор формата %s, куда подставляется имя
+ пользователя.
+
+ Если поле openidsite имеет пустое значение, пользователь
+ рассматривается как локальный. Если непустое, то как
+ openid-пользователь.
+
+ Кнопка submit называется login
+
+ Форма регистрации нового пользователя (операция register, форма с
+ именем register)
+ Содержит поля user
+ pass1 pass2 comment
+ Может также содержать любые дополнительные поля информации о
+ пользователе. Они будут сохранены в списке пользователей
+ и могут потом выводиться в шаблонах рядом с информацией об авторе.
+ Скрытое поле 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)
- íÏÖÎÏ ÔÁËÖÅ ×ËÌÀÞÁÔØ (ÄÉÎÁÍÉÞÅÓËÉ ÄÏÂÁ×ÌÑÔØ) ÐÏÌÑ file upload image1
+Операция 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. ÷ ÐÏÓÌÅÄÎÅÅ ÐÏÌÅ ÓÌÅÄÕÅÔ ÚÁÐÒÅÔÉÔØ
- ××ÏÄ ÓÉÍ×ÏÌÏ× ÎÅÌÁÔÉÎÓËÏÇÏ ÁÌÆÁ×ÉÔÁ '/' É '?'
-
-CËÒÉÐÔ ÐÒÏÓÍÏÔÒÁ ÓÐÉÓËÁ ÐÏÌØÚÏ×ÁÔÅÌÅÊ (ÏÐÃÉÑ userlist)
-
- üÌÅÍÅÎÔ Ó ËÌÁÓÓÏÍ user ÓÏÄÅÒÖÉÔ ÜÌÅÍÅÎÔÙ Ó ËÌÁÓÓÁÍÉ, ÉÍÅÎÁ ËÏÔÏÒÙÈ
- ÓÏÏÔ×ÅÔÓÔ×ÕÀÔ ÉÍÅÎÁÍ Ó×ÏÊÓÔ× ÐÏÌØÚÏ×ÁÔÅÌÅÊ.
- åÓÌÉ ×ÎÕÔÒÉ ÜÌÅÍÅÎÔÁ ÐÒÉÓÕÔÓÔ×ÕÅÔ ÜÌÅÍÅÎÔ Ó ËÌÁÓÓÏÍ formoder ÉÌÉ
- foradmin, ÔÏ ÐÒÉ ÐÒÏÓÍÏÔÒÅ ÓÔÒÁÎÉÃÙ ÐÏÌØÚÏ×ÁÔÅÌÅÍ, ÎÅ ÉÍÅÀÝÉÍ
- ÓÏÏÔ×ÅÔÓÔ×ÕÀÝÉÈ ÐÒÁ×, ÜÔÏÔ ËÕÓÏË ×ÙËÕÓÙ×ÁÅÔÓÑ ÎÁ ÓÅÒ×ÅÒÅ.
- äÏÌÖÅÎ ÐÒÉÓÕÔÓÔ×Ï×ÁÔØ ÜÌÅÍÅÎÔ ÉÍÅÎÅÍ profile ÉÍÅÀÝÉÊ ÔÉÐ a.
- åÇÏ ÁÔÒÉÂÕÔ href ÚÁÍÅÎÑÅÔÓÑ ÎÁ ÓÓÙÌËÕ ÎÁ ÓËÒÉÐÔ ÒÅÄÁËÔÉÒÏ×ÁÎÉÑ
- ÐÒÏÆÁÊÌÁ. æÏÒÍ ÜÔÏÔ ÛÁÂÌÏÎ ×ÏÏÂÝÅ ÎÅ ÓÏÄÅÒÖÉÔ
-
-óËÒÉÐÔ ÒÁÚÄÁÞÉ ÐÒÁ× ÍÏÄÅÒÉÒÏ×ÁÎÉÑ (setrights)
-
- äÁÅÔ ÐÒÁ×Á ÍÏÄÅÒÁÔÏÒÏ× ÎÁ ÏÐÒÅÄÅÌÅÎÎÙÊ ÆÏÒÕÍ/ÔÅÍÕ, ÉÌÉ ÐÒÁ×Á
- ÁÄÍÉÎÉÓÔÒÁÔÏÒÏ×.
-
- ÷ ÒÅÚÕÌØÔÁÔÅ ÚÁÐÏÌÎÅÎÉÑ ÆÏÒÍÙ ÐÏÌÅ Ó ÉÍÅÎÅÍ moderators ÄÏÌÖÎÏ
- ÓÏÄÅÒÖÁÔØ ÓÐÉÓÏË ÍÏÄÅÒÁÔÏÒÏ× ÄÌÑ ÄÁÎÎÏÊ ÔÅÍÙ (ÓÏÏÔ×ÅÔÓÔ×ÕÀÝÅÊ
- url ÓÔÒÁÎÉÃÙ id) ÐÏÌÅ Ó ÉÍÅÎÅÍ administrators ÓÐÉÓÏË ×ÓÅÈ
- ÁÄÍÉÎÉÓÔÒÁÔÏÒÏ× ÄÁÎÎÏÇÏ ÓÁÊÔÁ.
-
-óËÒÉÐÔ ÒÅÄÁËÔÉÒÏ×ÁÎÉÑ Ó×ÏÊÓÔ× ÐÏÌØÚÏ×ÁÔÅÌÑ.
- áÎÁÌÏÇÉÞÅÎ ÓËÒÉÐÔÕ ÒÅÇÉÓÔÒÁÃÉÉ, ÎÏ ÁÄÍÉÎÉÓÔÒÁÔÏÒÕ ÅÝÅ ×ÉÄÎÏ ÐÏÌÅ
- status. (ÐÏÌØÚÏ×ÁÔÅÌÀ - ÔÏÖÅ ×ÉÄÎÏ, ÎÏ input ÉÌÉ select ÚÁÍÅÎÑÅÔÓÑ ÎÁ
- ÏÂÙÞÎÙÊ ÔÅËÓÔ)
+ поля
+ subject
+ text
+ text_format
+ urlname.
+ При создании форума еще может присутствовать file upload field
+ logo. Зааплоаженный туда файл помещается в директрию форума
+ с именем logo и расширением соответствующим расширению исходного
+ файла.
+
+
+ В последнее поле следует запретить
+ ввод символов нелатинского алфавита '/' и '?'
+
+Cкрипт просмотра списка пользователей (опция userlist)
+
+ Элемент с классом user содержит элементы с классами, имена которых
+ соответствуют именам свойств пользователей.
+ Если внутри элемента присутствует элемент с классом formoder или
+ foradmin, то при просмотре страницы пользователем, не имеющим
+ соответствующих прав, этот кусок выкусывается на сервере.
+ Должен присутствовать элемент именем profile имеющий тип a.
+ Его атрибут href заменяется на ссылку на скрипт редактирования
+ профайла. Форм этот шаблон вообще не содержит
+
+Скрипт раздачи прав модерирования (setrights)
+
+ Дает права модераторов на определенный форум/тему, или права
+ администраторов.
+
+ В результате заполнения формы поле с именем moderators должно
+ содержать список модераторов для данной темы (соответствующей
+ url страницы в pathinfo) поле с именем administrators список всех
+ администраторов данного сайта.
+
+Скрипт редактирования свойств пользователя.
+ Аналогичен скрипту регистрации, но администратору еще видно поле
+ status. (пользователю - тоже видно, но input или select заменяется на
+ обычный текст)
- íÏÖÅÔ ÐÒÉÓÕÔÓÔ×Ï×ÁÔØ ËÎÏÐËÁ resetpassword (ÐÏËÁÚÙ×ÁÅÔÓÑ ÔÏÌØËÏ
- ÁÄÍÉÎÉÓÔÒÁÔÏÒÁÍ)
+ Может присутствовать кнопка resetpassword (показывается только
+ администраторам)
+
+
+Встраивание служебных форм непосредственно в страницы форума
+ Форма, содержащая вышеперечиленные поля, имеющая метод POST и имеющая в поле
+ action="forum/<url страницы, где она размещена)
+ может быть встроена непосредственно в страницу темы или списка
+ тем/списка форумов. Желательно чтобы она делалась видимой только при
+ нажатии кнопки. Отправка этой формы приводит к выполнению необходимого
+ действия без показа страницы скрипта.
-÷ÓÔÒÁÉ×ÁÎÉÅ ÓÌÕÖÅÂÎÙÈ ÆÏÒÍ ÎÅÐÏÓÒÅÄÓÔ×ÅÎÎÏ × ÓÔÒÁÎÉÃÙ ÆÏÒÕÍÁ
+Служебные шаблоны
- æÏÒÍÁ, ÓÏÄÅÒÖÁÝÁÑ ×ÙÛÅÐÅÒÅÞÉÌÅÎÎÙÅ ÐÏÌÑ, ÉÍÅÀÝÁÑ ÍÅÔÏÄ POST É ÉÍÅÀÝÁÑ × ÐÏÌÅ
- action="/cgi-bin/forum/<url ÓÔÒÁÎÉÃÙ, ÇÄÅ ÏÎÁ ÒÁÚÍÅÝÅÎÁ)
- ÍÏÖÅÔ ÂÙÔØ ×ÓÔÒÏÅÎÁ ÎÅÐÏÓÒÅÄÓÔ×ÅÎÎÏ × ÓÔÒÁÎÉÃÕ ÔÅÍÙ ÉÌÉ ÓÐÉÓËÁ
- ÔÅÍ/ÓÐÉÓËÁ ÆÏÒÕÍÏ×. öÅÌÁÔÅÌØÎÏ ÞÔÏÂÙ ÏÎÁ ÄÅÌÁÌÁÓØ ×ÉÄÉÍÏÊ ÔÏÌØËÏ ÐÒÉ
- ÎÁÖÁÔÉÉ ËÎÏÐËÉ. ïÔÐÒÁ×ËÁ ÜÔÏÊ ÆÏÒÍÙ ÐÒÉ×ÏÄÉÔ Ë ×ÙÐÏÌÎÅÎÉÀ ÎÅÏÂÈÏÄÉÍÏÇÏ
- ÄÅÊÓÔ×ÉÑ ÂÅÚ ÐÏËÁÚÁ ÓÔÒÁÎÉÃÙ ÓËÒÉÐÔÁ.
+Шаблон с именем error.html используется для выдачи фатальных ошибок
+скрипта. (когда нет возможности показать форму). Он должен содержать
+элемент с классом error, innerHTML которого будет заменен на сообщение
+об ошибке.