]> www.wagner.pp.ru Git - oss/stilllife.git/blobdiff - doc/templates.txt
Решена проблема с PATH_TRANSLATED в Fedora: если путь в адресной строке
[oss/stilllife.git] / doc / templates.txt
index 751797da1db9bb48ea90922873e73579bc706421..a9952445328a2f14fbdd5036778fd9ac12d5d4a7 100644 (file)
-ïÐÉÓÁÎÉÅ ÛÁÂÌÏÎÏ× ÆÏÒÕÍÁ
+Описание шаблонов форума
 
-ûÁÂÌÏÎÙ ÆÏÒÕÍÁ ÐÒÅÄÓÔÁ×ÌÑÀÔ ÓÏÂÏÊ ÏÂÙËÎÏ×ÅÎÎÙÅ 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
@@ -180,81 +245,171 @@ POST-
   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 которого будет заменен на сообщение
+об ошибке.