MediaWiki:Gadget-LiveRC.js/Extensions/LinkOnIconExtension.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./*
--------------------------------------------------------------------------------------
---------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 les icônes PàS, AdQ, etc.
* Licence : CC0
* Documentation :
* Auteur : [[:fr:User:Orlodrim]]
* Développement et maintenance :
{{Catégorisation JS|LiveRC}}
<source lang=javascript> */
if(typeof(LiveRC_AddHook)==="function"){ // DÉBUT IF
LiveRC_Config["InstalledLiveRCExtensions"].push("LinkOnIconExtension");
/* ************************************************************************************************************************************************ */
window.LinkOnIconParams = [
{ class:"PaSIcon" , page:"$1/Admissibilité" },
{ class:"CopyrightIcon" , page:"$1/Droit d'auteur" },
{ class:"AdQIcon" , page:"$1/Article de qualité" },
{ class:"APDQIcon" , page:"$1/Article de qualité" },
{ class:"BAIcon" , page:"$1/Bon article" }
];
window.Custom_LinkOnIconParams = new Array();
lrcParamDesc["DescLinkOnIconParams"] = "Paramètres de l’extension LinkOnIcon";
lrcParamDesc["DescLinkOnIconParams_short"] = "LinkOnIcon";
// Personnalisation auto
window.defineCustomLinkOnIconParams = function(LOI_Params){
Custom_LinkOnIconParams = LOI_Params;
}
LiveRC_AddHook("AfterFillParamPanel", function(){
LiveRC_ManageParams_Fill(LinkOnIconParams, "LinkOnIconParams", "defineCustomLinkOnIconParams", true);
});
window.lrcXILGetTalkPage = function(article) {
var PageNamespaceNumber = getNamespaceInfoFromPage(article);
var PageName = getNamespaceInfoFromPage(article, "PageName");
if(PageNamespaceNumber%2==0){
var TalkPageNamespaceNumber = (PageNamespaceNumber+1);
}else{
var TalkPageNamespaceNumber = PageNamespaceNumber;
}
return lrcGetNamespaceName(TalkPageNamespaceNumber) + ":" + PageName;
}
window.lrcXILHook = function(Args) {
var tr1 = document.getElementById(Args.id);
if (!tr1) return;
var rc = Args.rc;
var article = rc.title;
var user = rc.user;
var talkpage = lrcXILGetTalkPage(article);
var LinkTargets = Custom_LinkOnIconParams;
if(LinkTargets.length===0) LinkTargets = LinkOnIconParams;
var treatedImage;
var images = tr1.getElementsByTagName('img');
for (var i=0,ilen=images.length;i<ilen;i++) {
var img = images[i];
treatedImage = false;
for(var a=0,l=LinkTargets.length;a<l;a++){
if(treatedImage) continue;
if(!lrcHasClass(img, LinkTargets[a].class)) continue;
treatedImage = true;
var ThePage = LinkTargets[a].page.split("$1").join(talkpage);
var Link = document.createElement('a');
Link.href = lrcGetPageURL(ThePage);
Link.onclick = function(){ liveArticle(ThePage); return false; }
img.parentNode.insertBefore(Link, img);
img.parentNode.removeChild(img);
Link.appendChild(img);
}
}
}
LiveRC_AddHook("AfterRC", lrcXILHook);
/* ************************************************************************************************************************************************ */
} // FIN IF
//</source>