#INFO_XXX{objet_type, id_objet}
est une balise qui permet de récupérer la valeur d’un champ en base de données sans nécessairement faire une boucle.
Elle prend trois paramètres obligatoires :
- XXX : le nom du champ
- objet_type : c’est le type de l’objet [1] correspondant à la table SQL que vous voulez interroger (ex : article pour la table spip_articles, forum pour la table spip_forum, etc.).
- id_objet : c’est l’id de l’objet ciblé.
Utilisation hors-boucle
#INFO_TITRE{article, 13}
#INFO_NOM{auteur, 2}
Cette fonctionnalité est optimisée pour ne pas faire plusieurs requêtes SQL sur la même table. Vous pouvez donc utiliser plusieurs fois la balise sur le même objet sans inquiétude.
#INFO_TITRE{article, 13}
#INFO_SOUSTITRE{article, 13}
#INFO_CHAPO{article, 13}
On peut aussi passer dynamiquement des paramètres :
#SET{id_breve, 3}
#INFO_TITRE{breve, #GET{id_breve}}
Utilisation dans une boucle
<BOUCLE_article(ARTICLES){id_article}>
Voici l'article #TITRE de la rubrique #INFO_TITRE{rubrique, #ID_RUBRIQUE}
</BOUCLE_article>
…fonctionne bien puisque #ID_RUBRIQUE
est bien un champ de la table spip_articles
Traitements automatiques
La balise applique les traitements automatiques habituels sur les informations demandées, exactement comme lorsqu’on demande #TITRE ou #TEXTE dans une boucle de l’objet. Cela prend donc en compte les balises multi ou la syntaxe SPIP sur certains champs.
Pour ne pas les appliquer, il faut ajouter l’étoile [2], comme pour les autres balises : #INFO_TEXTE*{article, 123}
.
Spécificités
Pour TITRE, la balise va chercher la définition du champ de titre dans la description de l’objet éditorial [3], ce qui permet alors d’utiliser la même syntaxe quelque soit le contenu, même si dans la base c’est le champ "nom" qui est important.
Ainsi #INFO_TITRE{auteur, 123}
renverra le pseudo de cet utilisateur, stocké dans le champ "nom" de "spip_auteurs".
Voir aussi
- Les balises propres au site
- #CHAMP_SQL
- La création d’une balise #INFO_CHAMP pour accéder à la valeur dans l’environnement courant d’un champ variable