Utilisateur:Delhovlyn/verifHomon.js

Dans cet article, le sujet de Utilisateur:Delhovlyn/verifHomon.js sera abordé sous différentes perspectives et approches. Utilisateur:Delhovlyn/verifHomon.js est un sujet d'une grande importance dans la société actuelle, qui a suscité de grands débats et un grand intérêt dans divers domaines d'étude. Au fil de ces pages, ses implications, son impact et les solutions possibles seront analysées, dans le but de proposer une vision globale et complète de Utilisateur:Delhovlyn/verifHomon.js. Tant les aspects positifs que les défis qu'il représente seront examinés, offrant au lecteur un large éventail d'informations qui lui permettront de bien comprendre ce sujet et de se forger une opinion éclairée à son sujet.
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://wikifreehand.com/fr/'+encodeURI(mw.config.get('wgPageName')) || allLinks.href.indexOf(mw.config.get('wgServer')+'https://wikifreehand.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);

  }

});