SPIP-Contrib

SPIP-Contrib

عربي | Deutsch | English | Español | français | italiano | Nederlands

286 Plugins, 197 contribs sur SPIP-Zone, 226 visiteurs en ce moment

Accueil > Rédaction > Glossaires > Glossaire automatique > Un glossaire automatique

Un glossaire automatique

31 juillet 2005 – par Thomas – 12 commentaires

3 votes

Le but est d’obtenir un glossaire automatique de différents termes, gérant notamment la reconnaissance par expressions régulières.

Présentation

J’ai commencé à coder ce petit glossaire car je n’étais pas satisfait de ceux que j’avais pu trouver auparavant. Ce que je désirais :

  • une reconnaissance des mots par expression régulière (ainsi insensibilité à la casse, permet de sélectionner une même définition pour des termes différents)
  • la définition d’un mot s’affiche lorsque l’on passe la souris au dessus, ou en lien hypertexte si la définition est trop longue.
  • pouvoir gérer plusieurs ensembles de définitions, avec des définitions différentes pour le même mot.
    L’intérêt est de pouvoir utiliser un jeu de définitions ou un autre suivant le public auquel s’adresse l’article (langue, niveau technique, etc). Dans mon cas, le glossaire est utilisé sur un site de jeux de rôle, et nous avions donc besoin d’une définition pour les joueurs et une pour les maîtres, chacun ne devant lire que celle le concernant.

Il est intéressant de noter que le remplacement du terme n’a pas lieu si celui-ci se trouve dans un tag HTML, pour éviter par exemple de briser un lien hypertexte.

Pour un exemple d’article utilisant ce glossaire, consultez cet article.

Mise en place

  • Créez tout d’abord une rubrique glossaire, et une sous rubrique par jeu de définitions (par exemple utilisateurs débutants, utilisateurs avancés, etc).
  • Créez ensuite le groupe de mots clés Audience, et créez-y un mot-clé pour chaque sous rubrique créée auparavant.
  • Créer les mots clés glossaire et glossaire_un : le premier indique que vous souhaitez afficher les définitions de tous les termes disponibles, le second indique de ne le faire que sur la première occurence de chaque terme.
  • Rajouter enfin la fonction glossaire ci-dessous au contenu de votre fichier mes_fonction.php3.

Il vous suffit de reporter les numéros des mots clés dans la fonction glossaire, puis de remplacer dans votre squelette #TEXTE par [(#TEXTE|glossaire{#ID_ARTICLE})]

Utilisation

Pour ajouter un nouveau terme au glossaire, il suffit de publier un nouvel article dans la rubrique concernée ; le texte de cet article constitue la définition du terme.

Le sur-titre de l’article définit le terme à reconnaître. On y indiquera le code HTML des caractères spéciaux (è pour è, etc). Pour plus de détails sur l’utilisation d’expression régulières dans le surtitre, vous pouvez consulter cet article.

Le code

Voici la fonction à rajouter dans votre fichier mes_fonctions.php3, et à modifier.

la fonction glossaire :

  • Pour gérer deux ensembles de définition, reportez les identifiants des mots-clés et des rubriques contenant les définitions dans le code de cette fonction.
  • Pour ne gérer qu’un ensemble de définition, le plus simple est d’indiquer dans le code ci-dessus que le deuxième jeu de définition n’existe pas ; pour cela, modifier

    en

  • Pour au contraire en gérer plus de deux, rajouter des entrées du type $motcléA3=xx dans les définitions, et des lignes du genre case $motcleA3: $id_glossaire = $glossaireA3; break; au niveau de l’instruction switch.
    On aura par exemple, pour 3 ensembles d’entrées :

N’hésitez pas à proposer des améliorations ou à signaler des erreurs...

P.-S.

L’expression régulière qui sert à remplacer dans tout le texte sauf dans les balises HTML provient de http://fr.php.net/preg_replace. Elle semble correcte et meilleure que celle que j’utilisais au début.

Dernière modification de cette page le 28 mai 2007

Retour en haut de la page

