MediaWiki:JSScripts/Sidebox
/*
Ce script permet d'ajouter de nouvelles boîtes de liens sur le coté des pages.
Utilisation
Dans votre script monobook.js :
- Ajoutez la ligne de code suivante :
obtenir("Sidebox");
- Créez une fonction de configuration pour cette extension :
function maBoite()
{
- ...
}
addSetup("Sidebox",maBoite);
- Dans cette fonction, créez la boîte en appelant la fonction
createLinkbox
en lui attribuant un identifiant unique, un titre, et un prefixe unique.- Exemple :
var mybox = createLinkbox("MYBOX","Ma boîte","mb");
- Exemple :
- Ajoutez les liens en appelant les méthodes de l'objet retourné :
- addLink(id_suffix, text, title, url, akey)
- Ajouter un lien.
- addWikiLink(id_suffix, text, title, url, akey)
- Ajouter un lien wiki.
- Exemple :
mybox.addWikiLink('random', 'Une page au hasard',
'Afficher une page au hasard', 'Special:Random', 'x');
Les paramètres sont :
id_suffix
- Identifiant unique pour le lien,
text
- Texte du lien,
title
- Texte affiché au survol du lien,
url
- URL,
akey
- Touche d'accès, ex: 'x'.
Exemple de script
obtenir("Sidebox");
function maBoite()
{
var mybox = createLinkbox("MYBOX","Ma boîte","mb");
mybox.addWikiLink('random', 'Une page au hasard',
'Afficher une page au hasard', 'Special:Random', 'x');
}
addSetup("Sidebox",maBoite);
Source
*/
/***********************************/
/* Boîte de liens (auteur: DavidL) */
/***********************************/
var linkboxes=[];
function createLinkbox(id,title,idliprefix)
{
var node=document.createElement("div");
node.setAttribute("id",id);
node.setAttribute("title",title);
node.setAttribute("class","portlet");
node.setAttribute("className","portlet");
var titlenode=document.createElement("h5");
titlenode.appendChild(document.createTextNode(title));
node.appendChild(titlenode);
var bodynode=document.createElement("div");
bodynode.setAttribute("class","pBody");
bodynode.setAttribute("className","pBody");
node.appendChild(bodynode);
var ulnode=document.createElement("ul");
bodynode.appendChild(ulnode);
var linkbox={ "node": node, "ulnode": ulnode, "idliprefix": idliprefix,
"addLink": function(id_suffix, text, title, url, akey)
{
var linode = document.createElement("li");
node.setAttribute("id",this.idliprefix+"-"+id_suffix);
var link = document.createElement("a");
link.setAttribute("href", url);
if (akey)
{
title+=" ["+akey+"]";
link.setAttribute("accesskey", akey);
}
link.setAttribute("title", title);
link.appendChild( document.createTextNode( text ) );
linode.appendChild(link);
this.ulnode.appendChild(linode);
},
"addWikiLink": function(id_suffix, text, title, url, akey)
{this.addLink(id_suffix, text, title, wgArticlePath.replace("$1", url.replace("?", "%3F")), akey);}
};
linkboxes.push(linkbox);
return linkbox;
}
function openLinkboxes()
{
if (linkboxes.length>0)
{
var tc=document.getElementById("column-one");
if (tc==null) return;
for(var i in linkboxes)
{
var t=linkboxes[i];
tc.appendChild(t.node);
}
}
linkboxes=[];
}
$(openLinkboxes);
doSetup("Sidebox");
/***********************************/
/*
*/