Utilisateur:Sebleouf/pagesliees.js
Apparence
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) ;
Firefox (sur GNU/Linux) / Chrome / Internet Explorer / Opera : maintenez la touche Ctrl en cliquant sur le bouton Actualiser ou pressez Ctrl-F5./*
{{Utilisateur:Dr Brains/onglets}}
'''<big>[[Utilisateur:Dr Brains/WhatlinkshereDeluxe.js]]</big>''' est un code javascript qui s'active dans la page spéciale [[Spécial:Pages liées]] et qui permet de comptabiliser le nombre de pages liées grâce à des requêtes [[Asynchronous JavaScript and XML|Ajax]] sur l'[https://fr.wikipedia.org/w/api.php API] de mediawiki.
Le script supporte toutes les options de la page :
* choix de l'espace de noms
* comptabilisation ou pas :
** des redirections
** des liens
** des inclusions
** des fichiers liés
== Installation ==
Pour installer cette fonction, ajouter le code suivant à votre page [[Special:Mypage/monobook.js|monobook.js]] (ou autre suivant l'habillage sélectionné dans les [[Spécial:préférences]]) :
<div style="border:1px dashed green;margin:1em;padding:1em;">
<source lang=javascript>
importScript('Utilisateur:Dr Brains/WhatlinkshereDeluxe.js');
</source>
</div>
== CODE SOURCE ==
{{Boîte déroulante début|titre=[[Utilisateur:Dr Brains/WhatlinkshereDeluxe.js]]}}<!--
*/
// --><source lang=javascript>
// Documentation : [[Discussion utilisateur:Dr Brains/WhatlinkshereDeluxe.js]]
//<pre><nowiki>
if(mw.config.get('wgCanonicalSpecialPageName')=="Whatlinkshere"){
addOnloadHook(WhatlinkshereDeluxe);
}
function WhatlinkshereDeluxe(){
var paragraphe = document.getElementsByTagName('p');
for(var a=0;a<paragraphe.length;a++){
if(paragraphe[a].innerHTML.indexOf("Les pages ci-dessous")!=-1){
paragraphe[a].innerHTML = paragraphe[a].innerHTML.split("Les pages ci-dessous").join("<span id=\"WhatlinkshereRecap\">0</span> pages");
var Page = paragraphe[a].getElementsByTagName('a')[0].innerHTML;
var Params = '&blfilterredir=all';
var Namespaces = '0|1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|100|101|102|103|104|105';
var url = document.URL;
if(url.indexOf('&namespace=')!=-1){
var URLNamespaces = url.split('&namespace=')[1].split('&')[0];
if(URLNamespaces!='') Namespaces = URLNamespaces;
}
if(url.indexOf("&hideimages=1")!=-1){ // Fichiers liés
var Images = false;
}else{
var Images = true;
}
if(url.indexOf("&hidetrans=1")!=-1){ // Transclusions
var Transclusions = false;
}else{
var Transclusions = true;
}
if((url.indexOf("&hidelinks=1")!=-1)&&(url.indexOf("&hidelinks=1")!=-1)){ // Pages liées
var Links = false;
}else{
var Links = true;
}
if((url.indexOf("&hidelinks=1")==-1)&&(url.indexOf("&hideredirs=1")!=-1)) Params = '&blfilterredir=nonredirects'; // Liens
if((url.indexOf("&hidelinks=1")!=-1)&&(url.indexOf("&hideredirs=1")==-1)) Params = '&blfilterredir=redirects' // Redirections
WhatlinkshereDeluxe_GetLinks(Page, Params, Namespaces, Transclusions, Links, Images);
}
}
}
var WhatlinkshereDeluxe_PagesCount = 0;
function WhatlinkshereDeluxe_GetLinks(TitrePage, Params, Namespaces, Transclusions, Links, Images, RequeteContinue){
if(!Links){
if((Images)||(Transclusions)) WhatlinkshereDeluxe_GetTransclusions(TitrePage, Namespaces, Transclusions, Images);
return;
}
if(!RequeteContinue) RequeteContinue ='';
var Recap = document.getElementById("WhatlinkshereRecap");
if(!Recap) return;
var APILimit = 499;
if((mw.config.get('wgUserGroups').indexOf("sysop")!=-1)||(mw.config.get('wgUserGroups').indexOf("bot")!=-1)){
APILimit = 4999;
}
var AdresseRequete = mw.config.get('wgServer') + '/w/api.php?action=query&list=backlinks&bllimit='+APILimit+ Params +'&blnamespace='+Namespaces+'&bltitle=' + TitrePage + RequeteContinue;
var NouvelleRequete = new XMLHttpRequest();
NouvelleRequete.open("GET", AdresseRequete, true);
NouvelleRequete.send(null);
NouvelleRequete.onreadystatechange = function() {
if(NouvelleRequete.readyState == 4 && NouvelleRequete.status == 200) {
var ElementTraitement = document.createElement('div');
ElementTraitement.innerHTML = NouvelleRequete.responseText;
//document.body.appendChild(ElementTraitement);
var Informations = ElementTraitement.getElementsByTagName('span');
var AutreRequeteNecessaire = false;
for(var a=0;a<Informations.length;a++){
var ContenuInformation = Informations[a].innerHTML;
if(ContenuInformation.indexOf('title=')!=-1){
WhatlinkshereDeluxe_PagesCount++
}
if(ContenuInformation.indexOf('blcontinue=')!=-1){
AutreRequeteNecessaire = true;
var AutreRequeteContinue = '&blcontinue=' + ContenuInformation.split('blcontinue="')[1].split('"')[0];
}
}
if(AutreRequeteNecessaire==true){
Recap.innerHTML = WhatlinkshereDeluxe_PagesCount;
WhatlinkshereDeluxe_GetLinks(TitrePage, Params, Namespaces, Transclusions, Links, Images, AutreRequeteContinue);
}else{
Recap.innerHTML = '<b>'+WhatlinkshereDeluxe_PagesCount+'</b>';
if((Images)||(Transclusions)) WhatlinkshereDeluxe_GetTransclusions(TitrePage, Namespaces, Transclusions, Images);
}
}
}
}
function WhatlinkshereDeluxe_GetTransclusions(TitrePage, Namespaces, Transclusions, Images, RequeteContinue){
if(!Transclusions){
if(Images){
WhatlinkshereDeluxe_GetImages(TitrePage, Namespaces);
return;
}else{
return;
}
}
if(!RequeteContinue) RequeteContinue ='';
var Recap = document.getElementById("WhatlinkshereRecap");
if(!Recap) return;
var APILimit = 499;
if((mw.config.get('wgUserGroups').indexOf("sysop")!=-1)||(mw.config.get('wgUserGroups').indexOf("bot")!=-1)){
APILimit = 4999;
}
var AdresseRequete = mw.config.get('wgServer') + '/w/api.php?action=query&list=embeddedin&eilimit='+APILimit+'&einamespace='+Namespaces+'&eititle=' + TitrePage + RequeteContinue;
var NouvelleRequete = new XMLHttpRequest();
NouvelleRequete.open("GET", AdresseRequete, true);
NouvelleRequete.send(null);
NouvelleRequete.onreadystatechange = function() {
if(NouvelleRequete.readyState == 4 && NouvelleRequete.status == 200) {
var ElementTraitement = document.createElement('div');
ElementTraitement.innerHTML = NouvelleRequete.responseText;
//document.body.appendChild(ElementTraitement);
var Informations = ElementTraitement.getElementsByTagName('span');
var AutreRequeteNecessaire = false;
for(var a=0;a<Informations.length;a++){
var ContenuInformation = Informations[a].innerHTML;
if(ContenuInformation.indexOf('title=')!=-1){
WhatlinkshereDeluxe_PagesCount++
}
if(ContenuInformation.indexOf('eicontinue=')!=-1){
AutreRequeteNecessaire = true;
var AutreRequeteContinue = '&eicontinue=' + ContenuInformation.split('eicontinue="')[1].split('"')[0];
}
}
if(AutreRequeteNecessaire==true){
Recap.innerHTML = WhatlinkshereDeluxe_PagesCount;
WhatlinkshereDeluxe_GetTransclusions(TitrePage, Namespaces, Transclusions, Images, AutreRequeteContinue);
}else{
Recap.innerHTML = '<b>'+WhatlinkshereDeluxe_PagesCount+'</b>';
if(Images) WhatlinkshereDeluxe_GetImages(TitrePage, Namespaces);
}
}
}
}
function WhatlinkshereDeluxe_GetImages(TitrePage, Namespaces, RequeteContinue){
if(!RequeteContinue) RequeteContinue ='';
var Recap = document.getElementById("WhatlinkshereRecap");
if(!Recap) return;
var APILimit = 499;
if((mw.config.get('wgUserGroups').indexOf("sysop")!=-1)||(mw.config.get('wgUserGroups').indexOf("bot")!=-1)){
APILimit = 4999;
}
var AdresseRequete = mw.config.get('wgServer') + '/w/api.php?action=query&list=imageusage&iulimit='+APILimit+'&iunamespace='+Namespaces+'&iutitle=' + TitrePage + RequeteContinue;
var NouvelleRequete = new XMLHttpRequest();
NouvelleRequete.open("GET", AdresseRequete, true);
NouvelleRequete.send(null);
NouvelleRequete.onreadystatechange = function() {
if(NouvelleRequete.readyState == 4 && NouvelleRequete.status == 200) {
var ElementTraitement = document.createElement('div');
ElementTraitement.innerHTML = NouvelleRequete.responseText;
//document.body.appendChild(ElementTraitement);
var Informations = ElementTraitement.getElementsByTagName('span');
var AutreRequeteNecessaire = false;
for(var a=0;a<Informations.length;a++){
var ContenuInformation = Informations[a].innerHTML;
if(ContenuInformation.indexOf('title=')!=-1){
WhatlinkshereDeluxe_PagesCount++
}
if(ContenuInformation.indexOf('iucontinue=')!=-1){
AutreRequeteNecessaire = true;
var AutreRequeteContinue = '&iucontinue=' + ContenuInformation.split('iucontinue="')[1].split('"')[0];
}
}
if(AutreRequeteNecessaire==true){
Recap.innerHTML = WhatlinkshereDeluxe_PagesCount;
WhatlinkshereDeluxe_GetImages(TitrePage, Namespaces, AutreRequeteContinue);
}else{
Recap.innerHTML = '<b>'+WhatlinkshereDeluxe_PagesCount+'</b>';
}
}
}
}
//</nowiki></pre></source>{{Boîte déroulante fin}}