Le critère {id_?}
permet de faire toutes les jointures possibles avec des variables d’environnement. Il se comporte donc comme autant de critères {id_xxx ?}
que possible pour la boucle donnée.
Par exemple, la boucle <BOUCLE_liste(ARTICLES){id_?}>...
sera comprise comme <BOUCLE_liste(ARTICLES){id_article?}{id_rubrique?}{id_secteur?}{id_trad?}{id_mot?}{id_document?}>...
, variant selon les liaisons possibles, et donc selon les plugins actifs. L’écriture est donc nettement plus concise.
Pour une boucle sur une table donnée, les liaisons créées prennent en compte :
- la table de liaison si elle existe (par exemple spip_mots_liens
pour spip_mots
)
- les champs objets,id_objet
sinon (par exemple pour spip_forum
).
Clés objet,id_objet
Sur une table disposant des champs objet
et id_objet
(comme spip_forum
), à la fois le critère {objet?}
et le critère {id_objet?}
seront appliqués.
Installation et désinstallation de plugins
Le critère {id_?}
permet d’écrire des boucles identiques quelques soient les plugins actifs. En effet, certains plugins créent des tables et permettent des jointures conditionnelles supplémentaires sur ces tables , mais si on intègre ces jointures dans une boucle en utilisant l’identifiant de cette table {id_latable?}
, la désinstallation de ce plugin provoquera une erreur de compilation. Avec le critère {id_?}
, les jointures se font automatiquement et sans erreur quels que soient les plugins installés ou non.
Voir aussi
- critère ?
- La syntaxe des boucles <BOUCLE_cond(UNETABLE?)>