15/06/2011, 10:30:52
Citation :#~~~~~ DEBUT BLOC A NE PAS SUPPRIMER ~~~~~
#~ Version du CMS: !1.9.4.1
#~ Url du site :
#~ Hébergeur / Soft : Ubuntu
#~ Informations Système :
#~~~~~ FIN BLOC A NE PAS SUPPRIMER ~~~~~
Bonjour,
Je suis confronté à un petit soucis.
J'ai porté un composant (zfdatagrid) dans CMSMS.
Celui-ci permet de lister des occurrences de la base de données et propose également des liens d'export (CSV, PDF, ...).
Afin d'afficher le listing dans une page, j'utilise un tag du type {MonModule action='afficherDatagrid'}, cela fonctionne parfaitement, et lorsque je clique sur un lien d'export (par exemple CSV), la page se recharge donc et le composant détecte dans l'URL que les données doivent être proposé au téléchargement.
Il opère donc les instructions suivantes :
Code :
header('Content-Description: File Transfer');
header('Cache-Control: public, must-revalidate, max-age=0'); // HTTP/1.1
header('Pragma: public');
header('Expires: Sat, 26 Jul 1997 05:00:00 GMT'); // Date in the past
header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT');
header("Content-Type: application/csv");
header('Content-Disposition: attachment; filename="' . $this->getFileName() . '"');
header('Content-Transfer-Encoding: binary');
Le souci ici est que je récupère bien toutes les données au format CSV mais qu'elles sont précédées du template de la page, c'est à dire de tout le début du gabarit de la page jusqu'à ce que les méthodes header() soient appelées.
Mon fichier CSV comprend donc
Code :
- le header de la page
- la navigation
- l'ouverture de la balise de contenu
- les données au format CSV
Il y a-t-il donc un moyen de désactiver le chargement du gabarit pour que mes fichiers ne contiennent que les données à exporter ?
(j'ai l'impression que CMSMS fait des "echo" de chaque élement du gabarit jusqu'à ce que mes méthodes header() soit appelées, j'aimerais éviter ce comportement justement)