]> www.wagner.pp.ru Git - oss/stilllife.git/blobdiff - doc/templates.txt
*** empty log message ***
[oss/stilllife.git] / doc / templates.txt
index c7d5baf3d6555114c0c3d11e99e2b5c5b776f28f..52e662be8a5972b8c86945a812b22ec9ef9b0531 100644 (file)
@@ -5,6 +5,15 @@
 форм с определенными именами. Скрипты форума вставляют в эти файлы
 информацию руководствуясь классами элементов и именами полей форм.
 
+Во всех шаблонах производится правка относительных URL в элементах
+img src, a href, link href, form action.
+В URL начинающихся со слова templates заменяются на значение templateurl
+из конфигурации форума, URL, начинающиеся со слова users - на userurl,
+со слова forum - на путь к скрипту форума. Остальные относительные (т.е.
+не начинающиеся c http: или / url дополняются путем к корневому каталогу
+форума. Cсылки вида forum?параметры будут заменены на 
+url-скрипта/url-страницы?параметры
+
 Шаблоны страниц:
 
 1. Страница темы
@@ -84,24 +93,26 @@ mreply - ссылка на скрипт ответа. Атрибут href буд
  Клиент-сайд скрипт должен уметь скрывать кнопку move, если пользователь
  не является модератором, а также кнопки edit и delete, если
  пользователь не является автором сообщения, т.е. значение куки
- forum_author не совпадает с содержимым скрытого поля author
+ sluser не совпадает с содержимым скрытого поля author
+
+ Для того чтобы узнать является ли текущий пользователь модератором
+ данного форума, нужно запросить с сервера (через XmlHttpRequest)
+ файл .moderators лежащий рядом с текущим файлом и далее вверх по
+ иерархии. Эти файлы представляют собой простые текстовые файлы с именем 
+ пользователя в каждой строке.
 
+ В корне форума имеется аналогичный файл .admins.
 
- Для того чтобы определить, является ли пользователь модератором данной
- страницы, нужно включить в html следующий элемент
- <script src="/cgi-bin/forum/<url текущей страницы>?getrights=1"></script>
- Полученый по этой url скрипт выставляет две глобальные переменные
- moderator
- и administrator в значение true, если пользователь имеет соответствущие
- права на данную тему и false, если не имеет.
- Кроме того этот скрипт выставляет глобальную переменную author, которая
- имеет значение идентификатора автора, что избавляет client-side cкрипт
- от самостоятельного анализа cookies.
+ Можно также запросить файл .banned.
 
- Манипулирование формами должно производиться из обработчика body onLoad
- чтобы скрипт getrights успел загрузиться.
+ Все эти действия являются необязательными. Если на клиентской стороне
+ они не будут выполнены и у пользователя появится возможность нажать на
+ кнопку выполнения операции, на которую у него нет прав, операция будет
+ заблокирована на сервере.
 
- Если кука FORUM_AUTHOR или глобальная переменная author не определены,
+
+ Если кука sluser не определена,
  то желательно также скрыть кнопку reply и ссылку с классом mreply.
 
  Кроме того на странице могут присутствовать элементы a с классами
@@ -163,6 +174,10 @@ POST-запроса уже содержащего требуемые данны
 В случае если во введенных данных произошла ошибка, сообщение об ошибке
 скрипт вписывает в элемент с классом error вместо его innerHtml
 
+Во всем шаблоне формы производится подстановка информации о текущем
+пользователе, аналогично тому, как она производится в элементе с классом 
+message в шаблоне темы.
+
 Как правило, все скрипты получают следующую информацию 
 1. Поле с именем операции и произвольным непустым значением
   Возможные операции
@@ -259,7 +274,7 @@ Cкрипт просмотра списка пользователей (опци
 Встраивание служебных форм непосредственно в страницы форума
 
   Форма, содержащая вышеперечиленные поля, имеющая метод POST и имеющая в поле
-  action="/cgi-bin/forum/<url страницы, где она размещена)
+  action="forum/<url страницы, где она размещена)
   может быть встроена непосредственно в страницу темы или списка
   тем/списка форумов. Желательно чтобы она делалась видимой только при
   нажатии кнопки. Отправка этой формы приводит к выполнению необходимого