Version 4 — Octobre 2017 — 78.242.xx.xx
prive/transmettre permet de générer des fichiers d’export très simplement sans passer par le processus habituelle #URL_ACTION
et action/....
L’avantage est qu’il s’agit de squelettes SPIP et les fichiers auront 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.
créer dans votre plugin un fichier prive/transmettre/patate.html qui génére le csv
voici un exemple du plugin mesabonnes
<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>
exceptionnellement il y a du PHP dans ce squelette
Pour télécharger ce fichier dans un squelette, voici la syntaxe
voici un exemple du plugin mesabonnes
#SET{args,#ARRAY{}}
<a href='[(#URL_PAGE{transmettre,[(#VAL{mesabonnes}|param_low_sec{#GET{args}, '', 'transmettre'})]})]'><:mesabonnes:export_abonnes_csv:></a>
il est aussi possible de passer des événements
voici le plugin agenda
#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>
....