--- /dev/null
+// Библиотека стандартных функций, используемых как в формах в форумного
+// скрипта так и на страницах форума.
+
+
+// Запрещает поле password в текущей форме если значение value текущего
+// элемента не пусто. Используется в качестве обработчика onChange
+// для поля openid_site. Пример использования
+// <select name="openid_site" onChange="selectSite(this)">
+
+function selectSite( element) {
+ var form = element.form;
+ var password_field = form["password"];
+ if (element.value != "") {
+ password_field.disabled=1;
+ } else {
+ password_field.disabled=0;
+ }
+}
// скрипта
//
-// Запрещает поле password в текущей форме если значение value текущего
-// элемента не пусто. Используется в качестве обработчика onChange
-// для поля openid_site. Пример использования
-// <select name="openid_site" onChange="selectSite(this)">
-
-function selectSite( element) {
- var form = element.form;
- var password_field = form["password"];
- if (element.value != "") {
- password_field.disabled=1;
- } else {
- password_field.disabled=0;
- }
-}
<div class="text"></div>
<div class="forumlist">
-<h2>Подфорумы</h2>
-<div class="forum" style="background-color: #ffddcc; padding: 10px; margin: 10px;">
+<h2 style="color: #337733;">Подфорумы</h2>
+<div class="forum" style="background-color: #ffddcc; padding: 10px;
+margin: 10px; border: 1px solid #777777">
<p>
<a href="#" class=subject>Название форума</a> Создан: <span class="date"></span><br>
<div class="text">аннотация форума</div>
<div class="topiclist">
<h2>Темы</h2>
<div class="topic" style="background-color: #ffffcc; padding: 10px;
-margin: 5px;" >
+margin: 5px; border: 1px solid #777777" >
<p>
<a href="#" class=subject>Название темы</a> Создана: <span class="date"></span><br>
<div class="text">аннотация темы</div>
--- /dev/null
+// Библиотека стандартных функций, используемых на страницах форума
+//
+// Извлекает из кук имя текущего пользователя и возвращает его
+function getUserName() {
+ var cookietext =document.cookie;
+ var pos = cookietext.indexOf("sluser=");
+ if (pos == -1) {
+ return undefined;
+ }
+ var start = pos+7;
+ var end = cookietext.indexOf(";",start);
+ if (end == -1) end=cookietext.length;
+ var value= cookietext.substring(start,end);
+ return unescape(value);
+}
+//
+// Добывает с сервера информацию о модераторах данного форума и
+// возвращает user, moderator или admin в зависисмости от статуса
+// указанного пользователя.
+//
+function getUserRights(user) {
+
+}
+// Обработчик body onLoad
+// Пробегается по странице и прячет все элементы
+// управления, которые не разрешены данному пользователю
+//
+function hideDeniedOperations() {
+ var user =getUserName();
+ var rights;
+ if (user) {
+ rights = getUserRights;
+ }
+ if (rights == "admin") {
+ // Админу можно все
+ return;
+ } else if (rights == "moderator") {
+ // Убираем только администраторскую функцию setrights
+ } else if (user) {
+ // Убираем модераторские функции move и newforum
+
+ // Пробегаемся по всем репликам и там, где автор != user
+ // убираем edit и delete
+ } else {
+ // Убираем вообще все, включая reply
+ }
+
+}
+
+//
+// Показывает встроенную в страницу форму под текущей ссылкой
+// Использование <a href="forum?operation=1&id=id" // onClick="showform(this,operation)">
+function showForm(link, formName) {
+ var linktext=link.href;
+ // Разобрать параметры, получить значение id
+ var start =linktext.indexOf("id=");
+ var id;
+ if (start!=-1) {
+ start+=3;
+ var end = linktext.indexOf("&",start);
+ if (end==-1) end=linktext.length;
+ id = linktext.substring(start,end);
+ }
+ var f=document.forms[formName];
+ if (id) {
+ f.elements["id"].value=id;
+ }
+ f.style.display="block";
+ // позиционируем форму под текущей ссылкой.
+ return false;
+}