X-Git-Url: https://wagner.pp.ru/gitweb/?a=blobdiff_plain;f=templates%2Fbasicset%2Fpage.js;h=f0c7fc45e928f9af1f5e171af6f337175750e81b;hb=809e934942f2d61eb11e7ce0461e8854cc72c8c5;hp=3bd4e7514b39a6713e37ddf611bf5bcb00e2b797;hpb=42c8a5e84c6ebeac790fecf2fb87b4e2b405f1de;p=oss%2Fstilllife.git diff --git a/templates/basicset/page.js b/templates/basicset/page.js index 3bd4e75..f0c7fc4 100644 --- a/templates/basicset/page.js +++ b/templates/basicset/page.js @@ -1,6 +1,9 @@ // Библиотека стандартных функций, используемых на страницах форума // -// Извлекает из кук имя текущего пользователя и возвращает его +// Извлекает из кук имя текущего пользователя и возвращает его, а также +// сохраняет в глобальной переменной forumUser; +var forumUser; +var userStatus; function getUserName() { var cookietext =document.cookie; var pos = cookietext.indexOf("sluser="); @@ -11,39 +14,191 @@ function getUserName() { var end = cookietext.indexOf(";",start); if (end == -1) end=cookietext.length; var value= cookietext.substring(start,end); - return unescape(value); + forumUser = decodeURIComponent(value); + return forumUser; } +// +// Шаблон страницы содержит два специальных тэга link с rel=forum-script +// и rel=forum-user-list +// Эта функция извлекает их в глобальные переменные forumScriptUrl +// и userListUrl; +var forumScriptUrl; +var userListUrl; +function getBaseURLs() { + var links=document.getElementsByTagName("link"); + for (i=0;i0) { + 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)); + links[i].className = userStatus; + } 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"; + } + } +} + // // Добывает с сервера информацию о модераторах данного форума и // возвращает user, moderator или admin в зависисмости от статуса // указанного пользователя. // function getUserRights(user) { + var status="user"; + var xhr=getXMLHttpRequest(); + if(!xhr) return status; + // Strip http:// prefix from OpenID url + if (user.substring(0,7) == "http://") { + user=user.substring(7,user.length); + } + var hr=location.href.match(/^\w+:\/\/[^/]*\/([^?#]+)/); + if(hr==null) return status; + var depth=hr[1].split(/\//).length; + var re=new RegExp("\n\\\[\s*(admins|moderators|banned)\s*\\\]\s*[^[]*\n"+user+"\n","m"); + for(var path="",i=0;i