mw.loader.using('mediawiki.util', function () {
/* À faire :
- utiliser classes CSS, pour permettre l'effaçage
- permettre l'effaçage
-
*/
addOnloadHook(function()
{
mw.util.addPortletLink('p-tb', 'javascript:verifierHomonymies();', 'Vérif. homonymies', 't-homon', "Vérifier les liens de cette page menant vers des pages d'homonymie");
});
function verifierHomonymies()
{
var Aj = new XMLHttpRequest();
var allLinks = document.getElementById('bodyContent').getElementsByTagName('a');
var goodLinks = ;
var compteurHomon = 0;
for (i=0; i<allLinks.length; i++)
{
if (!(!allLinks.href || $(allLinks.parentNode).hasClass('editsection') || $(allLinks.parentNode).hasClass('cachelinks') || $(allLinks).hasClass('noprint') || $(allLinks).hasClass('external') || allLinks.href.indexOf('javascript:') == 0 || allLinks.className == 'new' || allLinks.className == 'image' || allLinks.parentNode.parentNode.id == 'mw-normal-catlinks' || allLinks.parentNode.id == 'mw-normal-catlinks' || allLinks.href == mw.config.get('wgServer')+'https://wiki95.com/fr/'+encodeURI(mw.config.get('wgPageName')) || allLinks.href.indexOf(mw.config.get('wgServer')+'https://wiki95.com/fr/'+encodeURI(mw.config.get('wgPageName'))+'#') == 0 || allLinks.parentNode.className == 'subpages' || allLinks.parentNode.id == 'contentSub' ))
{
goodLinks.push(allLinks);
}
}
if (!confirm(goodLinks.length + " liens vont être analysés."))
return;
for (i=0; i<goodLinks.length; i++)
{
tempTitle = goodLinks.title;
Aj.open('GET', mw.config.get('wgServer') + '/w/api.php?action=query&prop=templates&redirects&format=xml&titles=' + encodeURI(tempTitle), false);
Aj.send(null);
if (Aj.readyState == 4 && Aj.status == 200)
{
goodLinks.style.backgroundColor = '#C8FFC8';
var templates = Aj.responseXML.documentElement.getElementsByTagName('tl');
for (j=0; j<templates.length; j++)
{
if (templates.getAttribute('title') == "Modèle:Homonymie" || templates.getAttribute('title') == "Modèle:Bandeau standard pour page d'homonymie")
{
//alert("Trouvé un lien vers Homonymie : " + tempTitle);
goodLinks.style.backgroundColor = '#FFCCCC';
compteurHomon++;
break;
}
}
}
}
// Message de fin.
var msg = "";
if (compteurHomon == 0)
msg = "Aucun lien vers une page d’homonymie n’a été trouvé.";
else if (compteurHomon == 1)
msg = "Un lien vers une page d’homonymie a été trouvé.";
else
msg = compteurHomon + " liens vers des pages d’homonymie ont été trouvés.";
alert(msg);
}
});