prive/transmettre

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

Auteur erational Publié le : Mis à jour : 17/08/21

Traductions : English, français, Nederlands