Utilisateur:Dr Brains/PagesWithoutInfobox.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.//<source lang=javascript>//<pre><nowiki>
var PagesWithoutInfobox_Page = "Utilisateur:Dr Brains/Travaux/15";
//////////////////////////////////////////////////////////////////////////////////////////////////////////
if( (mw.config.get('wgUserGroups').indexOf("sysop")!=-1)||(mw.config.get('wgUserGroups').indexOf("bot")!=-1)){
var PagesWithoutInfobox_APILimit = 4999;
}else{
var PagesWithoutInfobox_APILimit = 499;
}
var PagesWithoutInfobox_DefaultsortAliases = new Array();
var PagesWithoutInfobox_ControlElement;
if((mw.config.get('wgNamespaceNumber')==14)&&(mw.config.get('wgAction')=="view"||mw.config.get('wgAction')=="purge")){
addOnloadHook(PagesWithoutInfobox_AddLink);
}
function PagesWithoutInfobox_AddLink(){
var OngletsCactions = document.getElementById('p-cactions').getElementsByTagName('ul')[0];
OngletsCactions.innerHTML += '<li><a title"Lister les pages sans infobox sur la page '+PagesWithoutInfobox_Page+'" href="javascript:PagesWithoutInfobox_Init();">Infobox</a></li>';
}
function PagesWithoutInfobox_Init(){
PagesWithoutInfobox_ControlElement = document.createElement('div');
var Title = document.getElementsByTagName('h1')[0];
$(PagesWithoutInfobox_ControlElement).insertAfter(Title)
PagesWithoutInfobox_Run();
}
var PagesWithoutInfobox_PageInCategory = new Array();
var PagesWithoutInfobox_PageInCategoryID = new Array();
var PagesWithoutInfobox_PageInCategoryCount = 0;
var PagesWithoutInfobox_CategoryInCategory = new Array();
var PagesWithoutInfobox_CategoryInCategoryCount = 0;
var PagesWithoutInfobox_IndexCategory = -1;
function PagesWithoutInfobox_Run(category, categorycontinue){
if(!category) category = mw.config.get('wgPageName');
if(!categorycontinue) categorycontinue = '';
var NouvelleRequete = new XMLHttpRequest()
var AdresseRequete = mw.config.get('wgServer') + mw.config.get('wgScriptPath') + '/api.php?format=xml&action=query&list=categorymembers&cmlimit='+PagesWithoutInfobox_APILimit+'&cmtitle=' + category + '&cmcontinue=' + categorycontinue;
PagesWithoutInfobox_ControlElement.innerHTML = 'Listing catégorie : <a href="'+ mw.config.get('wgServer') + mw.config.get('wgArticlePath').split('$1').join(category) + '" >'+category+'</a>';
NouvelleRequete.open("GET", AdresseRequete, true);
NouvelleRequete.onreadystatechange = function() {
if(NouvelleRequete.readyState != 4 ) return;
var ObjetXML = NouvelleRequete.responseXML;
if(ObjetXML==null){ alert("Problème : \n"+AdresseRequete); return; }
var AllCats = ObjetXML.getElementsByTagName('cm');
for(var a=0;a<AllCats.length;a++){
var Ns = parseInt(AllCats[a].getAttribute('ns'));
var Title = AllCats[a].getAttribute('title');
var Version = AllCats[a].getAttribute('pageid');
//alert(Title + " - " + Ns + " - " + Version);
if(Ns==14 && PagesWithoutInfobox_CategoryInCategory.indexOf(Title)==-1 && Title.indexOf("Wikipédia")==-1){
PagesWithoutInfobox_CategoryInCategory[PagesWithoutInfobox_CategoryInCategoryCount] = Title;
PagesWithoutInfobox_CategoryInCategoryCount++
}else if(Ns==0||Ns==1){
Title = Title.split(mw.config.get('wgFormattedNamespaces')[1] + ':').join("");
if(Ns==0) PagesWithoutInfobox_PageInCategoryID[PagesWithoutInfobox_PageInCategoryCount] = Version;
PagesWithoutInfobox_PageInCategory[PagesWithoutInfobox_PageInCategoryCount] = Title;
PagesWithoutInfobox_PageInCategoryCount++
}
}
var Autrerequete = ObjetXML.getElementsByTagName('query-continue')[0];
if(Autrerequete){
var AutreRequeteContinue = Autrerequete.getElementsByTagName('categorymembers')[0].getAttribute('cmcontinue');
PagesWithoutInfobox_Run(category, AutreRequeteContinue);
}else{
PagesWithoutInfobox_IndexCategory++
var NewCategory = PagesWithoutInfobox_CategoryInCategory[PagesWithoutInfobox_IndexCategory];
if(NewCategory){
PagesWithoutInfobox_Run(NewCategory);
}else{
PagesWithoutInfobox_SortList();
}
}
}
NouvelleRequete.send(null);
}
var PagesWithoutInfobox_SortedPageInCategory = new Array();
var PagesWithoutInfobox_SortedPageInCategoryID = new Array();
var PagesWithoutInfobox_SortedPageInCategoryCount = 0;
function PagesWithoutInfobox_SortList(){
PagesWithoutInfobox_ControlElement.innerHTML = "Tri des pages";
var PagesTemp = new Array();
for(var a=0;a<PagesWithoutInfobox_PageInCategory.length;a++){
PagesTemp[a] = PagesWithoutInfobox_PageInCategory[a] + ";" + ( PagesWithoutInfobox_PageInCategoryID[a] ? "&oldid="+ PagesWithoutInfobox_PageInCategoryID[a] : "");
}
PagesTemp = PagesTemp.sort();
for(var a=0;a<PagesTemp.length;a++){
if(PagesTemp[a]!=PagesTemp[(a+1)]){
var PageName = PagesTemp[a].replace(/;.*/g, "");
var ID = PagesTemp[a].replace(/.*;/g, "");
PagesWithoutInfobox_SortedPageInCategory[PagesWithoutInfobox_SortedPageInCategoryCount] = PageName;
PagesWithoutInfobox_SortedPageInCategoryID[PagesWithoutInfobox_SortedPageInCategoryCount] = ID;
PagesWithoutInfobox_SortedPageInCategoryCount++
}
}
var PopContent = 'Nombre de pages à vérifier : ' + PagesWithoutInfobox_SortedPageInCategoryCount + '\n';
var Pop = true;
//Pop = confirm(PopContent);
if(Pop) PagesWithoutInfobox_GetInfobox(0);
}
var PagesWithoutInfobox_Lines = new Array();
var PagesWithoutInfobox_Count = 0;
function PagesWithoutInfobox_GetInfobox(position){
var Page = PagesWithoutInfobox_SortedPageInCategory[position];
if(!Page){
PagesWithoutInfobox_Edit();
return;
}
PagesWithoutInfobox_ControlElement.innerHTML = 'Recherche infobox : <a href="'+ mw.config.get('wgServer') + mw.config.get('wgArticlePath').split('$1').join(Page) + '" >'+Page+'</a>';
var url = mw.config.get('wgServer') + mw.config.get('wgScriptPath') + '/api.php?format=xml&action=query&prop=templates&redirects&tllimit=' + PagesWithoutInfobox_APILimit + '&titles=' + Page.replace(/&/g, "%26");
var NouvelleRequete = new XMLHttpRequest();
NouvelleRequete.open("GET", url, true);
NouvelleRequete.onreadystatechange = function() {
if(NouvelleRequete.readyState != 4) return;
var Infobox = "";
var ObjetXML = NouvelleRequete.responseXML;
var templates = ObjetXML.getElementsByTagName('tl');
if(templates[0]){
for (j=0; j<templates.length; j++){
var Template = templates[j].getAttribute("title");
if( Template.indexOf("Modèle:Infobox")!=-1 && Template.indexOf("/")==-1 ){
Infobox += "\n* {{M|"+Template.split('Modèle:').join('')+"}}";
}
if(Template.indexOf("Taxobox")!=-1 && Infobox.indexOf("Taxobox")==-1 ){
Infobox += "\n* {{M|Taxobox}}";
}
}
}
if(Infobox == "") PagesWithoutInfobox_Count++
var Line = '|-\n| valign="top" valign="left" | [['+Page+']] \n| valign="top" align="left" |'+Infobox+'\n';
PagesWithoutInfobox_Lines.push(Line);
PagesWithoutInfobox_GetInfobox((position+1));
}
NouvelleRequete.send(null);
}
var PagesWithoutInfobox_TableStart = '{| class="wikitable sortable centre" width="100%" \n|+ [[:Catégorie:$1]] : $2/$3\n|-\n! Page\n! Infobox\n';
var PagesWithoutInfobox_TableEnd = '|}';
function PagesWithoutInfobox_Edit(){
PagesWithoutInfobox_ControlElement.innerHTML = "Édition : "+ PagesWithoutInfobox_Page;
var url = mw.config.get('wgServer') + mw.config.get('wgScript') + '?title=' + PagesWithoutInfobox_Page.replace(/&/g, "%26") + '&action=edit';
var NouvelleRequete = new XMLHttpRequest();
NouvelleRequete.open("GET", url, true);
NouvelleRequete.onreadystatechange = function() {
if(NouvelleRequete.readyState != 4) return;
while(document.body.firstChild){ document.body.removeChild(document.body.firstChild);}
document.body.innerHTML = NouvelleRequete.responseText;
var Texte = PagesWithoutInfobox_TableStart
Texte = Texte.split('$1').join(mw.config.get('wgTitle'));
Texte = Texte.split('$2').join(PagesWithoutInfobox_Count);
Texte = Texte.split('$3').join(PagesWithoutInfobox_Lines.length);
for(var a=0;a<PagesWithoutInfobox_Lines.length;a++){
Texte += PagesWithoutInfobox_Lines[a]
}
Texte += PagesWithoutInfobox_TableEnd
document.getElementById("wpTextbox1").value = Texte;
document.getElementById("wpSummary").value = "Mise à jour pages sans infobox : [[Catégorie:"+mw.config.get('wgTitle')+"|"+mw.config.get('wgTitle')+"]]";
document.editform.submit();
}
NouvelleRequete.send(null);
}
// </nowiki></pre></source>