SPIP - Contrib

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



Accueil du site > Administration > Le Couteau Suisse

Un glossaire interne pour vos sites

Gestion par mots-clés

dimanche 27 mai 2007, par François Schreuer, Patrice Vanneufville. Dernier ajout jeudi 13 mars 2008


Votre site utilise un vocabulaire technique spécialisé, vous avez une tendance maladive à jargonner sans vous en rendre compte, voici une solution pour que votre prose reste néanmoins accessible au commun des mortels.


Quelques mots d’introduction

Après maintes lectures sur le sujet, le glossaire décrit ici 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 mots-clés dans un groupe dédié). 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 par défaut vers Wikipedia et qui demande une intervention humaine chaque fois qu’on veut créer un lien (comme celui-ci : architrave, codé [?architrave]), le principe du présent outil est d’automatiser le référencement. Concrètement, il s’agit d’une fonction qui va analyser l’ensemble des textes de SPIP à la recherche des termes que vous aurez préalablement répertoriés, et reconnaître toutes les occurences afin de les transformer en liens de glossaire.

- Il n’ouvre pas de nouvelle fenêtre (popup) et fonctionne sur la base des feuilles de style : lorsque le curseur de la souris passe au-dessus du mot répertorié, un petit cadre s’ouvre automatiquement afin d’y placer la définition du mot. Si le lecteur clique sur le mot, alors il se retrouve sur la page du mot-clé, construite à l’aide du fichier de squelette « mot.html ».

- Il n’est visible que du côté public de votre site.

- Il est insensible à la casse (majuscules/minuscules).

- Il accepte tous les accents et les mots composés.

- Il prend en compte le contexte linguistique.

Exemple

Un exemple visuel, c’est toujours mieux qu’un discours...

Voici le texte seul :

Voici le résultat lorsque le mot « architrave » est survolé par la souris :

Créer les données

Le contenu en lui-même du glossaire sera « physiquement » placé dans un groupe de mots-clés nommé « Glossaire » (ou tout autre groupe que vous définissez sur la page de configuration). Chaque mot-clé de ce groupe représente alors une entrée de notre petit dictionnaire, et le texte du mot-clé sa définition.

Pour créer le groupe « Glossaire » en partie privée, vous pouvez cliquer sur ce bouton :

Ensuite, une fois ce groupe créé, ajoutez vos nouveaux mots-clés :

La définition réelle du mot doit être placée dans le "texte explicatif". Mais, au cas où la définition réelle du mot est trop longue, vous pouvez également proposer un résumé dans le "descriptif rapide".

Pour afficher la définition du mots du glossaire, Le plugin retiendra donc de préférence le descriptif rapide. S’il est vide, alors la définition retenue sera le texte explicatif entier.

Note : les raccourcis SPIP sont autorisés dans les définitions.

Plusieurs formes du mot

Si plusieurs formes du mot se réfèrent à la même définition, vous pouvez alors les séparer par un slash (« / ») directement dans le titre du mot-clé.

Exemple pour souligner également le pluriel : « architrave / architraves ».

Balises multi

Afin d’utiliser le glossaire dans plusieurs langues, il est possible d’utiliser les balises <multi> dans le titre et la définition. Le contexte linguistique sera alors pris en compte. Exemple : <multi>[fr]anticonstitutionnellement[en]anticonstitutionally</multi>

Installation

Cet outil est une fonctionnalité du plugin « Le Couteau Suisse » que vous pouvez trouver ici : Le Couteau Suisse.

Pour avoir accès au glossaire, il vous faut donc avoir installé ce plugin en suivant la procédure normale d’installation des plugins SPIP.

Ensuite, veuillez activer l’outil « Glossaire interne » en vous rendant sur la page d’administration du plugin en espace privé (Bouton « Configuration », et onglet « Le Couteau Suisse »).

La définition des mots répertoriés pour le glossaire peut être faite avant ou après cette installation du plugin car ces deux processus sont complètement indépendants. Chaque nouveau mot-clé créé est instantanément pris en compte dans vos textes, après recalcul de la page bien sûr.

