Utilisateur:Dr Brains/CatScan.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.
mw.loader.using('mediawiki.util', function () {

var CatScan_Navigator = navigator.userAgent.toLowerCase();
var CatScan_ie = ((CatScan_Navigator.indexOf("msie") != -1) && (CatScan_Navigator.indexOf("opera") == -1));

if((mw.config.get('wgNamespaceNumber')==14)&&(!CatScan_ie)){
    addOnloadHook(CatScan_GetLinks);
}

var CatScan_Domain = 'http://toolserver.org/~daniel/WikiSense/CategoryIntersect.php';
var CatScan_AllLink_Page = new Array();
var CatScan_AllLink_Title = new Array();
var CatScan_AllLink_Text = new Array();
var CatScan_AllLink_Lang = new Array();
var CatLinksAllLink_Count = -1;

function CatScan_GetLinks(){

     CatLinksAllLink_Count++
     CatScan_AllLink_Page[CatLinksAllLink_Count] = encodeURIComponent(mw.config.get('wgPageName').replace(/_/g, " ").split('Catégorie:').join(''));
     CatScan_AllLink_Title[CatLinksAllLink_Count] = mw.config.get('wgPageName').replace(/_/g, " ").split('Catégorie:').join('') ;
     CatScan_AllLink_Text[CatLinksAllLink_Count] = 'fr';
     CatScan_AllLink_Lang[CatLinksAllLink_Count] = '?wikilang=fr&wikifam=.wikipedia.org';


     var LienCommons = false;
     var AllDivs = document.getElementsByTagName('div');
     for(var a=0;a<AllDivs.length;a++){
          if($(AllDivs[a]).hasClass("wikilien_alternatif")){
               var AllLinks = AllDivs[a].getElementsByTagName("a");
               for(var b=0;b<AllLinks.length;b++){
                    var LinkHref = AllLinks[b].href;
                    if(LinkHref.indexOf("http://commons.wikimedia.org/wiki/Category:")!=-1){
                         LienCommons = LinkHref.split('http://commons.wikimedia.org/wiki/Category:').join('');
                         LienCommons = LienCommons.split('?')[0]; 
                    }else{
                         continue;
                    }
               }
          }else{
               continue;
          }
     }
     if(LienCommons == false){
          var AutresProjetsDiv = document.getElementById('autres_projets');
          if(AutresProjetsDiv){
               var AllLinks = AutresProjetsDiv.getElementsByTagName("a");
               for(var b=0;b<AllDivs.length;a++){
                    var LinkHref = decodeURIComponent(AllDivs[b].href);
                    if(LinkHref.indexOf("http://commons.wikimedia.org/wiki/Category:")!=-1){
                         LienCommons = LinkHref.split('http://commons.wikimedia.org/wiki/Category:').join('');
                         LienCommons = LienCommons.split('=')[0]; 
                    }else{
                         continue;
                    }
               }
          }
     }
     if(LienCommons != false){
          //alert(LienCommons);
          CatLinksAllLink_Count++
          CatScan_AllLink_Page[CatLinksAllLink_Count] = encodeURIComponent(LienCommons);
          CatScan_AllLink_Title[CatLinksAllLink_Count] = LienCommons;
          CatScan_AllLink_Text[CatLinksAllLink_Count] = 'Commons';
          CatScan_AllLink_Lang[CatLinksAllLink_Count] = '?wikifam=commons.wikimedia.org';
     }

     var InterWikiDiv = document.getElementById('p-lang');
     if(InterWikiDiv){
          var InterWikiLi = InterWikiDiv.getElementsByTagName('li');
          for(var c=0;c<InterWikiLi.length;c++){
               var InterwikiLang = InterWikiLi[c].className.split('interwiki-').join('');
               var InterwikiLiLien = decodeURIComponent(InterWikiLi[c].getElementsByTagName('a')[0].href);
               InterwikiLiLien = InterwikiLiLien.replace(/.*:/g,"");

               CatLinksAllLink_Count++
               CatScan_AllLink_Page[CatLinksAllLink_Count] = encodeURIComponent(InterwikiLiLien);
               CatScan_AllLink_Title[CatLinksAllLink_Count] = InterwikiLiLien;
               CatScan_AllLink_Text[CatLinksAllLink_Count] = InterwikiLang;
               CatScan_AllLink_Lang[CatLinksAllLink_Count] = '?wikilang='+InterwikiLang+'&wikifam=.wikipedia.org';
               //alert(InterwikiLiLien + ' - ' + InterwikiLang);
          }
     }
     CatScan_AddPortlet();
}

function CatScan_AddPortlet(){
     var pCactions = document.getElementById('p-cactions');
     if(!pCactions)return;
     var tabs = pCactions.getElementsByTagName('ul')[0]; 

     var newCatScan = addlimenu(tabs, 'CatScan', 'new-catscan', CatScan_Domain );
 
     for(var d=0;d<CatScan_AllLink_Page.length;d++){
          mw.util.addPortletLink('new-catscan', CatScan_Domain + CatScan_AllLink_Lang[d] + '&basecat=' + CatScan_AllLink_Page[d] + '&basedeep=10&mode=iul&go=Trouver&format=html&userlang=fr', CatScan_AllLink_Text[d] + ' - ' + CatScan_AllLink_Title[d]);
     }
}

});