Carnet Wiki

Utiliser prive/transmettre

Utiliser prive/transmettre

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.html qui génére le csv

voici un exemple du plugin mesabonnes

  1. <BOUCLE0(AUTEURS){tout}{id_auteur=#ENV{id}}{lang_select}><?php
  2. if ([(#ID_AUTEUR|securiser_acces{#ENV{cle},transmettre,#ENV{op}, #ENV{args}}|?{1,0})]) {
  3. ?><BOUCLE1(spip_mesabonnes){par date_modif}{statut=publie}>#NOM,#EMAIL**,#LANG,[(#DATE_MODIF|affdate{Y-m-d})]
  4. </BOUCLE1>
  5. <?php
  6. } else {
  7. include_spip('inc/minipres');
  8. echo minipres();
  9. }?></BOUCLE0>

Télécharger

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

  1. #SET{args,#ARRAY{}}
  2. <a href='[(#URL_PAGE{transmettre,[(#VAL{mesabonnes}|param_low_sec{#GET{args}, '', 'transmettre'})]})]'><:mesabonnes:export_abonnes_csv:></a>

Télécharger

il est aussi possible de passer des événements
voici le plugin agenda

  1. #SET{args,#ARRAY{id_evenement,#ID_EVENEMENT}}
  2. <h3><:agenda:telecharger:></h3>
  3. <ul class="liste-items">
  4. <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>
  5. <li class="item"><a href="[(#URL_PAGE{transmettre,[(#VAL{evenement_participants}|param_low_sec{#GET{args}, '', 'transmettre'})]})]" class="noajax"><:agenda:telecharger_toutes:></a></li>
  6. ....

Télécharger