]> www.wagner.pp.ru Git - oss/stilllife.git/blobdiff - templates/basicset/page.js
added CSS to all templates. More or less debugged control element hiding
[oss/stilllife.git] / templates / basicset / page.js
index 89fc24345733ddc2d4d15e71f137646ce6ecc61e..924d3ef08c5d8296459bbaf502d5dd6f6d62a6e6 100644 (file)
@@ -14,8 +14,8 @@ function getUserName() {
        var end = cookietext.indexOf(";",start);
        if (end == -1) end=cookietext.length;
        var value= cookietext.substring(start,end);
-       forumUser = value;
-       return decodeURIComponent(value);
+       forumUser = decodeURIComponent(value);
+       return forumUser;
 }
 //
 // Шаблон страницы содержит два специальных тэга link с rel=forum-script
@@ -35,7 +35,6 @@ function getBaseURLs() {
        }       
 }
 function showUser(username) {
-       getBaseURLs();
        if (!username) {
                return ;
        }
@@ -107,29 +106,99 @@ function getUserRights(user) {
 // управления, которые не разрешены данному пользователю
 //
 function customizePage() {
+       getBaseURLs();
        showUser(getUserName());
+       hideDeniedOperations();
 }
 // Заготовка на будущее
 function hideDeniedOperations() {
 
-    var user =getUserName();
-       var rights;
-       if (user) {     
-               rights = getUserRights;
+    var user = forumUser;
+       var rights = userStatus;
+       if (user.indexOf("http://")==0) {
+               user=user.substring(7,user.length);
        }
        if (rights == "admin") {
                // Админу можно все
                return;
-       } else if (rights == "moderator") {
-               // Убираем только администраторскую функцию setrights
-       } else if (user) {
-           // Убираем модераторские функции move и newforum
+       } 
+       var links=document.getElementsByTagName("a");
+       var forms=document.getElementsByTagName("form");
+       // Убираем только администраторскую функцию setrights
+       for (i=0;i<links.length;i++) {
+               if (links[i].href.indexOf("setrights=") != -1) {
+                       links[i].style.visibility="hidden";
+               }       
+       }
+       for (i=0;i<forms.length;i++) {
+               if (forms[i].className == "foruminfo") {
+                       var inputs = forms[i].getElementsByTagName("input");
+                       for (j=0;j<inputs.length;j++) {
+                               if (inputs[j].name == "setrights") {
+                                       inputs[j].style.visibility="hidden";
+                               }
+                       }       
+               }
+       }       
+       if (rights == "moderator") {
+               return;
+       }
+       for (i=0;i<forms.length;i++) {
+               if (forms[i].className == "foruminfo") {
+                       forms[i].style.display="none";
+               } else if (forms[i].className == "msginfo"||
+                       forms[i].className=="topicinfo") {
+                       if (rights=="banned") {
+                               forms[i].style.display="none";
+                       } else {
+                               var inputs = forms[i].getElementsByTagName("input"); 
+                               var my_item = false;
+                               for (j=0;j<inputs.length;j++) {
+                                       if (inputs[j].name == "move") {
+                                               inputs[j].style.visibility="hidden";
+                                       }
+                               }       
+                               if (user) {
+                                       for (j=0;j<inputs.length;j++) {
+                                               if (inputs[j].name == "author") {
+                                                       my_item = inputs[j].value == user;
+                                                       break;
+                                               }       
+                                       }
+                               }
+                               if (!my_item) {
+                                       for (j=0;j<inputs.length;j++) {
+                                               if (inputs[j].name == "edit" ||
+                                                       inputs[j].name == "delete") {
+                                                       inputs[j].style.visibility="hidden";
+                                               }
+                                       }
+                               }       
+                       } 
+               }          
+       }       
+       // Убираем все модераторские операции из ссылок
+       for (i=0;i<links.length;i++) {
+               if (links[i].href.indexOf("newforum=")!=-1 ||
+                               links[i].href.indexOf("move=")!=-1) {
+                       links[i].style.visibility="hidden";
+               }       
                
-               // Пробегаемся по всем репликам и там, где автор != user
-               // убираем edit и delete
-    } else {
-           // Убираем вообще все, включая reply
-       }        
+       }       
+       if (!forumUser || rights == "banned") {
+       for (i=0;i<links.length;i++) {
+               if (links[i].href.indexOf("newtopic=")!=-1 ||
+                       links[i].href.indexOf("edit=")!=-1 ||
+                       links[i].href.indexOf("delete=")!=-1||
+                       (rights == "banned" && links[i].href.indexOf("reply=")!=-1)) {
+                               links[i].style.visibility="hidden";
+               }               
+       }       
+       return; 
+       }
+       // Убираем операции edit и delete для тех объектов, где юзер не
+       // автор
+
        
 }