]> www.wagner.pp.ru Git - oss/stilllife.git/blob - templates/basicset/page.js
*** empty log message ***
[oss/stilllife.git] / templates / basicset / page.js
1 // Библиотека стандартных функций, используемых на страницах форума
2 //
3 // Извлекает из кук имя текущего пользователя и возвращает его, а также
4 // сохраняет в глобальной переменной forumUser;
5 var forumUser;
6 function getUserName() {
7         var cookietext =document.cookie;
8         var pos = cookietext.indexOf("sluser=");
9         if (pos == -1)  {
10                 return undefined;
11         }
12         var start = pos+7;
13         var end = cookietext.indexOf(";",start);
14         if (end == -1) end=cookietext.length;
15         var value= cookietext.substring(start,end);
16         forumUser = value;
17         return unescape(value);
18 }
19 //
20 // Шаблон страницы содержит два специальных тэга link с rel=forum-script
21 // и rel=forum-user-list
22 // Эта функция извлекает их в глобальные переменные forumScriptUrl
23 // и userListUrl;
24 var forumScriptUrl;
25 var userListUrl;
26 function getBaseURLs() {
27         var links=document.getElementsByTagName("link");
28         for (i=0;i<links.length;i++) {
29                 if (links[i].rel == "forum-script") {
30                         forumScriptUrl = links[i].href;
31                 } else if (links[i].rel = "forum-user-list") {
32                         userListUrl = links[i].href;
33                 }
34         }       
35 }
36 function showUser(username) {
37         getBaseURLs();
38         if (!username) {
39                 return ;
40         }       
41         var links=document.getElementsByTagName("a");
42         for (i=0;i<links.length;i++) {
43                 if (links[i].className == "userurl") {
44                         while (links[i].childNodes.length>0) {
45                                 links[i].removeChild(links[i].childNodes[0]);
46                         }       
47                         if (username.substring(0,7) == "http://") {
48                                 links[i].href=username;
49                                 username=username.substring(7,username.length);
50                         } else {
51                                 links[i].href=userListUrl+"/" + username;
52                         }       
53                         links[i].appendChild(document.createTextNode(username));
54                 } else if (links[i].href.substring(0,forumScriptUrl.length)==
55                         forumScriptUrl && links[i].href.indexOf("login=")!=-1) {
56                         while (links[i].childNodes.length>0) {
57                                 links[i].removeChild(links[i].childNodes[0]);
58                         }       
59                         links[i].appendChild(document.createTextNode("Выйти"));
60                         links[i].href=forumScriptUrl+"?logout=1";
61                 }               
62         }       
63 }
64 //
65 // Добывает с сервера информацию о модераторах данного форума и
66 // возвращает user, moderator или admin в зависисмости от статуса
67 // указанного пользователя.  
68 //
69 function getUserRights(user) {
70
71 }
72 // Обработчик body onLoad
73 //  Пробегается по странице и прячет все элементы
74 // управления, которые не разрешены данному пользователю
75 //
76 function hideDeniedOperations() {
77     var user =getUserName();
78         var rights;
79         if (user) {     
80                 rights = getUserRights;
81         }
82         if (rights == "admin") {
83                 // Админу можно все
84                 return;
85         } else if (rights == "moderator") {
86                 // Убираем только администраторскую функцию setrights
87         } else if (user) {
88             // Убираем модераторские функции move и newforum
89                 
90                 // Пробегаемся по всем репликам и там, где автор != user
91                 // убираем edit и delete
92     } else {
93             // Убираем вообще все, включая reply
94         }        
95         
96 }
97
98 //
99 //  Показывает встроенную в страницу форму под текущей ссылкой
100 //  Использование  <a href="forum?operation=1&id=id" //  onClick="showform(this,operation)">
101 function showForm(link, formName) {
102    var linktext=link.href;
103    // Разобрать параметры, получить значение id
104    var start =linktext.indexOf("id=");
105    var id;
106    if (start!=-1) {
107                 start+=3;
108                 var end = linktext.indexOf("&",start);
109                 if (end==-1) end=linktext.length;
110                 id = linktext.substring(start,end);
111    }    
112    var f=document.forms[formName];
113    if (id) {
114       f.elements["id"].value=id;
115    }
116    f.style.display="block";
117    // позиционируем форму под текущей ссылкой.
118    return false;        
119 }