Quelques mots d’introduction
Ce glossaire présente les caractéristiques suivantes :
Il est interne. Ce glossaire ne fait pas appel à des ressources extérieures. Il exploite un glossaire interne au site (que nous allons créer en utilisant des brèves dans une rubrique dédiée). Il est donc typiquement dédié à des sites très spécialisés, dont le centre d’intérêt fait appel à un vocabulaire très spécifique. Par exemple, si vous créez un site parlant d’architecture antique, vous pourrez définir les mots métope, triglyphe ou architrave si vous craignez que vos visiteurs ignorent ce dont il s’agit.
Il est automatique. Contrairement au raccourci typographique existant actuellement dans SPIP qui renvoie vers Wikipedia (dont on apprécie ou non la qualité des articles ; perso : bof), qui demande une intervention humaine chaque fois qu’on veut créer un lien, le principe du présent script est d’automatiser le référencement. Concrètement, il prendra la forme d’un filtre (à ajouter dans mes_fonctions.php3) à appliquer sur chaque partie de texte où l’on souhaite voir se créer des liens vers le glossaire. Le filtre va parser le texte, y reconnaître les occurences des mots qu’il « connaît ».
Créer les données
Le contenu en lui-même du glossaire sera « physiquement » situé dans une rubrique, que nous appellerons, fort originallement, glossaire. Chaque entrée de notre petit dictionnaire prendra la forme d’une brève, le titre étant le mot lui-même (seul : sans article, pluriel particulier ou autres informations) ; le texte de la brève étant la définition du mot.
Le filtre
Et voici le code de la fonction
N’oubliez pas de configurer le script :
en choisissant de remplacer toutes les occurences du mot (en attribuant la valeur 0 à la variable $eviter_doublons) ou uniquement la première (valeur 1). La fonction first_replace, donnée ici, est nécessaire si vous ne souhaitez afficher que la première occurence. Notez que ce option évitant les doublons ne fonctionne qu’au sein d’un seul champ : si plusieurs champs sur une même page utilisent le filtre, il est possible qu’un même mot soit lié au glossaire plusieurs fois.
en précisant l’id_rubrique de la rubrique contenant le glossaire ;
en configurant correctement l’URL. Si vous utilisez les réécritures Apache (rewrite rules), remplacez l’expression breve.php3?id_breve=".$o[id_breve]." par breve".$o[id_breve].".html
en configurant le CSS (ici, j’ai nommé la classe définissant les liens .glossaire mais vous pouvez évidemment changer tout cela).
Appeler la fonction
La fonction s’appelle comme tout autre filtre de SPIP. Par exemple :
Pour ceux qui veulent voir à quoi ça ressemble, un exemple présentant l’utilisation de quelques entrées du glossaire est visible sur http://tchouktchouk.eu.org/article128.html (il s’agit d’un site qui parle de trains).
Quelques mots encore
Ce filtre requiert pas mal de capacité de calcul de la part du serveur, il est donc fortement conseillé de procéder à quelques tests avant de l’utiliser sur votre site. Quoi qu’il en soit, l’utiliser avec parcimonie et/ou dans des squelettes dont la durée de conservation dans le cache est longue.
Pour que les pages ne deviennent pas illisibles sous la profusion de liens, il me semble préférable, dans la mise en page, d’opter pour un mode d’affichage discret : en ce qui me concerne, j’utilise des liens non soulignés de la même couleur que le texte. Ils ne deviennent visibles qu’au passage de la souris.
On utilise ici des brèves pour stocker les entrées du glossaire : on pourrait aussi réserver un groupe de mots-clés à cet usage. Ca ne change pas grand-chose. A vous de voir la manière dont vous préférer opérer.
Pour la suite
Pour ceux qui auraient envie de poursuivre le travail entamé ici, voici quelques idées :
Il faudrait réfléchir à la question des formes modifiées des mots du glossaire (conjugaisons d’un verbe, pluriel d’un nom), qui ne sont pas reconnues actuellement. Il en va de même pour les mots qui acceptent indifférement plusieurs orthographes et autres problèmes du même accabit (on ne parle même pas ici du multilinguisme).
Il serait intéressant d’écrire une option permettant l’affichage des définitions en javascript : au passage de la souris sur une occurence d’un mot connu, une petite boîte contenant la description du mot s’afficherait.
Enfin, il serait utile d’interfacer cette fonction avec inc-urls-dist.php3 pour faire en sorte que l’écriture des URL se fasse correctement (en mode « standard » ou en mode « html ») sans qu’une intervention soit nécessaire dans le code.

























