MediaWiki:Gadget-LiveRC.js/Extensions/LinkOnLanglinkCountExtension.js

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.
/* 
 --------------------------------------------------------------------------------------
 ---------LLLL---------III--------------------------RRRRRRRRRR--------CCCCC------------
 ---------LLLL---------III--------------------------RRRRRRRRRRRR----CCCCCCCCC----------
 ---------LLLL--------------------------------------RRR------RRR---CCC-----CCC---------
 ---------LLLL---------III--VV-----VV--EEEEEEEEE----RRR------RRR--CCC------------------
 ---------LLLL---------III---VV---VV---EEE----------RRRRRRRRRRR---CCC------------------
 ---------LLLL---------III---VV---VV---EEEEEE-------RRRRRRRRRR----CCC------------------
 ---------LLLL---------III----VV-VV----EEEEEE-------RRR-----RRR----CCC-----CCC---------
 ---------LLLLLLLLLLL--III----VVVVV----EEE----------RRR------RRR----CCCCCCCCC----------
 ---------LLLLLLLLLLL--III-----VVV-----EEEEEEEEE----RRR-------RRR-----CCCCC------------
 --------------------------------------------------------------------------------------
 
'''Extension de LiveRC'''
 
Permet de mettre un lien sur le compte des liens interwiki.
 
* Licence : CC0
* Documentation :
* Auteur : [[:fr:User:Dr Brains]]
* Développement et maintenance :
 
 
{{Catégorisation JS|LiveRC}}
 
<source lang=javascript> */
if (typeof(LiveRC_AddHook)==="function") { // DÉBUT IF

LiveRC_Config["InstalledLiveRCExtensions"].push("LinkOnLanglinkCountExtension");

/* ************************************************************************************************************************* */

window.LinkOnLanglinkCountExtension_Init = function(Args) {
  if(!lrcMakeParam("GetPageInfos")) return;
  if(!LiveRC_Config["MediawikiWikibase"]["base"]) return;
//  if(lrcHasState(state, "NOLANGLINK") || !rc.langlinks || rc.langlinks.length===0) return;
  var tr1 = document.getElementById(Args.id);
  if (!tr1) return;
  var rc = Args.rc;
  var title = rc.title;
  var URL = lrcGetAPIURL('format=xml&action=mobileview')
          + '&page='+encodeURIComponent(title)
          + '&prop=pageprops&pageprops=wikibase_item';
  wpajax.http({url: URL, 
               onSuccess: LinkOnLanglinkCountExtension_RequestDone,
               tr1id: Args.id
  });
}

window.LinkOnLanglinkCountExtension_RequestDone = function(Req, data){
  var XML = Req.responseXML;
  if(!XML) return;
  var pageprops = XML.getElementsByTagName('pageprops')[0];
  if(!pageprops) return;
  var wikibase_item = pageprops.getAttribute('wikibase_item');
  if(!wikibase_item) return;
  LinkOnLanglinkCountExtension_Run(wikibase_item, data.tr1id);
}

window.LinkOnLanglinkCountExtension_Run = function(wikibase_item, tr1id){
  var tr1 = document.getElementById(tr1id);
  if (!tr1) return;
  var IWCountSpan = lrcGetElementsByClass("iwlinkscount",tr1,"span")[0];
  if(!IWCountSpan) return;
  var Count = parseInt(IWCountSpan.innerHTML);
  if(typeof(Count)!="number") return;
  var Href = LiveRC_Config["MediawikiWikibase"]["base"]+ LiveRC_Config["MediawikiWikibase"]["articlepath"];
  Href = Href.split("$1").join(wikibase_item);
  var NewHTML = '<a href="'+Href+'" '
              + 'class="extiw" '
              + 'target="_blank" '
              + (lrcMakeParam("InterwikiPreviewEnabled") ? 'onClick="liveInterwiki('+lrcEscapeStr("d")+', '+lrcEscapeStr(wikibase_item)+'); return false;" ' : '')
              + 'title="'+wikibase_item+'"'                         
              + '>'+Count+'</a>';
  IWCountSpan.innerHTML = NewHTML;
}

LiveRC_AddHook("AfterRC", LinkOnLanglinkCountExtension_Init);

/* ************************************************************************************************************************* */
} // FIN IF
//</source>