Rev 232 | Blame | Compare with Previous | Last modification | View Log | RSS feed
<?php
// declare(encoding='UTF-8');
/**
* Classe de gestion des epeces.
*
* @package Collection
* @category Php 5.2
* @author Aurélien PERONNET <aurelien@tela-botanica.org>
* @copyright 2010 Tela-Botanica
* @license http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL
* @license http://www.gnu.org/licenses/gpl.html Licence GNU-GPL
* @version SVN: $Id: Espece.php 152 2010-09-06 16:19:12Z jpm $
*/
class Export extends aControleur {
public function __construct() {
parent::__construct();
$this->initialiser();
}
public function executerActionParDefaut() {
return $this->envoyerFichierCSVExportObservation();
}
public function initialiser() {
}
// +---------------------------------------------------------------------------------------------------------------+
// METHODES D'AFFICHAGE DE FORMULAIRE
public function envoyerFichierCSVExportObservation() {
$donnees = array();
$export_dao = new ExportDao();
$export = $export_dao->getExportObservations();
$csv = $this->convertirTableauAssocVersCSV($export);
$this->envoyerFichier($csv);
}
public function convertirTableauAssocVersCSV($tableau) {
$csv = '';
if(count($tableau > 0)) {
unset($tableau[0]['pseudo_participant']);
unset($tableau[0]['mail_participant']);
$colonnes = array_keys($tableau[0]);
$csv .= implode(';',$colonnes).";\n";
foreach($tableau as $elements) {
unset($elements['pseudo_participant']);
unset($elements['mail_participant']);
$ligne = "";
// parcours des cases de chaque ligne nécessaire car si on utilise implode
// les valeurs vides ne sont pas prises et ça décale les colonnes
foreach ($elements as $element) {
$ligne .= '"'.$element.'";';
}
$csv .= $ligne."\n";
}
}
return $csv;
}
public function envoyerFichier($contenu) {
$nom_fichier = "observations_export.csv";
$chemin_fichier = Config::get('chemin_fichiers_temp').'/'.$nom_fichier;
file_put_contents($chemin_fichier, $contenu);
$contenu = file_get_contents($chemin_fichier);
$taille_fichier = filesize($chemin_fichier);
unlink($chemin_fichier);
ini_set('zlib.output_compression','Off');
header('Pragma: public');
header('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT');
header('Cache-Control: must-revalidate, pre-check=0, post-check=0, max-age=0');
header('Content-Tranfer-Encoding: none');
header('Content-Type: application/octetstream; name="'.$nom_fichier.'"');
header('Content-Disposition: attachement; filename="'.$nom_fichier.'"');
header('Content-Length: '.$taille_fichier);
echo $contenu;
exit();
}
}
?>