En septembre 2005, j'installais ici des liens déroulant dans la sidebarre afin de l'alléger. Je suivais les indications trouvées sur Brindilles, un code valide XHTML offert par Borgo à Lithium. Depuis, le billet a disparu et comme Arkane m'a réclamé le code javascript, je me permet d'en faire un billet afin qu'il puisse servir à d'autres.

Il faut d'abord inclure ce script à l'intérieur des balises <head> et </head> (pour DotClear 1, c'est dans le fichier template.php du thème qu'il faut l'insérer. Sous Dotlear 2, c'est dans le fichier _head.html du thème)


<script type="text/javascript">
function showMoreAnything(blocknum, isOpen) {
hid = ('hide' + (blocknum));
unhid = ('click' + (blocknum));
if( document.getElementById ) {
if( document.getElementById(hid).style.display ) {
if( isOpen != 0 ) {
document.getElementById(hid).style.display = "block";
document.getElementById(unhid).style.display = "none";
} else {
document.getElementById(hid).style.display = "none";
document.getElementById(unhid).style.display = "block";
}
} else {
location.href = isOpen;
return true;
}
} else {
location.href = isOpen;
return true;
}
}
</script>

Ensuite, à l'endroit où doit apparaitre un lien déroulant, insérer ce code :


<span id="click111">
   <a href="#?jsenabled=no" onclick="showMoreAnything(111,'#?jsenabled=no');return false;">
   LIEN1</a>
</span>

<div id="hide111" style="display: none" >
   <a href="#" onclick="showMoreAnything(111,0);return false;">
   LIEN2</a>

   insérer ici les fonctions (php), textes, images apparaissant après avoir cliqué

</div>

Le LIEN1 est le texte du lien ou image apparaissant initialement et permettant de "dérouler" la suite
Le LIEN2 est le texte du lien ou image apparaissant après avoir cliqué et permettant "d'enrouler" = revenir à l'état initial

Il est possible bien évidemment d'utiliser des <ul><li> ... </li></ul> pour englober ce code afin d'améliorer la présentation.

En cas d'utilisation multiple de cette astuce, il faut changer le blocknum. Ici, dans l'exemple, c'est le nombre 111. Changer donc chaque occurrence de 111 par 112 pour le suivant puis éventuellement 113 etc... lors de l'utilisation dans une sidebarre. Dans une utilisation dans une liste de billets, vous pouvez aussi utiliser à la place une fonction php. Par exemple, pour obtenir le déroulement des commentaires sur ce blog dans la présentation "Commentaires par enroulement", j'ai remplacé 111 par <php dcPostID(); ?>, permettant d'avoir un numéro unique pour chacun des billets.

Pour voir un exemple, vous pouvez regarder la sidebarre de droite du blog de Mekbrun : ses liens, galeries, catégories et archives se déroulent en cliquant sur une image. Vous pouvez aussi regarder la présentation de ce blog en passant, dans la sidebarre, en "Commentaires par enroulement" au lieu des "Commentaires inclus" et voir qu'après chaque billet ayant des commentaires, vous pouvez les dérouler en cliquant sur le signe "+" à l'intérieur de la bulle de commentaire.

Amusez-vous bien :evil: