Dictionnaires

Présentation

Le plugin Dictionnaires sert à définir des choses, regroupées dans des dictionnaires. Une définition peut avoir plusieurs statuts comme les articles, tandis qu’un dictionnaire peut juste être actif ou inactif. Lorsqu’un dictionnaire est activé, cela signifie que ses définitions seront cherchés dans tous les textes du site.

Par défaut, deux types de définitions sont disponibles : normale ou abréviation (sigle, acronyme ou autre).

Chaque définition peut lister des termes supplémentaires qui seront reconnus aussi (le pluriel par exemple). Pour les abréviations, le système ajoute automatiquement une version avec p.o.i.n.t.s, il n’est dont pas nécessaire de les ajouter vous-mêmes.

Un plugin proche existe : le plugin Glossaire mais SPIP a tendance à mouliner lorsque la liste des définitions (un groupe de mots-clés) est trop importante. Moins proche et entièrement manuel, le raccourci Wikipedia de SPIP : [?Wikipedia].

L’avantage du plugin Dictionnaires est qu’il demande moins de ressources et qu’il présente deux nouveaux objets qui suivent l’analogie Rubriques/Articles et peuvent chacun recevoir des logos et des documents.

Fonctionnement

Lorsqu’un dictionnaire est actif, toutes ses définitions publiées sont recherchées dans les textes qui passent par la fonction propre(). Les termes trouvés sont alors remplacés par une fonction personnalisable (cette fonction est aussi personnalisable suivant le type de définition).

La fonction par défaut ajoute un lien « Définition » en note <sup> après le mot, lien qui pointe vers la page de la définition (pour info, le plugin fournit des squelettes compatibles avec Zpip pour afficher une définition et un dictionnaire).

Ce comportement n’est fait que pour les premières occurrences de chaque texte. Ceci est personnalisable depuis la page de configuration du plugin.

Une option « sensible à la casse » est disponible pour chaque définition. Ceci indique au détecteur de prendre en compte uniquement le terme exact (« ce » ne sera pas reconnu pour « CE »).

Pour chaque dictionnaire, vous pouvez définir le type par défaut des nouvelles définitions qui y seront crées.

Lors de l’installation, le plugin propose une fonction d’importation des acronymes définis à l’aide du plugin Forms&Tables. Les éléments sont importés en tant qu’abréviations (modifiable ensuite).

Installation du plugin

L’installation se fait par la méthode habituelle, Dictionnaires ne demande que le plugin Saisies comme plugin complémentaire pour fonctionner.

Configuration du plugin

Une fois l’installation faite, le menu « Configuration » de SPIP affiche un item « Dictionnaires ».

Par ce lien, vous arrivez à la page « Configurer les dictionnaires » qui propose deux cases déjà cochées :

  • Remplacer uniquement la première occurrence d’une définition
  • Remplacer uniquement la première occurrence d’une abréviation

Cela vous permet d’afficher les définitions sur tous les termes d’un texte ou seulement la premier fois qu’ils sont rencontrés.

La constante define('DICTIONNAIRES_DETECTION_MANUELLE', true); permet de spécifier que l’auteur des squelettes se charge d’appliquer le filtre |definitions sur les balises souhaitées, et non sur tout les textes qui passent par la fonction propre().

Saisie des dictionnaires

Il faut d’abord créer un ou des dictionnaires et, pour chacun, créer des définitions. Le menu « Édition » de SPIP contient aussi une entrée « Dictionnaires ». Il vous suffit de cliquer sur « Ajouter un nouveau dictionnaire ».

Liste des champs pour l’objet Dictionnaire :

  • Titre (champ obligatoire)
  • Descriptif (champ)
  • Abréviation par défaut (case à cocher)

Cet objet a deux statuts possibles : Inactif (par défaut)/Actif. Un dictionnaire actif aura ses termes détectés dans les contenus du site.

Accessoirement, le plugin permet d’utiliser un raccourci supplémentaire : [mon texte->dictionnaireXXX].

