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>
....