Le plugin MOTS de SPIP
Rappelons d’abord que la gestion des mots-clés existe depuis les débuts de SPIP, et que l’ensemble est, fortement améliorée depuis SPIP 3, est désormais localisé dans un plugin MOTS verrouillé en standard, mais que vous n’êtes pas forcés d’utiliser...
(voir Comprendre les mots-clés).
Cette gestion est organisée en trois tables (voir la structure de BDD) :
la table GROUPES_MOTS définit le premier niveau, avec une clé id_groupe
la table MOTS regoupe tous les mots-clés utiles par id_groupe
avec une clé id_mot
enfin une table générique MOTS_LIENS contient tous les pointeurs de mots vers des objets sous forme de triplets ( id_mot
, objet
et id_objet
).
La gestion de l’arborescence
Pour gérer une arborescence hiérarchique, solution bien connue en bases de données, on utilise une relation "réflexive" [1] comme dans les RUBRIQUES de SPIP, en mettant dans chaque enregistrement avec une clé id_rubrique
, un pointeur id_parent
vers l’enregistrement (de rubrique) id_parent
(e), et par simplicité SPIP rajoute aussi un pointeur vers la racine (id_secteur
) ainsi qu’un indicateur de profondeur
...
Ainsi, on peut gérer une arborescence hiérarchique simple multi-niveau sans soucis... les soucis viennent quand on veut introduire une poly-hiérarchie (voir le plugin adhoc...) ! ou comment rattacher un élément à deux chefs /conflits d’autorité garantis !
Rappelons aussi que l’arborescence des rubriques est à la base du fonctionnement de la confidentialité apportée par Accès Restreint !
Une arborescence de mots
Pour mettre en place la structure de réflexivité sur les (groupes de) mots, les deux plugins appliquent ce même principe, mais en ciblant chacun une table différente : bouclage sur les GROUPES_MOTS pour gma, et sur MOTS pour motsar.
Ainsi, alors qu’une démarche identique aux Rubriques [2] est mise en œuvre par le plugin Mots-clés arborescents (avec les trois champs id_parent
,id_mot_racine
et profondeur
rajoutés aux MOTS ), on observe que le plugin Groupes de Mots clés arborescents fait porter la réflexivité sur la table GROUPES_MOTS (avec les mêmes champs id_parent
et id_groupe_racine
rajoutés aux GROUPES_MOTS )... [3]
En SPIP cela s’exprime très simplement en regardant la cible de l’alias de boucle hiérarchie : $interfaces['table_des_tables']
['hierarchie_mots'] = 'mots'
pour motsar, et pour gma c’est ['hierarchie_groupes_mots'] = 'groupes_mots'
...
Au résultant
Outre les différences (minimes) d’ergonomie que l’on trouve dans l’interface de gestion privée, les conséquences se retrouvent essentiellement dans les accès par les squelettes publics de SPIP.
tout d’abord il faut se souvenir clairement des spécificités d’accès aux objets éditoriaux par les mots-clés, déjà commentées
la recherche-sélection directement par mot-clé ne sera pas modifiée (correspondance sur le id_mot
), [4]
les différences interviendront lors de la recherche-sélection par groupes de mots :
- pas de différence pour motsar : simplement le mot-clé peut-être plus spécifiquement défini pour l’utilisateur
- gma permet de meilleures sélections des ensembles de mots-clés
si on utilise gma la recherche d’un groupe prendra tous les mots-clés à ce niveau
en cours de compléments..
Une autre façon de voir...
Si vous voulez organiser vos mots-clés en arborescence, de façon à...
trouver tous les objets rattachés à un mot-clé principal ou l’un de ses précisions...
trouver tous les objets rattachés exclusivement à un mot-clé de haut-niveau (sans voir les détails
trouver exclusivement les objets rattachés à un niveau de l’arborescence (mais pas en-dessous)
Article publié le 17 octobre 2019, et actualisé en février 2022 Provisoire (à compléter...) .
Répondre à cet article