Aller au contenu

Utilisateur:Dr Brains/SiteUserInfoBiblio.js

Une page de Wikipédia, l'encyclopédie libre.
Note : après avoir enregistré la page, vous devrez forcer le rechargement complet du cache de votre navigateur pour voir les changements.

Mozilla / Firefox / Konqueror / Safari : maintenez la touche Majuscule (Shift) en cliquant sur le bouton Actualiser (Reload) ou pressez Maj-Ctrl-R (Cmd-R sur Apple Mac) ;

Chrome / Internet Explorer / Opera : maintenez la touche Ctrl en cliquant sur le bouton Actualiser ou pressez Ctrl-F5.
if(typeof(SiteUserInfoBiblio_Enabled)=="undefined"){ /////////////////////////////////////////////////////// TEST ANTI DOUBLE INCLUSION

var SiteUserInfoBiblio_Enabled = true;

SUIB_GetSiteInfos();

function SUIB_GetSiteInfos(){
     var SiteInfoAddress = mw.config.get('wgServer') + mw.config.get('wgScriptPath') + '/api.php?format=xml&action=query&meta=siteinfo&siprop=general|namespaces|namespacealiases|specialpagealiases|magicwords|statistics|interwikimap|dbrepllag|usergroups|extensions|fileextensions|rightsinfo|languages';
     var SiteInfoRequete = new XMLHttpRequest();
     SiteInfoRequete.open("GET", AdresseOldid, true);
     SiteInfoRequete.onreadystatechange = function() {
          if( SiteInfoRequete.readyState != 4 ) return;
          var ObjetXML = SiteInfoRequete.responseXML
          SUIB_ExtractSiteInfos(ObjetXML);
          return SiteInfoRequete.responseXML;
     }
     SiteInfoRequete.send(null);
}

function SUIB_ExtractSiteInfos(ObjetXML){
     SUIB_ExtractGroupsAndValidRights(ObjetXML);
     SUIB_ExtractValidInterwikis(ObjetXML);
     SUIB_ExtractNamespaces(ObjetXML);
}

var SUIB_AviableGroups = new Array();
var SUIB_AviableRights = new Array();
var SUIB_RightsByGroup = new Array();

function SUIB_ExtractGroupsAndValidRights(ObjetXML){
     var UserGroups = ObjetXML.getElementsByTagName('usergroups')[0];
     var Group = UserGroups.getElementsByTagName('group');
     for(var a=0;a<Group.length;a++){
          var NewGroup = Group[a].getAttribute("name");
          SUIB_AviableGroups.push(NewGroup);
          SUIB_RightsByGroup[NewGroup] = new Array();
          var Rights = Group[a].getElementsByTagName('permission')
          for(var b=0;b<Rights.length;b++){
               var ThisRight = Rights[b].firstChild.Nodevalue;
               if(SUIB_AviableRights.indexOf(ThisRight)==-1) SUIB_AviableRights.push(ThisRight);
               SUIB_RightsByGroup[NewGroup].push(ThisRight);
          }
     }
}

var SUIB_AviableGInterwikis = new Array();
var SUIB_AviableGInterwikisIndex = 0;

function SUIB_ExtractValidInterwikis(ObjetXML){
     var Interwikimap = ObjetXML.getElementsByTagName('interwikimap')[0];
     var IW = Interwikimap.getElementsByTagName('iw');
     for(var c=0;c<IW.length;c++){
          if(!!IW[a].getAttribute('local') continue;
          SUIB_AviableGInterwikis[0]["prefix"] = IW[a].getAttribute('prefix')
          SUIB_AviableGInterwikis[0]["language"] = IW[a].getAttribute('language')
          SUIB_AviableGInterwikis[0]["url"] = IW[a].getAttribute('url')
     }
}


var SUIB_AviableNamespaces = new Array();

function SUIB_ExtractNamespaces(ObjetXML){
     if(typeof(mw.config.get('wgFormattedNamespaces'))!="undefined"){
          SUIB_AviableNamespaces = mw.config.get('wgFormattedNamespaces');
     }else{
          var Namespaces = ObjetXML.getElementsByTagName('namespaces')[0];
          var NS = Namespaces.getElementsByTagName('ns');
          for(var d=0;d<NS.length;d++){
               var NamespaceNumber = NS[d].getAttribute('id');
               var NamespaceName = ( NS[d].firstChild ? NS[d].firstChild.nodeValue : "" );
               SUIB_AviableNamespaces[NamespaceNumber] = NamespaceName
          }
     }
}

function SUIB_GroupHasRight(Group, Right){
     return (SUIB_RightsByGroup[Group].indexOf(Right)!=-1);
}

function SUIB_GroupHasGroup(Group){
     return (mw.config.get('wgUserGroups').indexOf(Group)!=-1);
}

function SUIB_UserHasRight(right){
     var HasRight = false;
     for(var a=0;a<mw.config.get('wgUserGroups');a++){
          if(HasRight) continue;   
          HasRight = SUIB_GroupHasRight(Group, Right);
     }
     return Right;
}



} /////////////////////////////////////////////////////// FIN TEST ANTI DOUBLE INCLUSION