Configuration du Glossaire

Certains paramètres peuvent être définis sur la page de configuration du Couteau Suisse :

- Nombre maximal d’occurrences traitées. Si vous choisissez une valeur nulle (valeur par défaut) ou négative, ce sont tous les mots reconnus (parmi les mots-clés du groupe « Glossaire ») qui seront affublés d’une définition. Si par exemple vous choisissez « 2 », seuls les deux premières apparitions de chaque mot seront traitées. Un tel chiffre évite une répétition visuelle trop importante des mots soulignés dans votre texte et économise un peu de temps serveur.
- Groupe(s) utilisé(s). Par défaut, le groupe de mots-clés est : « Glossaire ». Mais vous pouvez avoir besoin de plusieurs groupes si le nombre de mots-clés est trop important dans votre site, ou tout simplement d’utiliser un autre nom de groupe.
- Technique utilisée. Voir ci-dessous le paragaphe sur les modes de fonctionnement du glossaire.

Dépendances

- La librairie jQuery est requise pour l’outil « Glossaire interne » Si le mode Javascript est sélectionné dans la configuration. Ce jeu de fonctions Javascript très utile a été intégré au core dès la version 1.9.2 de SPIP. Pour les versions inférieures, il vous faut installer et activer le plugin Jquery que vous pouvez télécharger ici : http://zone.spip.org/files/spip-zon....]].
- Les styles CSS et les fonctions Javascript du plugin sont insérés grâce à la balise #INSERT_HEAD qui doit absolumet être présente (en un seul exemplaire) dans le header de vos squelettes (entre les balises <head> et </head> des fichiers HTML). Si vous ne trouvez pas cette balise dans vos codes et que le glossaire n’apparait pas avec l’apparence voulue, alors l’outil "Balise #INSERT_HEAD" du Couteau Suisse permet d’insérer automatiquement cette balise sans manipulation de votre part.

Un peu de technique

En résumé :
- Le traitement sur #TEXTE utilisé est : cs_glossaire(propre(%s))
- Le fichier inclus est : outils/glossaire_fonctions.php
- Les styles sont dans : outils/glossaire.css
- Les scripts sont dans : outils/glossaire.js

Le texte situé entre les balises <html> et </html>, <code> et </code>, <cadre> et </cadre>, <frame> et </frame>, <script> et </script>, <acronym> et </acronym>, <cite > et </cite > ou <a> et </a> est protégé : aucun lien de glossaire n’y sera inséré.

Modes de fonctionnement

La page de configuration vous permet de choisir entre deux modes de fonctionnement :
- La solution CSS, qui joue que la visibilité de blocs <span> sensibles au passage de la souris et insérés dans le texte d’origine à côté du mot à définir.
- La solution Javascript/jQuery, qui joue sur l’insertion en temps réel de la définition du mot dans un bloc <div> qui apparait au niveau du mot survolé par la souris.

Ces deux solutions présentent l’avantage d’être automatiques. Aucune nouvelle fenêtre (popup) n’est ouverte.

Voici les tests de compatibilité effectués avec cet outil et différents navigateurs. Il s’agit ici de tester si la petite fenêtre de définition apparait bien au survol de la souris. N’hésitez pas à nous transmettre vos résultats !

NavigateurMode CSSMode JS
Win FF2
oui
oui
Win IE6
non
oui
Win IE7
oui
oui
Win SAF3
oui
oui
MacOSX FF2
oui
oui
MacOSX SAF3
oui
oui

- Le premier mode reste mal interprété par Internet Explorer 6.
- Le second mode ne fonctionnera que si l’utilisateur a autorisé l’interprétation du Javascript.

Dans tous les cas, le mot à définir reste cliquable et renvoie directement sur la page du mot-clé correspondant.

Notes

Techniquement parlant, cet outil agit sur toutes les balises #TEXTE trouvées dans vos squelettes et insère donc des définitions là où il trouve les mots du glossaire : dans vos articles, vos textes de rubrique, etc.

