Utilisateur:Mabot/featuredTemplateSwitch.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) ;
Chrome / Internet Explorer / Opera : maintenez la touche Ctrl en cliquant sur le bouton Actualiser ou pressez Ctrl-F5.//addOnloadHook(featuredInterWikis);
function featuredInterWikis()
{
var pLang = document.getElementById("p-lang");
if (!pLang) return;
var splitContent = function(elt)
{
if(!elt) return ""
if(elt.textContent) return elt.textContent.replace(/[ \n\t]/g,"")
else if(elt.innerText) return elt.innerText.replace(/[ \n\t]/g,"")
else return ""
}
var AdQs = splitContent(document.getElementById('itws_ADQ'))
var BAs = splitContent(document.getElementById('itws_BA'))
if(AdQs.length!=0 || BAs.length!=0)
{
var lis = pLang.getElementsByTagName("li");
var l = lis.length
var p
var className
for (var i=0; i<l; i++)
{
className = lis[i].className.substring(10)
p = BAs.indexOf(className)
if(p!=-1)
{
lis[i].className += " BA";
lis[i].title = "Lien vers un bon article";
}
else
{
p = AdQs.indexOf(className)
if(p!=-1)
{
lis[i].className += " AdQ";
lis[i].title = "Lien vers un article de qualité";
}
}
}
}
}
function featuredInterwikiTemplateReplacment(type)
{
var delay = debugFlag?10:30
getPageListUsingTemplate("Modèle:Lien " + type, function(list)
{
processList(list, function(elt)
{
var title = elt.title
return modifyPage(title, processFeaturedInterwikiTemplate, "Remplacement de modèle {{lien AdQ/BA}} -> {{Liens AdQ/BA}}")
}, delay)
})
}
function processFeaturedInterwikiTemplate(content)
{
var langStr = "aa|ab|af|ak|als|am|an|ang|ar|arc|as|ast|av|ay|az|ba|bar|bat-smg|bcl|be|be-x-old|bg|bh|bi|bm|bn|bo|bpy|br|bs|bug|bxr|ca|cbk-zam|cdo|ce|ceb|ch|cho|chr|chy|closed-zh-tw|co|cr|crh|cs|csb|cu|cv|cy|da|de|diq|dsb|dv|dz|ee|el|eml|en|eo|es|et|eu|ext|fa|ff|fi|fiu-vo|fj|fo|fr|frp|fur|fy|ga|gan|gd|gl|glk|gn|got|gu|gv|ha|hak|haw|he|hi|hif|ho|hr|hsb|ht|hu|hy|hz|ia|id|ie|ig|ii|ik|ilo|io|is|it|iu|ja|jbo|jv|ka|kaa|kab|kg|ki|kj|kk|kl|km|kn|ko|kr|ks|ksh|ku|kv|kw|ky|la|lad|lb|lbe|lg|li|lij|lmo|ln|lo|lt|lv|map-bms|mdf|mg|mh|mi|mk|ml|mn|mo|mr|ms|mt|mus|my|myv|mzn|na|nah|nan|nap|nds|nds-nl|ne|new|ng|nl|nn|no|nov|nrm|nv|ny|oc|om|or|os|pa|pag|pam|pap|pdc|pi|pih|pl|pms|ps|pt|qu|rm|rmy|rn|ro|roa-rup|roa-tara|ru|rw|sa|sah|sc|scn|sco|sd|se|sg|sh|si|simple|sk|sl|sm|sn|so|sq|sr|srn|ss|st|stq|s|sv|sw|szl|ta|te|tet|tg|th|ti|tk|tl|tn|to|tokipona|tpi|tr|ts|tt|tum|tw|ty|udm|ug|uk|ur|uz|ve|vec|vi|vls|vo|wa|war|wo|wuu|xal|xh|y|yo|za|zea|zh|zh-classical|zh-min-nan|zh-yue|zu"
function getOldFeaturedInterwikiTemplate(type)
{
var regMatch = eval("/\\{\\{[Ll]ien "+ type +"\\|(1=)?("+ langStr +")\\}\\}\\n?/g")
var match = content.match(regMatch)
var res = []
if(match)
{
for(var i=0;i!=match.length;i++)
{
match[i] = match[i].replace("lien "+type,"")
match[i] = match[i].replace("Lien "+type,"")
match[i] = match[i].replace(/[\n\t \{\}\|=1]/g,"")
}
content = content.replace(regMatch, "")
res = match
}
return res
}
function getNewFeaturedInterwikiTemplate(type)
{
var regMatch = eval("/\\{\\{[lL]iens "+ type +"\\|(1=)?[^\\}]*\\}\\}\\n?/g")
var match = content.match(regMatch)
var res = []
if(match)
{
match[0] = match[0].replace("liens "+type,"")
match[0] = match[0].replace("Liens "+type,"")
match[0] = match[0].replace(/[\n\t \{\}\|=1]/g,"")
content = content.replace(regMatch, "")
res = match[0].split(/ *\t* *, *\t* */)
}
return res
}
function getConcatenedArrays(array1, array2)
{
for(var i=0;i!=array2.length;i++)
if(array1.indexOf(array2[i])==-1)
array1.push(array2[i])
array1.sort()
for(var i=1;i<array1.length;i++)
{
if(array1[i]==array1[i-1])
{
array1.splice(i,1)
i--
}
}
return array1.join(", ")
}
var AdQ = getOldFeaturedInterwikiTemplate("AdQ")
var BA = getOldFeaturedInterwikiTemplate("BA")
var AdQ2 = getNewFeaturedInterwikiTemplate("AdQ")
var BA2 = getNewFeaturedInterwikiTemplate("BA")
var AdQStr = getConcatenedArrays(AdQ, AdQ2)
var BAStr = getConcatenedArrays(BA, BA2)
var regSearch = eval("/\\[\\[(" + langStr + "):.*\\]\\]\\n/")
var p = content.search(regSearch)
if(p==-1) p = content.length-1
var text = AdQStr.length==0? "" : "{{Liens AdQ|" + AdQStr + "}}\n"
text += BAStr.length==0? "" : "{{Liens BA|" + BAStr + "}}\n"
text += "\n"
content = content.substring(0,p) + text + content.substring(p)
return content
}