MediaWiki:JSScripts/CollapsePortlet
Apparence
/*
Ce script permet de montrer et cacher les boîtes de liens sur le coté des pages.
Utilisation
Dans votre script monobook.js :
- Créez éventuellement un tableau contenant les identifiants des boîtes à cacher par défaut :
var collapsed_porlets=["p-lang"];
- Ajoutez la ligne de code suivante :
obtenir("CollapsePorlet");
Compatibilité
Si l'extension MediaWiki:JSScripts/Sidebox est également utilisée, l'appel à obtenir("CollapsePorlet");
doit se faire après l'appel à obtenir("Sidebox");
.
Exemple de script
var collapsed_porlets=["p-lang"];
obtenir("CollapsePorlet");
Source
*/
/***********************************/
function portletSwitch(idnode)
{
var node=document.getElementById("body"+idnode);
var opened = (node.style.display == "none");
node.style.display = opened ? "block" : "none";
node=document.getElementById("l"+idnode);
node.firstChild.data = opened?"▲":"▼";
return false;
}
var anon_id=0;
function collapsePortlet(node)
{
var name=node.getAttribute("id") || ""+(++anon_id);
var opened = 1;
for(var i in collapsed_porlets)
if (collapsed_porlets[i]===name) {opened=0;break;}
var alink=document.createElement("a");
alink.setAttribute("id","l"+name);
alink.setAttribute("href","#");
alink.setAttribute("onclick","return portletSwitch('"+name+"');");
if (document.all)
{ alink.onclick = function(){return portletSwitch(name);} }
alink.appendChild(document.createTextNode(opened?"▲":"▼"));
for ( var PChild = node.firstChild;
PChild != null;
PChild = PChild.nextSibling )
if ( hasClass(PChild,'pBody') )
{
PChild.setAttribute("id","body"+name);
if (!opened) PChild.style.display = 'none';
}
else if ( equalsAa(PChild.nodeName,"h5") )
{
PChild.setAttribute("id","t"+name);
PChild.appendChild(alink);
}
}
if ( typeof ( collapsed_porlets ) == "undefined" )
collapsed_porlets=[]; /* Par défaut */
function collapsePortlets()
{
var portlets = document.getElementsByTagName("div");
for(i=0;i<portlets.length;i++)
if (hasClass(portlets[i], "portlet"))
collapsePortlet(portlets[i]);
}
addOnloadHook(collapsePortlets);
/***********************************/
/*
*/