SPIP - Contrib

[ar] [en] [es] [fr] [it]



Accueil du site > Rédaction > Sommaires > Archives Sommaire

Ajouter des ID aux intertitres

vendredi 26 août 2005, par Stéphane Deschamps, Yanno. Dernier ajout dimanche 28 janvier 2007

Toutes les versions de cet article :


Ce petit filtre ajoute un ID unique à chaque intertitre, pour pouvoir pointer directement vers un intertitre donné (par exemple pour faire rapidement un sommaire de la page).


Il est souvent pratique de pouvoir pointer vers une URL de type page.html#ancre. Nous allons émuler ce comportement avec un petit filtre de SPIP rapide et pas cher :)

Définir les intertitres

Nous avons décidé avant tout de redéfinir les intertitres en <h2> (titres de niveau 2). Dans mes_fonctions.php3 on a donc :

Méthode : parcours de la page

Nous allons maintenant parcourir le contenu du #TEXTE, et chaque fois que nous trouverons un h2, nous le compléterons par un attribut id unique.

Le code

Dans mes_fonctions.php3, voici le code complet à ajouter :

Conclusion et développements possibles

Ce filtre une fois appliqué, vous pourrez faire référence à #ancre1 pour le premier intertitre, #ancre2 pour le deuxième, etc.

Attention cependant, dans certains vieux navigateurs, internet explorer par exemple, les liens vers les id ne fonctionnent pas toujours idéalement, il conviendra le cas échéant si vous voulez à tout prix éviter un dysfonctionnement de remplacer '<h2 id="ancre' . $cId . '">' par '<h2><a name="ancre' . $cId . ' id="ancre' . $cId . '"></a>' (oui, on a fait exprès de mettre un name et un id, mais ce serait trop long à expliquer dans le cadre de cet article).

Parmi les idées de développements possibles, vous pourrez par exemple vous appuyer sur un script en Javascript qui génère automatiquement le sommaire de la page, comme le TOC script de Peter-Paul Koch.


Répondre à cet article



Suivre la vie du site RSS 2.0 | Plan du site | Espace privé | Charte et vie SPIP-Contrib | SPIP | L'autre.net