Vos commentaires

  • Le 28 mai 2007 à 03:34, par Patrice Vanneufville En réponse à : Un glossaire automatique

    Bonjour,

    Un glossaire interne a été pris en charge par le Couteau Suisse.
    Pour plus d’infos, c’est ici : Un glossaire interne pour vos sites.

    Entre autres :
    -  Les définitions sont stockées par mots-clés : groupe « Glossaire »
    -  De nombreuses balises HTML sont préservées
    -  Le survol de la souris affiche directement la définition du mot.
    -  Le cadre de définition est configurable par css
    -  Pas de nouvelle fenêtre ouverte (popup)
    -  La recherche est insensible à la casse.
    -  Pas de filtre à ajouter dans le squelette

    Répondre à ce message

  • Le 20 mars 2007 à 11:54, par Thomas En réponse à : Un glossaire automatique - SPIP 1.9

    Ayant migré mon site vers SPIP 1.9, j’ai également migré ce plugin. En attendant d’avoir le temps de relire le code et de modifier cet article, vous pouviez trouver une version préliminaire ici et une version simplifiée du glossaire

    Répondre à ce message

  • Le 20 janvier 2007 à 08:20, par Misterfred En réponse à : Un glossaire automatique

    Bonjour,

    J’utilise ce glossaire automatique qui marche très bien pour les articles.

    Le site que je suis en train de préparer pour mon travail utilise beaucoup les rubriques et assez peu les articles en fait. Le glossaire automatique n’a donc que très peu d’utilité s’il ne prend pas en compte les textes des rubriques.

    J’ai cherché comment modifier cette fonction pour qu’elle fonctionne aussi sur les rubriques mais sans succès :-( . Quelqu’un pourrais m’éclairer ? sachant que j’ai aucune notion du php....

    pour info, j’utilise encore spip 1.8

    Merci

    misterfred

    Répondre à ce message

  • Le 20 janvier 2007 à 08:18, par Misterfred En réponse à : Un glossaire automatique

    Bonjour,

    J’utilise ce glossaire automatique qui marche très bien pour les articles.

    Le site que je suis en train de préparer pour mon travail utilise beaucoup les rubriques et assez peu les articles en fait. Le glossaire automatique n’a donc que très peu d’utilité s’il ne prend pas en compte les textes des rubriques.

    J’ai cherché comment modifier cette fonction pour qu’elle fonctionne aussi sur les rubriques mais sans succès :-( . Quelqu’un pourrais m’éclairer ? sachant que j’ai aucune notion du php....

    Merci

    misterfred

    Répondre à ce message

  • Le 12 octobre 2005 à 01:23, par mitch En réponse à : Un glossaire automatique

    Salut à tous,

    merci beaucoup pour cette contribution, qui est une très bonne idée...
    Mon seul problème, qui est de taille, est que je ne parvient pas à la faire fonctionner.

    Je suis en SPIP 1.8.

    Voici ce que j’ai fait :
    -  j’ai créé un groupe de mot clé Audience
    -  j’ai créé 4 mots clé dans ce groupe qui sont : sigle et technique (mes 2 groupes de definition) + glossaire et glossaire_un (peut être faut-il les créer dans un groupe différent, mais je ne pense pas)
    -  j’ai créé une rubrique glossaire contenant 2 sous-rubriques nommées sigle et technique
    -  j’ai reporter les ID des mots clefs et des rubriques concernées dans le filtre glossaire dans mes_fonctions.php3
    -  j’ai créé les articles correspondants aux mots que je voulais voire figurer dans le glossaire, en remplissant les 3 champs sur-titre, titre et texte
    -  j’ai lié les articles dans lesquels je voulais voire fonctionner le glossaire au mots clefs glossaire et soit à sigle soit à technique

    Je n’ai aucune erreur technique, mais rien ne se passe...
    Je ne comprends pas...

    Quelqu’un peut-il m’éclairer, j’ai peut être oublier un truc.

    Merci d’avance.

    Répondre à ce message

  • Le 19 août 2005 à 13:38, par mpm En réponse à : > Un glossaire automatique

    Salut,

    j’ai essayé d’installer ce glossaire qui me serait d’une très grande utilité.. Mais malheureusement je n’arrive pas à le faire fonctionner.. J’ai recommencé X fois et rien n’y fait.

    Il y a une toute petite erreur dans le code ici

    Il faut mettre un espace (ou intervertir...) entre le ? et le > ----> ?>)#xsi" ;
    de la dernière ligne sinon le code php se termine prématurément.

    Je me demande si j’ai été claire. Bon sinon et bien mon problème est que ça ne marche pas du tout. Rien ne se passe, les mots clés sont créés, la rubrique et les sous-rubriques aussi etc... mais pas moyen de le faire fonctionner.
    Par contre je n’ai aucun message d’erreur indiqué..
    Quelqu’un peut-il m’aider ?

    • Le 21 août 2005 à 13:55, par Thomas En réponse à : > Un glossaire automatique

      Il faut mettre un espace (ou intervertir...) entre le ? et le > ----> ?>)#xsi" ; de la dernière ligne sinon le code php se termine prématurément.

      Hum nan ; je ne sais pas pourquoi le code termine prématurément, mais si tu fais ca, l’expression régulière ne va plus fonctionner correctement, et en effet, aucun mot ne sera reconnu... Normalement, le code publié devrait fonctionner, mais ca fait un certain temps que je n’ai pas testé, je vais essayer de regarder ca avec les dernières versions...

    • Le 26 septembre 2005 à 23:40, par istreen En réponse à : > Un glossaire automatique

      J’ai télécharger la derniére version de SPIP-v1-8-2-d.
      je ne trouve pas le fichier mes_fonction.php3

      ou se trouve t’il ?

      Merci pour toutes les infos de votre site :)

    • Le 29 septembre 2005 à 09:16, par ? En réponse à : > Un glossaire automatique

      mes_fonctions.php3 se trouve à la racine du site ; s’il n’existe pas, il suffit de l’y créer.

    Répondre à ce message

  • Le 22 août 2005 à 14:51, par Thierry En réponse à : > Un glossaire automatique

    Tout d’abord merci pour cette contrib que je trouve géniale.

    Mais je reconnais qu’il m’a fallu un peu de temps pour comprendre son fonctionnement (le temps de comprendre le code !). Car, à mon humble avis, il manque une explication fondamentale : les articles pour lesquels on souhaite que le glossaire fonctionne doivent être associés à au moins deux mots clés.

    1. L’article en question doit d’abord être associé au mot-clé glossaire ou glossaire_un : on définit ainsi si la définiton doit apparaître à chaque occurence du mot dans l’article (mot-clé glossaire) ou uniquement sur la première occurence (mot-clé glossaire_un).
    2. L’article doit aussi être associé au mot-clé lié au jeu de définitions. Ainsi on spécifie si les définitions qui apparaîtront correspondent au niveau utilisateurs débutants, utilisateurs avancés, etc pour reprendre l’exemple donné dans la contrib.

    Et avec ça, ça marche super bien, même s’il faut se méfier de certains mots : si l’on veut définir l’acronyme SI (Système d’Information) il faudra le rédiger S.I. dans les articles et définir le surtitre en S\.I\. sinon on risque d’avoir des surprises...

    • Le 2 septembre 2005 à 10:30, par Thierry En réponse à : > Un glossaire automatique

      Autre détail : la balise HTML utilisée n’est pas reconnue par IE (en tout cas pas sur mon IE6). Il est alors préférable de remplacer la balise <abbr> par <acronym> qui, elle, est reconnue. Néanmoins, même si IE reconnait <acronym>, il ne la souligne pas pour autant comme le fait Firefox. J’ai donc rajouté dans mon fichier typographie.css le texte suivant :

      acronym {
              border-bottom: 1px dotted #a3a3a3;
      }

    Répondre à ce message

  • Le 21 août 2005 à 14:01, par Thomas En réponse à : > Un glossaire automatique

    Je me permet de rajouter cela, posté dans la partie admin par ’le Jamais Content’ :

    gérant un site en utf-8, j’ai un peu modifié la fin du filtre qu’on place dans mes_options, parce que sans cela, ça me semait une misère pas croyable :

    // on va à la fin du filtre là où il y a...
    else
    {
           $chaine=preg_replace($patterns, $replacements, $chaine);
    }

    // puis on rajoute...
    // (on prend les même et on recommence)
    #définition des remplacements
    $indice=0;
    $patterns[]="";
    $replacements[]="";

    // on refait le tableau
    $trans = get_html_translation_table(HTML_ENTITIES);
    $trans["<"] = "<";
    $trans[">"] = ">";
    $trans["&"] = "&";
    $trans["\""] = "\"";
    $trans["'"] = "'";

    // array_flip !
    // on remet le toutim dans l'état où on l'avait pris
    // et miracle, ça redevient lisible - fin de la sueur froide-
    $trans = array_flip($trans);
    $chaine = strtr($chaine, $trans);

           }
    }
    return $chaine;

    Répondre à ce message

