]> wagner.pp.ru Git - oss/stilllife.git/commitdiff
Some polishing of forum template.
authorVictor Wagner <vitus@wagner.pp.ru>
Fri, 21 Mar 2008 10:50:38 +0000 (10:50 +0000)
committerVictor Wagner <vitus@wagner.pp.ru>
Fri, 21 Mar 2008 10:50:38 +0000 (10:50 +0000)
Added js library for forum pages (not working yet)
Moved chooseSite function from form library to common library.

templates/basicset/common.js [new file with mode: 0644]
templates/basicset/form.js
templates/basicset/forum.html
templates/basicset/page.js [new file with mode: 0644]

diff --git a/templates/basicset/common.js b/templates/basicset/common.js
new file mode 100644 (file)
index 0000000..7f54c75
--- /dev/null
@@ -0,0 +1,18 @@
+// Библиотека стандартных функций, используемых как в формах в форумного
+// скрипта так и на страницах форума.  
+
+
+// Запрещает поле 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;
+  }    
+}
index d3127a257553687ec31ab96fb209075655454533..4528b6134d48ad0901f887b591bc7c197edc7cc3 100644 (file)
@@ -2,17 +2,3 @@
 // скрипта
 //
 
-// Запрещает поле 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;
-  }    
-}
index 916ae78059bb1a6e6f50eb38303acbb3e0037f67..394d90c731f717e8393062daab14d3412caa52f3 100644 (file)
@@ -38,8 +38,9 @@ value="Вoйти">
 <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>
@@ -57,7 +58,7 @@ value="Вoйти">
 <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>
diff --git a/templates/basicset/page.js b/templates/basicset/page.js
new file mode 100644 (file)
index 0000000..3bd4e75
--- /dev/null
@@ -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
+       }        
+       
+}
+
+//
+//  Показывает встроенную в страницу форму под текущей ссылкой
+//  Использование  <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;       
+}