[résolu] Changement de "header PHP" dans une action

Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5
#1
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
(les méthodes header() arrêtant le chargement du reste de la page après cela).


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)
#1
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
(les méthodes header() arrêtant le chargement du reste de la page après cela).


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)


Messages dans ce sujet

Atteindre :


Utilisateur(s) parcourant ce sujet : 1 visiteur(s)