1 // Библиотека стандартных функций, используемых на страницах форума
3 // Извлекает из кук имя текущего пользователя и возвращает его, а также
4 // сохраняет в глобальной переменной forumUser;
6 function getUserName() {
7 var cookietext =document.cookie;
8 var pos = cookietext.indexOf("sluser=");
13 var end = cookietext.indexOf(";",start);
14 if (end == -1) end=cookietext.length;
15 var value= cookietext.substring(start,end);
17 return unescape(value);
20 // Шаблон страницы содержит два специальных тэга link с rel=forum-script
21 // и rel=forum-user-list
22 // Эта функция извлекает их в глобальные переменные forumScriptUrl
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;
36 function showUser(username) {
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]);
47 if (username.substring(0,7) == "http://") {
48 links[i].href=username;
49 username=username.substring(7,username.length);
51 links[i].href=userListUrl+"/" + username;
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]);
59 links[i].appendChild(document.createTextNode("Выйти"));
60 links[i].href=forumScriptUrl+"?logout=1";
65 // Добывает с сервера информацию о модераторах данного форума и
66 // возвращает user, moderator или admin в зависисмости от статуса
67 // указанного пользователя.
69 function getUserRights(user) {
72 // Обработчик body onLoad
73 // Пробегается по странице и прячет все элементы
74 // управления, которые не разрешены данному пользователю
76 function hideDeniedOperations() {
77 var user =getUserName();
80 rights = getUserRights;
82 if (rights == "admin") {
85 } else if (rights == "moderator") {
86 // Убираем только администраторскую функцию setrights
88 // Убираем модераторские функции move и newforum
90 // Пробегаемся по всем репликам и там, где автор != user
91 // убираем edit и delete
93 // Убираем вообще все, включая reply
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=");
108 var end = linktext.indexOf("&",start);
109 if (end==-1) end=linktext.length;
110 id = linktext.substring(start,end);
112 var f=document.forms[formName];
114 f.elements["id"].value=id;
116 f.style.display="block";
117 // позиционируем форму под текущей ссылкой.