X-Git-Url: http://wagner.pp.ru/gitweb/?a=blobdiff_plain;f=doc%2Ftemplates.txt;h=a9952445328a2f14fbdd5036778fd9ac12d5d4a7;hb=7b8c6e94eb769b0fe9f8ed52f0c35a9937f9f402;hp=751797da1db9bb48ea90922873e73579bc706421;hpb=99b953577eeee6b383165e19befcd10d1dce2ffc;p=oss%2Fstilllife.git diff --git a/doc/templates.txt b/doc/templates.txt index 751797d..a995244 100644 --- a/doc/templates.txt +++ b/doc/templates.txt @@ -1,171 +1,236 @@ -ïÐÉÓÁÎÉÅ ÛÁÂÌÏÎÏ× ÆÏÒÕÍÁ +Описание шаблонов форума -ûÁÂÌÏÎÙ ÆÏÒÕÍÁ ÐÒÅÄÓÔÁ×ÌÑÀÔ ÓÏÂÏÊ ÏÂÙËÎÏ×ÅÎÎÙÅ 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 - × ÜÌÅÍÅÎÔ Ó ÔÁËÉÍ ËÌÁÓÓÏÍ ÐÏÍÅÝÁÅÔÓÑ ÚÁÇÏÌÏ×ÏË ÔÅÍÙ. ôÏÔ ÖÅ -ÓÁÍÙÊ ÚÁÇÏÌÏ×ÏË ÐÏÍÅÝÁÅÔÓÑ × ÜÌÅÍÅÎÔ × <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. В случае если тема разрослась более чем на одну страницу, + их href-атрибуты заменяются на ссылки на предыдущую следующую страницу. + Если тема состоит из одной страницы, ссылки будут вести на неё же. + Как вариант, можно использовать классы 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 которого будет заменен на сообщение +об ошибке.