Saisie des définitions

Une fois un dictionnaire créé, sa page de "vue" propose d’ajouter des définitions.

Cliquer sur « Ajouter une nouvelle définition » donne une liste de champs pour l’objet Définition :

  • Titre (champ obligatoire)
  • Dictionnaire (menu déroulant, obligatoire)
  • Texte (champ)
  • Termes (champ listant "Des termes supplémentaires qui permettront de détecter la définition, séparés par des virgules.") [1]
  • Abréviation (case à cocher, « Est-ce un sigle, un acronyme ou autre abréviation ? »)
  • Sensibilité à la casse (case à cocher : « La détection de ce terme sera sensible aux minuscules et majuscules. »)

Cet objet a trois statuts possibles : « proposé à l’évaluation » (par défaut)/« publié en ligne »/« à la poubelle ».

La date de création d’une définition ne peut être modifiée que sous le statut « publié en ligne ».

Accessoirement, le plugin permet — ici aussi — d’utiliser un raccourci supplémentaire : [mon texte->definitionXXX].

Utilisation dans vos squelettes

Comme cité plus haut, le plugin fournit des squelettes compatibles avec Zpip pour afficher une définition et un dictionnaire. Vous pouvez consulter ces squelettes dans le répertoire contenu du plugin.

Le plugin met aussi aussi à disposition deux modèles utilisables depuis vos squelettes ou le texte de vos pages :
-  <dictionnaires> affiche la liste des dictionnaires
-  <dictionnaire> affiche la liste des définitions d’un dictionnaire.

Les balises de l’objet « dictionnaire » sont :

  • #ID_DICTIONNAIRE
  • #URL_DICTIONNAIRE
  • #LOGO_DICTIONNAIRE
  • #TITRE
  • #DESCRIPTIF

Les balise de l’objet « definition » sont :

  • #ID_DEFINITION
  • #URL_DEFINITION
  • #LOGO_DEFINITION
  • #TITRE
  • #TEXTE
  • #TERMES
  • #INTRODUCTION

Notes

