De map
prive/transmettre
bevat de skeletten die worden gebruikt om CSV gegevens te genereren, opgeroepen vanuit het skelet
prive/transmettre.html
.
De map
prive/transmettre
bevat de skeletten die de CSV-gegevens beheren, opgeroepen vanuit het skelet
prive/transmettre.html
.
{{{Aangepast gebruik}}}
Deze map kan eenvoudig worden gebruikt voor het beheren van exportbestanden.
Omdat het om skeletten van SPIP gaat, beschikken de gegenereerde bestanden over een cache. Daarentegen is de code van het skelet minder goed leesbaar en dus moeilijker te onderhouden dan wanneer gebruik wordt gemaakt van de API van SPIP in PHP.
{{Stap 1: de CSV maken via een SPIP skelet}}
Maak in de map
prive/transmettre
van jouw plugin het bestand dat de CSV maakt.
Dit is een voorbeeld uit plugin
mesabonnes
. Het bestand
prive/transmettre/mesabonnes.html
bevat:
<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>
Je vindt hier bij uitzondering PHP in een skelet.
{{Stap 2: link voor het downloaden van dit bestand}}
Voorbeeld: in de plugin
mesabonnes
is de link voor deze doorgave:
#SET{args,#ARRAY{}}
<a href='[(#URL_PAGE{transmettre,[(#VAL{mesabonnes}|param_low_sec{#GET{args}, '', 'transmettre'})]})]'><:mesabonnes:export_abonnes_csv:></a>
In de plugin
agenda
bereik je op deze manier de export van evenementen:
#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>
....