Afficher les champs d’un objet #SPIP

En discutant d’un besoin sur IRC, 2 personnes m’ont donné un code magique ! Je tiens à remercier ces 2 personnes : denisb et b_b (Bruno).
Je vous fais part du code qu’ils m’ont soufflé à l’oreille.

Il arrive parfois qu’on doive utiliser un objet éditorial SPIP avec lequel nous ne sommes pas du tout familiarisé. Nous n’avons pas connaissances des champs disponibles. Voici le code qui va vous permettre d’y remédier :

[(#VAL{articles}|description_table|table_valeur{field}|foreach)]

Pour l’exemple, je prends l’objet "articles" avec lequel nous sommes généralement familiers. Pour un tout autre objet, il vous suffit de remplacer "articles" par le nom de votre table sans le préfixe "spip_".

Voici ce que vous obtiendrez à l’affichage du code donné plus haut :

 id_article=> bigint(21) NOT NULL AUTO_INCREMENT
 surtitre=> text NOT NULL
 titre=> text NOT NULL
 soustitre=> text NOT NULL
 id_rubrique=> bigint(21) NOT NULL DEFAULT ’0’
 descriptif=> text NOT NULL
 chapo=> mediumtext NOT NULL
 texte=> longtext NOT NULL
 ps=> mediumtext NOT NULL
 date=> datetime NOT NULL DEFAULT ’0000-00-00 00:00:00’
 statut=> varchar(10) NOT NULL DEFAULT ’0’
 id_secteur=> bigint(21) NOT NULL DEFAULT ’0’
 maj=> timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
 export=> varchar(10) DEFAULT ’oui’
 date_redac=> datetime NOT NULL DEFAULT ’0000-00-00 00:00:00’
 visites=> int(11) NOT NULL DEFAULT ’0’
 referers=> int(11) NOT NULL DEFAULT ’0’
 popularite=> double NOT NULL DEFAULT ’0’
 accepter_forum=> char(3) NOT NULL DEFAULT ’’
 date_modif=> datetime NOT NULL DEFAULT ’0000-00-00 00:00:00’
 lang=> varchar(10) NOT NULL DEFAULT ’’
 langue_choisie=> varchar(3) DEFAULT ’non’
 id_trad=> bigint(21) NOT NULL DEFAULT ’0’
 nom_site=> tinytext NOT NULL
 url_site=> varchar(255) NOT NULL DEFAULT ’’
 virtuel=> varchar(255) NOT NULL DEFAULT ’’

Ici, on a quelque chose de complet. On devrait savoir ainsi par déduction quel filtre lui passer (filtres de dates, de textes, etc.).

Si vous n’avez besoin que d’afficher le nom des champs, voici le code adéquate :

[(#VAL{articles}|description_table|table_valeur{field}|array_keys|print)]

id_article, surtitre, titre, soustitre, id_rubrique, descriptif, chapo, texte, ps, date, statut, id_secteur, maj, export, date_redac, visites, referers, popularite, accepter_forum, date_modif, lang, langue_choisie, id_trad, nom_site, url_site, virtuel

Tout est à la suite, si vous désirez améliorer l’affichage, vous pouvez faire ainsi :

[(#VAL{articles}|description_table|table_valeur{field}|array_keys|foreach)]

 0=> id_article
 1=> surtitre
 2=> titre
 3=> soustitre
 4=> id_rubrique
 5=> descriptif
 6=> chapo
 7=> texte
 8=> ps
 9=> date
 10=> statut
 11=> id_secteur
 12=> maj
 13=> export
 14=> date_redac
 15=> visites
 16=> referers
 17=> popularite
 18=> accepter_forum
 19=> date_modif
 20=> lang
 21=> langue_choisie
 22=> id_trad
 23=> nom_site
 24=> url_site
 25=> virtuel

Moins utile mais autant le noter aussi, si vous désirez avoir juste le type de vos champs, reprenez les mêmes codes que ci-dessus et enlevez le filtre |array_keys.

 
Frameworks
SPIP
Catégorie
Notes de développement, Astuce