Une condition est cependant nécessaire : le glossaire ne fonctionnera pas si votre squelette utilise la balise #TEXTE étoilée (« #TEXTE* »). En effet, cette syntaxe permet de s’affranchir de tous les filtres automatiques et SPIP renvoie donc le texte brut sans aucune transformation. Si vous tenez absolument à l’étoile, alors il faut placer à la main le filtre du glossaire. Par exemple : [(#TEXTE*|propre|cs_glossaire)] à la place de [(#TEXTE)].

Les mots-clés sont permanents dans votre base de donnée et complètement indépendants du plugin : ils sont gérés par SPIP. Il n’est pas obligatoire d’utiliser ces mots-clés sur vos articles ou vos rubriques. Désactiver par la suite le plugin (ou la fonctionnalité « Glossaire interne » dans le plugin) ne crée bien sûr aucune erreur : simplement les liens de glossaire ne sont plus insérés dans les textes. En effet, ce glossaire ne pratique aucune modification de la base de donnée.

P.-S.

Cette contrib est issue d’une compilations d’idées trouvées sur SPIP-Contrib. Lisez par exemple : Un glossaire interne, Plugin glossaire ou Un raccourci <motxx>, pour des mots-clés dans le texte.


Répondre à cet article

  • Noms composés avec la même racine

    27 mars 2008 10:18, par Olivier Garry

    Bonjour

    un autre problème que je viens d’identifier :

    j’ai trois expressions :

    Conseil des ministres
    Conseil constitutionnel
    Conseil consultatif

    A l’affichage d’un article j’ai bien l’encart avec le terme qui apparait mais pas la définition et ce même si je l’ai mise en descriptif et en texte explicatif ; et que j’utilise css ou javascript c’est pareil.

    Qq’un a rencontré ce problème ?

    Répondre à ce message

    Retour au début des forums

  • Prb des mots vides ou charset ?

    28 février 2008 16:54, par Olivier

    Bonjour

    j’essaie le pugin et je rencontre un prb de non reconnaissance de mon mot-clé dans mes textes quand il est composé d’un « d’ ». Exemple Conseil d’Etat. Par contre pas de problème pour Conseil constitutionnel.

    le problème vient-il de la présence du d (mot vide) ou de l’apostrophe et donc du charset.

    sachant que mon modèle de page est en iso alors que ma base de production est en utf-8 (je sais c’est pas bien).

    Est-ce que l’alignement des charset résoudrait le prb ? ou y-a-t’il un prb de fond du plugin ?

    merci

    Répondre à ce message

    • Prb des mots vides ou charset ? 4 mars 2008 11:45, par Olivier Garry

      Pour ceux qui lieraient ce post plus tard. Le problème vient de la différence du codage des accents et vraisemblablement de différences liées à des copier-coller depuis des docs de type word.

      Du coup, les différences entre accents ont une incidence

      Répondre à ce message

    • Prb des mots vides ou charset ? 4 mars 2008 12:23, par Pat

      Tu as peut-être un exemple public ? C’est vrai qu’il faut distinguer ce qui est copié/collé, de ce qui est tapé directement, soit en partie privée, soit à l’aide de Crayon en partie publique, éventuellement aussi les codes HTML... Il faudrait faire qq essais.

      Le traitement des mots du glossaire, je pense, peut-être amélioré pour régler ces pb d’accents. Un problème à prendre à bras-le-corps !

      Répondre à ce message

    Retour au début des forums

  • Un glossaire interne pour vos sites

    18 novembre 2007 19:09, par Rano

    Hello la zone j’ ai repéré un petit bug, enfin ce serait plus un conflit entre un mot seul et un autre composé.

    Exemple : Mission et Chef de mission

    il apparait alors dans "Chef de mission" ceci : chef de @@GLOSSmission#216@@

    Il a t-il une solution à ce problème ?

    je travaille avec la version 1.9.2b

    salutations

    Répondre à ce message

    • Un glossaire interne pour vos sites 18 novembre 2007 19:37, par Pat

      Mais quel est ton mot-clé ? "Mission" ou "Chef de mission" ? As-tu bien installé la toute dernière version du plugin ? As-tu un exemple en ligne ?

      Répondre à ce message

      • Un glossaire interne pour vos sites 18 novembre 2007 19:46, par Rano

        "chef de mission" et "Mission" sont 2 mots clefs différents.

        Je vais tester avec votre dernières révision :)

        Répondre à ce message

        • Un glossaire interne pour vos sites 18 novembre 2007 20:05, par Rano

          OUI avec la dernière rev.. l’erreur subsiste.

          Bouh

          Répondre à ce message

          • Un glossaire interne pour vos sites 18 novembre 2007 20:53, par Pat

            Il faudrait peut-être intervertir l’ordre des 2 mots-clés... Je jeterai un oeil dans une dizaine de jours à mon retour de voyage, à moins que qq’un trouve la soluce avant moi !

            Bon courage.

            Répondre à ce message

            • Un glossaire interne pour vos sites 19 novembre 2007 09:56, par Rano

              Nop, lorsque l´on inverse les mots clefs... en l´occurrence en passant "mission" avant " chef de mission", le second se désactive.

              Bon voyage :)

              Répondre à ce message

              • Un glossaire interne pour vos sites 20 novembre 2007 11:20, par Odidi

                Bonjour,

                j’ai le même problème que Rano car j’ai les deux mots clés : floraison et préfloraison.

                D’autre part, je souhaiterai limiter l’application de ce glossaire automatique à un secteur de mon site (ex : le secteur 1 par exemple qui propose des contenus + encyclopédiques que le reste). Je n’ai pas encore trouvé de solution sur les forums. .. Quelqu’un l’a-t-il déjà fait ?

                Je ne peux pas utiliser #TEXTE* par exemple, car j’ai d’autres filtres ailleurs (notamment des liens vers des articles virtuelles)

                Merci d’avance,

                Répondre à ce message

            • Un glossaire interne pour vos sites 2 janvier 2008 12:45, par Roland

              Ayant rencontré le même problème, je l’ai résolu en intervertissant l’ordre de définition des mots dans le glossaire.

              J’avais défini cyclo (n°112) puis école cyclo (n°114). J’obtenais toujours le lien sur le mot cyclo seul même lorsque j’utilisais l’expression école cyclo.

              J’ai donc permuté les deux définitions : cyclo (n°114) et école cyclo (n°112). Et maintenant si j’ai école cyclo dans le texte j’obtiens bien lé définition 112 alors que si le mot cyclo ne suit pas école, j’obtiens la définition 114.

              Il faut donc bien préparer l’ordre de définition de ses mots lorsqu’on utilise des expressions contenant des mots eux aussi définis : d’abord les expressions, ensuite les mots.

              Nota : pas facile à expliquer !

              Répondre à ce message

              • Un glossaire interne pour vos sites 26 mars 2008 16:49, par Olivier Garry

                si c’est très clair, par contre c’est un peu compliqué en gestion quand le glossaire est évolutif (ce qui est le cas par définition avec de nouvelles publications).

                Est-ce quelqu’un a essayé en utilisant la numérotation spip (01. aaaa) qui permettrait peut-être d’anticiper des nouvelles définitions en les mettant dans un ordre logique choisi ?

                Répondre à ce message

              • Un glossaire interne pour vos sites 27 mars 2008 09:51, par Olivier Garry

                je viens de retester le cas de chef de mission et mission en créant d’abord le mot-cle chef de mission et ensuite mission et je retrouve le meme probleme évoqué plus haut.

                Pas sur donc que l’ordre de déclaration résolve le problème

                Répondre à ce message

    • Un glossaire interne pour vos sites 28 mars 2008 02:02, par Pat

      Ce pb vient d’être résolu...

      Attention donc à bien créer (ou placer) le mot clé composé (contenant) AVANT le mot clé simple (contenu).

      Répondre à ce message

    Retour au début des forums

  • Liens ne se créent pas

    12 mars 2008 14:58, par Rainer

    Bonjour,

    j’ai essayé le glossaire avec le couteau suisse 1.7.16.11 et spip 1.9.2 et je n’arrive pas à le faire marcher. C.a.d que les liens glossaire ne se créent pas dans le texte.

    Une idée

    Merci Rainer

    Répondre à ce message

    Retour au début des forums

  • Bonjour, je trouve ce plugin particulièrement utile et j’ai voulu aller un peu plus loin en l’utilisant pour lier de façon permanente un article ou une breve aux mots clés trouvés. Ca ouvre de nouveaux horizons car cela permet de construire automatiquement une nouvelle arborescence du site basée sur les mots clés, sans avoir à les saisir pour chaque article/breve. Un gain de temps considérable.

    Pour ce faire, il suffit de demander à Spip d’enregistrer l’id du mot-clé et l’id de l’article dans la table spip_mots_articles (ou l’id de la brève dans la table spip_mots_breves) et de s’assurer que l’opération est renouvelée à chaque modification de l’article ou de la brêve.

    Dans le fichier glossaire_fonctions.php, j’ai donc ajouté les lignes suivantes dans la fonction cs_rempl_glossaire($texte) :

    ligne 46 (pour reconnaître l’article ou la brêve et effacer les mots clés à chaque modif) :

    $id_article = intval(_request(’id_article’)) ; $id_breve = intval(_request(’id_breve’)) ; sql_delete("spip_mots_articles", "id_article=$id_article") ; sql_delete("spip_mots_breves", "id_breve=$id_breve") ;

    ligne (97 devenue 101) (pour enregistrer dans la table concernée) :

    spip_query("INSERT INTO spip_mots_articles (id_mot,id_article) VALUES ($id,$id_article)") ; spip_query("INSERT INTO spip_mots_breves (id_mot,id_breve) VALUES ($id,$id_breve)") ;

    Dès lors, à chaque création ou modification d’un article ou d’une brêve, les mots clés reconnus par le glossaire sont automatiquement liés à l’article ou la brêve. En cas de modification de l’article ou de la breve, les mots clés devenus sans objet sont automatiqument supprimés. Le rêve...

    Répondre à ce message

    • C’est une idée très intéressante. Les exemples de code que tu donnes doivent être entourés des balises <code></code> ou <cadre></cadre> pour être plus lisibles.

      Jusqu’à présent, aucun outil du Couteau Suisse ne modifiait la base de donnée directement. Ta proposition agit sur la base de donnée à chaque calcul de page : il s’agit là d’une opération particulière à signaler....

      Répondre à ce message

      • Je continue de travailler là dessus d’autant que le glossaire interne me plait beaucoup... Mais j’ai l’impression qu’il ralentit de manière importante l’affichage des pages, surtout à partir du moment où on a plus d’un millier de mots clés (c’est mon cas) à analyser.

        Je verrais bien une solution qui calculerait les élements de glossaire dans l’espace privé en les conservant lors de l’édition d’un article, mai qui n’aurait pas besoin de les recalculer dans l’espace public à chaque affichage.

        Répondre à ce message

        • oui, le glossaire n’est pas encore optimisé. Le Couteau Suisse possède une fonction de préinstallation de tous les outils qui en ont besoin, faite lors de l’affichage de la page de config ou si le parametre d’url cs=calcul. Les smileys ou les chatons utilisent cette procédure de façon simple en précalculant les images dont il ont besoin et en les stockant dans les métas de SPIP.

          L’effet sablier est dû au fait qu’une optimisation sur 1000 mots prends de la place en mémoire et accélère les traitements. Pas d’optimisation du tout ralenti le traitement, mais prends moins de place en mémoire... A voir donc !

          Il ne faut pas oublier que le glossaire sur une page n’est calculé qu’une fois par jour en principe, grâce au cache de SPIP...

          Répondre à ce message

    Retour au début des forums

0 | 25 | 50 | 75 | 100



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