Mes rédacteurs me demandaient souvent de modifier les menus, de rajouter ceci ou cela, dans des éléments html calculés dans des squelettes vitaux et compliqués. Avec ce petit outil de rien du tout reposant sur jQuery, ils peuvent maintenant rajouter des éléments, modifier un css où ils veulent.
Il suffit pour cela de rajouter un petit bout de code dans l’en-tête et les rédacteurs n’ont plus qu’à mettre dans leurs articles ou leurs rubriques, un élément html d’une classe spéciale adeplacer ou modifcss, avec une indication de l’endroit où le déplacer/à modifier dans rel.
Utilisation
Exemple de la modification d’un menu
Un rédacteur qui veut rajouter un lien vers le site de jquery dans la liste d’un menu, doit :
Déterminer l’id de l’élément le contenant, pour ça le plus simple est d’installer un DOM inspector comme celui venant avec Firebug par exemple la deuxième ul contenue dans une div d’id = "menu_gauche".
Comprendre la traduction de ce chemin du DOM en Xpath/CSS, ici ça sera #menu_gauche ul:seq(1) pour dire que c’est dans l’élément d’id "menu_gauche", puis dans la deuxième (la première porte le numéro 0) liste ul.
Taper, au beau milieu de son article ce qu’il veut insérer et où :
Et le lien apparait automatiquement dans la liste où il faut.
Exemple de la modification des css
Pour le css, c’est pareil et la balise, pour modifier le 3ème item de la première liste du menu_gauche ressemble à :
Installation
Comment ce miracle est-il possible ? En utilisant jquery, qu’il faut télécharger si vous ne l’avez pas déjà (vous l’utilisez déjà si vous avez les indispensables crayons) [1] et en mettant dans l’en-tête (ou dans votre copie privée du fichier dist/inc-head.html à recopier dans votre répertoire « squelettes/ ») :
Et le tour est joué. Bien-sûr, ne chargez jquery.js que si un plugin ne le fait pas déjà (les crayons par exemple, les essayer c’est les adopter!).
Un fichier minimal (qui n’a rien à voir avec SPIP) qui vous prouve que ça fonctionne est le suivant :