From 42c8a5e84c6ebeac790fecf2fb87b4e2b405f1de Mon Sep 17 00:00:00 2001 From: Victor Wagner Date: Fri, 21 Mar 2008 10:50:38 +0000 Subject: [PATCH] Some polishing of forum template. Added js library for forum pages (not working yet) Moved chooseSite function from form library to common library. --- templates/basicset/common.js | 18 +++++++++ templates/basicset/form.js | 14 ------- templates/basicset/forum.html | 7 ++-- templates/basicset/page.js | 71 +++++++++++++++++++++++++++++++++++ 4 files changed, 93 insertions(+), 17 deletions(-) create mode 100644 templates/basicset/common.js create mode 100644 templates/basicset/page.js diff --git a/templates/basicset/common.js b/templates/basicset/common.js new file mode 100644 index 0000000..7f54c75 --- /dev/null +++ b/templates/basicset/common.js @@ -0,0 +1,18 @@ +// Библиотека стандартных функций, используемых как в формах в форумного +// скрипта так и на страницах форума. + + +// Запрещает поле password в текущей форме если значение value текущего +// элемента не пусто. Используется в качестве обработчика onChange +// для поля openid_site. Пример использования +// - -function selectSite( element) { - var form = element.form; - var password_field = form["password"]; - if (element.value != "") { - password_field.disabled=1; - } else { - password_field.disabled=0; - } -} diff --git a/templates/basicset/forum.html b/templates/basicset/forum.html index 916ae78..394d90c 100644 --- a/templates/basicset/forum.html +++ b/templates/basicset/forum.html @@ -38,8 +38,9 @@ value="Вoйти">
-

Подфорумы

-
+

Подфорумы

+

Название форума Создан:

аннотация форума
@@ -57,7 +58,7 @@ value="Вoйти">

Темы

+margin: 5px; border: 1px solid #777777" >

Название темы Создана:

аннотация темы
diff --git a/templates/basicset/page.js b/templates/basicset/page.js new file mode 100644 index 0000000..3bd4e75 --- /dev/null +++ b/templates/basicset/page.js @@ -0,0 +1,71 @@ +// Библиотека стандартных функций, используемых на страницах форума +// +// Извлекает из кук имя текущего пользователя и возвращает его +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 + } + +} + +// +// Показывает встроенную в страницу форму под текущей ссылкой +// Использование +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; +} -- 2.39.2