Préambule
Lors de l’écriture de squelettes, vous est-il déjà arrivé de devoir sélectionner un article en particulier, ou une rubrique précise ?
Par défaut, le seul champ qui permette d’identifier un objet de façon unique est son numéro : #ID_RUBRIQUE
, #ID_ARTICLE
, etc.
Mais un numéro, ce n’est pas très parlant !
On peut s’en sortir en choisissant l’objet en fonction d’un mot-clé technique ou de son numéro (la mort dans l’âme !), mais ce ne sont pas des méthodes idéales : un mot-clé n’est pas unique pour un type d’objet, et un numéro ne véhicule aucun sens.
<BOUCLE_x(ARTICLES){id_article=5}>
<BOUCLE_x(ARTICLES){titre_mot=truc}>
Un critère {identifiant}
L’objet de ce plugin est de permettre d’attribuer un identifiant texte unique aux objets, qui pourront ensuite être sélectionnés au moyen du critère {identifiant=x}
.
<BOUCLE_x(ARTICLES){identifiant=truc}>
<BOUCLE_y(RUBRIQUES){identifiant=machin}>
<BOUCLE_z(PATATES){identifiant=chose}>
etc.
Format
Un identifiant ne comporte que caractères alphanumériques ou le signe « _ » : pas de majuscule, ni de caractère spécial ou accentué, ni d’espace.
Ex. : Mentions légales
→ mentions_legales
.
Unicité
Un identifiant est unique pour un type d’objet : 2 articles ne peuvent pas avoir le même identifiant toto
, mais on peut donner le même identifiant patate
à un article et une rubrique par exemple.
Autres plugins
À noter que pour les articles, le plugin Pages uniques utilise le même concept d’identifiant unique avec le champ #PAGE
. Cette idée est élargie ici à tout type d’objet.
D’autres plugins proposent des objets ayant déjà un champ #IDENTIFIANT
, comme les formulaires du plugin Formidable par exemple. On peut utiliser les plugins de concert, leur fonctionnement n’est pas perturbé.
Utilisation
Par défaut, seuls les webmestres ont la possiblité de voir et modifier les identifiants. C’est une information qui n’a à priori n’a aucun intérêt pour les rédacteurs ni même les administrateurs.
Il est possible que ça évolue par la suite, en attendant, ces 2 autorisations peuvent être surchargées au besoin.
Configurer
Tout d’abord, il faut choisir sur quels types d’objets on peut ajouter des identifiants. Les tables qui possèdent déjà un champ « identifiant » ne sont pas listées, et sont indiquées pour référence dans le descriptif de la saisie.
- Configurer
- Configuration du plugin Identifiants
Éditer
On peut définir ou modifier les identifiants en éditant les objets : une saisie est ajoutée au formulaire, au niveau des champs extras, en bas.
- Éditer
- Édition de l’identifiant d’un objet
Voir
Les identifiants sont visibles sous le numéro de l’objet, dans la boîte d’infos à gauche.
- Voir
- Boîtes infos avec l’identifiant texte sous l’identifiant numérique
Technique
Les identifiants sont stockés dans une table auxiliaire spip_identifiants
, qui contient les champs #OBJET
, #ID_OBJET
, #IDENTIFIANT
et #MAJ
.
Quand on édite un identifiant et qu’on "l’efface", la ligne correspondante est supprimée dans la table.
Une jointure avec cette table est opérée automatiquement pour tous les objets.
Discussions par date d’activité
4 discussions
Salut,
Pour la balise #IDENTIFIANT je tenterai bien un truc du genre pour éviter de passer par une fonction de calcul.
J’ai supprimé une notice mais j’ai pas osé commit cette modif :)
https://zone.spip.net/trac/spip-zone/changeset/111925/spip-zone
Je ne suis pas certain que l’exécution de la fonction objet_identifiant soit réellement esquivée. des avis ?
Salut pierre,
Oui bien vu, ça pourrait éviter une requête sql inutile.
À tester, et si ça fonctionne, go go go comme dirait l’autre !
Répondre à ce message
Je découvre : excellent, merci tcharlss !
Répondre à ce message
Le concept est sympa par contre j’ai rencontré un soucis : lorsque l’on supprime une rubrique qui a un identifiant, celui-ci n’est pas supprimé de la table spip_identifiants et ne peut donc être réattribué.
Merci d’avoir signalé cette grosse omission !
Je regarde ça.
Ça devrait être réglé dans la vesion 1.1.9, merci du signalement.
Répondre à ce message
Bravo ! Bravissimo ! +++++ !
Répondre à ce message
Ajouter un commentaire
Suivre les commentaires :
|
