]> www.wagner.pp.ru Git - oss/stilllife.git/blobdiff - templates/basicset/page.js
*** empty log message ***
[oss/stilllife.git] / templates / basicset / page.js
index fd43ccdf0985ecb553117fbc46257b04792f5b42..9dc4c99cb65f85eae12400d4fb5232f57f769952 100644 (file)
@@ -1,6 +1,8 @@
 // Библиотека стандартных функций, используемых на страницах форума
 //
-// Извлекает из кук имя текущего пользователя и возвращает его 
+// Извлекает из кук имя текущего пользователя и возвращает его, а также
+// сохраняет в глобальной переменной forumUser;
+var forumUser;
 function getUserName() {
        var cookietext =document.cookie;
        var pos = cookietext.indexOf("sluser=");
@@ -11,9 +13,28 @@ function getUserName() {
        var end = cookietext.indexOf(";",start);
        if (end == -1) end=cookietext.length;
        var value= cookietext.substring(start,end);
+       forumUser = value;
        return unescape(value);
 }
+//
+// Шаблон страницы содержит два специальных тэга link с rel=forum-script
+// и rel=forum-user-list
+// Эта функция извлекает их в глобальные переменные forumScriptUrl
+// и userListUrl;
+var forumScriptUrl;
+var userListUrl;
+function getBaseURLs() {
+       var links=document.getElementsByTagName("link");
+       for (i=0;i<links.length;i++) {
+               if (links[i].rel == "forum-script") {
+                       forumScriptUrl = links[i].href;
+               } else if (links[i].rel = "forum-user-list") {
+                       userListUrl = links[i].href;
+               }
+       }       
+}
 function showUser(username) {
+       getBaseURLs();
        if (!username) {
                return ;
        }       
@@ -23,8 +44,21 @@ function showUser(username) {
                        while (links[i].childNodes.length>0) {
                                links[i].removeChild(links[i].childNodes[0]);
                        }       
+                       if (username.substring(0,7) == "http://") {
+                               links[i].href=username;
+                               username=username.substring(7,username.length);
+                       } else {
+                               links[i].href=userListUrl+"/" + username;
+                       }       
                        links[i].appendChild(document.createTextNode(username));
-               }
+               } else if (links[i].href.substring(0,forumScriptUrl.length)==
+                       forumScriptUrl && links[i].href.indexOf("login=")!=-1) {
+                       while (links[i].childNodes.length>0) {
+                               links[i].removeChild(links[i].childNodes[0]);
+                       }       
+                       links[i].appendChild(document.createTextNode("Выйти"));
+                       links[i].href=forumScriptUrl+"?logout=1";
+               }               
        }       
 }
 //