Afficher les champs d’un objet #SPIP

Frameworks

| par Teddy Payet

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.