Carnet Wiki

Utiliser prive/transmettre

Version 5 — Mars 2019 JLuc

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.

étape 1 : générer votre CSV via un squelette SPIP

créer dans votre plugin un fichier prive/transmettre/patate.Cette doc a été déplacée sur https://programmer . html qui génére le csv spip.net/prive-transmettre-493

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

étape 2 : lien pour télécharger ce fichier

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