[1Par exemple, pour la définition « Dioïque », vous pouvez aussi lister les termes : dioïques, dioïcie ; pour la définition « Tomenteux », les termes, tomenteuse, tomenteuses…

Discussion

2 discussions

  • 21

    Hello, and thanks for the plugin,
    I was trying to use this plugin but found that I cannot have a proper way to have template specific to a language, despite I created definition.html for the default language of the site which is RTL and definition.en.html for English. I also enabled the translation function for the definitions.
    How can I code this feature and is it possible for you to add it in the next release ?
    Thank you

    • Hello, since SPIP 4.X you have to install some plugin for that (before template by lang code was in the default distribution) : https://www.spip.net/en_article4363.html?var_lang=en

      Did you have it already ?

    • Good day,
      I have used the documentaion provided in https://www.spip.net/en_article4363.html?var_lang=en and created template variants :
      definition.html for rtl which is the primary language of the multilingual site.
      definition.en.html for ltr/en
      dictionnaire.html for rtl
      dictionnaire.en.html for ltr/en
      I do not have installed any extra plugin to have Variants of templates for definition and dictionnaire. But I have enabled the translation of the definitions.
      By plugin, if you mean something like Squelettes par Rubrique, I couldn’t find such for for definition and dictionnaire. Is there any ?

    • Hello,
      I just enabled translation feature for the definitions and created template variants as following :
      dictionnaire.html for rtl (the primary language of the multilingual site)
      dictionnaire.en.html
      definition.html
      definition.en.html
      By plugin, if you mean something like Squelettes par Rubrique, I couldn’t find such for the dictionnaire and definition.

    • The documentation we both linked, explicitely says that you *have to* install the plugin (the link is in the doc, you just have to follow), to be able to do variants by lang code.

    • Right. I have that plugin enabled for the sections long before. But that doesnæt help with the dictionary.
      The problem is that despite the language of the definition (English) and the existence of the template file definition.en.html, it still returns definition.html which is for the definitions in the default language of the site unless I manually add  ?lang=en at the end of the URLs.

    • Ooook so we put aside that source of problem if you have it. So I had to dig deep in the code to find an issue for all content that are not in sections : https://git.spip.net/spip/spip/issues/5783

    • ok, hopefully, we can get it fixed as soon as possible.
      The same issue seems to be with author template variants.

    • Seems #TEXTE and #INTRODUCTION produce the same output, and there is no field in the private area for #INTRODUCTION.

    • Is there any way to activate public forums for definitions ?

    • new feature : you ought to create a squelette and dedicated code for that

    • @Kamran : public comments are always specific to your public templates, so there is nothing to « activate », but just front integration. For that, the very simpliest way is to use the Comments plugin and include its generic inclusions for that. Like

      <INCLURE{fond=inclure/forum, objet=definition, id_objet=#ID_DEFINITION, ajax}>
      

      and then style as you want.

      Comments 3 pour SPIP 3

    • Perfect. I added a public forum by adding id_definition ? to the BOUCLE_comments in /squelettes/inclure/forum.html.
      I also used the plugin Champs Extras to have some fields for pronunciations and word classes.
      I wonder, what if id_definition can inherit the full features of the article while it is still an object, or have regular sections and articles for dictionaries and articles while they have their own URL sets ?

    • You don’t have to (and it’s always better to not) modify inclusions from plugin. Normally you can pass « objet=definition » and « id_objet=#ID_DEFINITION » to work properly, it’s generic for any object.

      Don’t really understand the need of the last question :p

    • The page doesn’t load completely if I use

      <INCLURE{fond=inclure/forum, objet=definition, id_objet=#ID_DEFINITION, ajax}>

      But the forum and the comments load by adding id_definition ? to the BOUCLE of /squelettes/inclure/forum.html

      <BOUCLE_comments(FORUMS?) {id_rubrique ?}{id_article ?}{id_definition ?}{id_breve ?}{id_syndic ?} {par date}>
      .....
      </BOUCLE_comments>

      and include the page :

      <INCLURE{fond=inclure/forum,id_definition} />

      By inheriting the full features of the article I mean having, for example, the author for definitions.
      Seems, still no fix for the template variants.

    • Sorry, Seems my last comment was filtered. Anyway :
      By inheriting all features of the article, I mean having all features such as author, that the articles have while it has its table in the database as an object.
      Forum doesn’t load by adding “objet=definition” and “id_objet=#ID_DEFINITION”. I could load the forum when I add id_definition ? to the BOUCLE of my template file /squelettes/inclure/forum.html.
      I have updated SPIP to the latest, but still, the issue with thetemplate variants is not fixed.

    • to explain better, here is an example page for definitions using plugin Dictionnaires.
      Here isalso an example article to compare article futures using for definitions. In this example, I can get the benefits of all article features, but while having all article features, it could be much better to have the definition as the object, incrementing definition, and not the article. In the case of Dictionnaires vs RUBRIQUES, Dictionnaires is much better but still can manage with RUBRIQUES.

      Another question :
      How the definitions can get the same search benefits as the SPIP articles ? The internal SPIP search works well with definitions, but I mean search engines.
      In my case, when posting a new article, search engines like Google index the article almost immediately. One reason is that the site’s backend file for articles can be submitted to search engines as a sitemap. Any possibility of having an XML/RSS backend file for definitions ?

    • Hello Kamran, end of the year festivities here, I will try to answer at the end of the week or next week :)

    • right, enjoy, and thanks again for the plugin !

    • Hello and happy new year,
      I installed two plugins, Auteurs partout and Statistiques des objets to have author and statistic for definitions. As you know adding more plugins has its consequences.
      Still, I wonder how to have RSS/XML for definitions like backend Syndication files.

    Répondre à ce message

  • 10

    Bonjour. Fantastique plugin ! Comment lister les titres des définitions se référant à un mot-clé, sur une page mot-clé, où on liste des articles, rubriques, sites, etc. d’un mot-clé ?

    • bonjour,

      tu peux construire une page dictionnaire.html qui apparait à l’adresse :
      mon site/ ?dictionnaire1

      <BOUCLE_principale(DICTIONNAIRES) {id_dictionnaire}>
       etc 

      il y a des briques dans les modèles du plugin

    • en fait, j’ai répondu à côté.

      Dans ta page de mot-clé tu peux utiliser les boucles DEFINITIONS, les champs #TITRE et les id_mot comme dans les autres boucles objets

      J’ai bien compris ?

    • Bonjour, j’ai mis en place ce code, mais sans succès :

    • Désolé mais pour l’instant je n’ai pas compris ce que tu cherches à faire, à obtenir, du coup difficile d’aider. Cela a l’air très propre à ton site, aux liaisons que tu fais dedans. Mais comme je n’ai pas le contexte, l’architecture des contenus, je ne comprends pas de quoi il s’agit.

    • Merci de votre patience et attention. J’ai cette page avec une liste d’articles, etc par mot-clé, comme tous les sites ont, e crois. Par ex. : http://sofia.hyperlogos.info/spip.php?mot1018

      Je voudrais qu’une liste de définitons soit aussi présenté sur cette même page. J’ai mis le code ci-dessus sans succès. Merci de faire une observation.

    • Bé la boucle ci dessus fonctionne si t’as effectivement des définitions *liées aux mots clés* mais ça j’en sais rien.

    • je vois des définitions liées aux articles liés à ce mot clé.

      Est-ce les définitions apparaissant dans ces articles que tu veux voir lister sur ta page mot ?

    • Non, je voudrais bien que la page mot-clé puisse montrer non seulemente les articles, etc, mais aussi les définitions que j’avais associé à ce mot-clé.

    • En effet, cela m’intéresse aussi : peut-on associer des mots-clés aux définitions ? Actuellement, cette fonction ne semble pas disponible.

    • Je ne comprends pas trop vos remarques :

      • d’une part on peut parfaitement ajouter des mots-clés aux définitions, ça marche pour tout objet SPIP bien déclaré, et donc à fortiori pour les définitions. Quand dans un groupe de mots on dit que c’est autorisé sur l’objet Définitions, ensuite dans une définition il y a parfaitement la boite pour ajouter/retirer des mots.
      • d’autre part quand on est sur la page d’un mot déjà existant qui est associé à des contenus, et bien ça affiche aussi parfaitement les définitions en plus de tout autre objet, je l’ai sous les yeux là

    Répondre à ce message

Ajouter un commentaire

Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :

  • Désactiver tous les plugins que vous ne voulez pas tester afin de vous assurer que le bug vient bien du plugin X. Cela vous évitera d’écrire sur le forum d’une contribution qui n’est finalement pas en cause.
  • Cherchez et notez les numéros de version de tout ce qui est en place au moment du test :
    • version de SPIP, en bas de la partie privée
    • version du plugin testé et des éventuels plugins nécessités
    • version de PHP (exec=info en partie privée)
    • version de MySQL / SQLite
  • Si votre problème concerne la partie publique de votre site, donnez une URL où le bug est visible, pour que les gens puissent voir par eux-mêmes.
  • En cas de page blanche, merci d’activer l’affichage des erreurs, et d’indiquer ensuite l’erreur qui apparaît.

Merci d’avance pour les personnes qui vous aideront !

Par ailleurs, n’oubliez pas que les contributeurs et contributrices ont une vie en dehors de SPIP.

Qui êtes-vous ?
[Se connecter]

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

Ce champ accepte les raccourcis SPIP {{gras}} {italique} -*liste [texte->url] <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.

Ajouter un document

Suivre les commentaires : RSS 2.0 | Atom