Le répertoire
prive/transmettre
contient les squelettes générant des données CSV, appelés depuis le squelette
prive/transmettre.html
.
{{{Utilisation personnalisée }}}
Il est possible d’utiliser ce dossier pour générer des fichiers d’export très simplement.
Comme il s’agit de squelettes SPIP, les fichiers générés bénéficieront donc un cache. En revanche, le code du squelette à tendance à être moins lisible et donc moins facile à maintenir qu’en utilisant l’API de SPIP en PHP.
{{Étape 1 : générer le CSV via un squelette SPIP}}
Créer dans le dossier
prive/transmettre
de votre plugin le fichier squelette qui génére le csv.
Voici un exemple du plugin
mesabonnes
. Le fichier
prive/transmettre/mesabonnes.html
contient :
<BOUCLE0(AUTEURS){tout}{id_auteur=#ENV{id}}{lang_select}><?php
if ([(#ID_AUTEUR|securiser_acces{#ENV{cle},transmettre,#ENV{op}, #ENV{args}}|?{1,0})]) {
?><BOUCLE1(spip_mesabonnes){par date_modif}{statut=publie}>#NOM,#EMAIL**,#LANG,[(#DATE_MODIF|affdate{Y-m-d})]
</BOUCLE1>
<?php
} else {
include_spip('inc/minipres');
echo minipres();
}?></BOUCLE0>
On voit que exceptionnellement il y a du PHP dans ce squelette
{{Étape 2 : lien pour télécharger ce fichier}}
Exemple : dans le plugin
mesabonnes
, le lien pour accéder à cette transmission est :
#SET{args,#ARRAY{}}
<a href='[(#URL_PAGE{transmettre,[(#VAL{mesabonnes}|param_low_sec{#GET{args}, '', 'transmettre'})]})]'><:mesabonnes:export_abonnes_csv:></a>
Dans le plugin
agenda
, on accède ainsi à l’export des événements :
#SET{args,#ARRAY{id_evenement,#ID_EVENEMENT}}
<h3><:agenda:telecharger:></h3>
<ul class="liste-items">
<li class="item"><a href="[(#URL_PAGE{transmettre,[(#VAL{evenement_participants}|param_low_sec{#GET{args}, '', 'transmettre'})]}|parametre_url{reponse,oui})]" class="noajax"><:agenda:telecharger_oui:></a></li>
<li class="item"><a href="[(#URL_PAGE{transmettre,[(#VAL{evenement_participants}|param_low_sec{#GET{args}, '', 'transmettre'})]})]" class="noajax"><:agenda:telecharger_toutes:></a></li>
....