SPIP - Lister toutes les tables et leurs entrées

En discutant sur l’IRC de #spip, Charles2 désirait lister une table et toutes ses entrées sur une page. Voici un bout de code qui permet de le faire.
Voici tout simplement le code qui vous permettra de faire cela :
<h1>Liste des tables et leurs valeurs</h1>
<div class="nettoyeur"> </div>
<div class="pied">
[<pre>
(#ENV**|unserialize|foreach)
</pre>]
<B_lestables>
<form action="#SELF" method="get">
[(#SELF|parametre_url{'table',''}|form_hidden)]
<select name="table">
<BOUCLE_lestables(DATA) {source sql, SHOW TABLE STATUS}>
<option value="#VALEUR{Name}"[(#ENV{table}|=={#VALEUR{Name}}|oui) selected="selected"]>#VALEUR{Name}</option>
</BOUCLE_lestables>
</select>
<input type="submit" value="ok"/>
</form>
</B_lestables>
<B_table>
[<h3>(#GRAND_TOTAL) enregistrement(s) pour #ENV{table}</h3>]
#ANCRE_PAGINATION
<table>
<BOUCLE_table(DATA){source sql, SELECT * FROM #ENV{table}} {pagination 10}>
<B_thead>
<thead>
<tr>
<BOUCLE_thead(DATA){source table, (#VALEUR|array_keys)}>
[<th>(#VALEUR|unique)</th>]
</BOUCLE_thead>
</tr>
</thead>
</B_thead>
<B_valeur>
<tr>
<BOUCLE_valeur(DATA){source table, #VALEUR}>
<td>[(#VALEUR|sinon{' '})]</td>
</BOUCLE_valeur>
</tr>
</B_valeur>
</BOUCLE_table>
</table>
[<p class="pagination">(#PAGINATION)</p>]
</B_table>
[<p>Aucun enregistrement dans (#ENV{table})</p>]
<//B_table>
</div>
Explications
- La boucle "lestables" va créer un select contenant toutes les tables connues par SPIP dans sa base de données ;
- La boucle "table" va lancer un requête SQL pour avoir toutes ses entrées en base ;
- La boucle "thead" s’occupe d’afficher dans un… thead les noms des champs ;
- La boucle "valeur" affiche… roulement de tambours… les valeurs de la table. ;-)
C’est bô SPIP !
Encore plus beau
En SPIP 2, nous avions la page ?page=table:nom_de_la_table
accessible depuis l’espace public ET en étant authentifié.
Encore mieux en SPIP 3 grâce au plugin Vertèbres (intégré à la dist). Il vous suffit d’aller sur la page ecrire/?exec=vertebres
et de cliquer sur la table qui vous intéresse. Et Ô magie ! Un beau tableau apparaît.
Tout cela est expliqué ici : http://www.spip.net/fr_article4453....
Ils sont bô les core-dev de SPIP !
Derniers commentaires
# Le 5 septembreà 15:29, par tikismoke
En réponse à : Home Assistant : Routine le matin avant l’école
# Le 30 décembre 2022 à 09:55, par Teddy Payet
En réponse à : Home Assistant : Routine le matin avant l’école
# Le 14 septembre 2022à 23:51, par spipfactory
En réponse à : Nettoyer la médiathèque
# Le 16 août 2022à 11:21, par idem2lyon
En réponse à : Home Assistant : Routine le matin avant l’école
# Le 12 mars 2022à 05:39, par BijouLePou
En réponse à : Je suis passé à SPIP 4.0
# Le 10 janvier 2022à 17:41, par julien
En réponse à : Je suis passé à SPIP 4.0