[spip-dev] Signets dans un texte

Bonjour,

J'ai eu à faire face à l'affichage de textes assez longs, et notamment d'un glossaire. Nous avons décidé de faire figurer à droite du texte une liste de signets pour pouvoir se positionner directement sur le terme recherché.

J'ai, pour cela, effectué des modifications dans le fichier "inc-calcul-squel.php3", et adjoint un fichier "mes_fonctions.php3".

L'objectif est de générer pour un terme référencé dans un texte en l'entourant de balises <ref> et </ref> le code :
<a name="terme" class="la_ref">terme</a>
et d'accumuler dans une matrice la liste des termes pouvant être ensuite affichée ailleurs sur la page dans l'ordre d'apparition des termes dans le texte ou par ordre alphabétique.
La ligne suivante étant générée pour chaque terme :
<a href="#terme" class="vers_ref">terme</a><br>
L'ajout des classes permet de décider de la présentation par une feuille de style.

Je joins le fichier "inc-calcul-squel.php3" modifié et le fichier "mes_fonctions.php3" dans lequel sont décrites les modifications faites.

Vous pouvez voir le résultat sur la page :
http://www.actionconsommation.org/publication/ac-normale_plus.php3?id_rubrique=33&id_article=53
Les lignes de la liste "expressions" sur la droite pointent dans l'article central.

J'aimerais avoir vos réactions sur cet outil et sa possible généralisation.

Merci.

Maurice Frankel

mes_fonctions.php3 (2.04 KB)

inc-calcul-squel.php3 (52.5 KB)

Vous pouvez voir le résultat sur la page :
ActionConsommation - L'Actu Conso ou comment bien acheter
Les lignes de la liste "expressions" sur la droite pointent dans l'article central.

J'aimerais avoir vos réactions sur cet outil et sa possible généralisation.

Pour la généralisation, je ne sais pas... La façon d'appeler les "signets"
depuis les squelettes pose problème. Je n'arrive pas à visualiser ton
squelette, on dirait que le serveur essaie de l'exécuter :

A part ça, plutôt que d'introduire une balise spécifique, je trouverais
beaucoup plus simple d'utiliser les intertitres : {{{Mon titre}}}
renverrait automatiquement "Mon titre" vers un signet.

a+

Antoine.