Répondre à cet article

Qui êtes-vous ?

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici Les choses à faire avant de poser une question (Prolégomènes aux rapports de bugs. )
Ajouter un document

Retour en haut de la page

Ça discute par ici

  • Un retour d’expérience d’utilisation de Formidable

    26 octobre – commentaires

    Il s’agissait de créer un formulaire d’inscription à un évènement modérer les inscriptions dans le privé publier les inscriptions dans le public Nous avons discuté de cette présentation lors de l’apéro SPIP du 15 février 2016 à la Cantine (...)

  • Métas +

    3 décembre – 14 commentaires

    Améliorez l’indexation de vos articles dans les moteurs et leur affichage sur les réseaux sociaux grâce aux métadonnées Dublin Core, Open Graph et Twitter Card. Installation Activer le plugin dans le menu dédié. Dans le panel de configuration, (...)

  • Adaptive Images

    15 novembre 2013 – 69 commentaires

    Un plugin pour permettre aux sites responsive d’adapter automatiquement les images de la page à l’écran de consultation. Adaptive Images, que l’on pourrait traduire par Images adaptatives, désigne la pratique qui vise à adapter les taille, (...)

  • Social tags

    8 septembre 2008 – 428 commentaires

    Le plugin Social Tags permet d’ajouter des icônes de partage de liens vers les sites tels que Digg, Facebook, Delicious.... Une fois le plugin installé et activé (voir doc.), le choix des sites se fait via un menu de configuration. Insertion (...)

  • Module de Paiement Stripe

    17 octobre – commentaires

    Stripe est un prestataire de paiement externe https://stripe.com/fr qui propose une API moderne et une interface de paiement extrêmement conviviale et efficace. Ce module permet les paiements à l’acte et les paiement récurrents. Configuration (...)

Ça spipe par là