35,9 → 35,9 |
|
$this->envoyer($info,$this->type_mime); |
} |
|
|
public function getExportStationJson() { |
|
|
$donnees = $this->getExportStation(); |
$donnees_formatees = $this->formaterListeStationPourExportJson($donnees); |
|
55,6 → 55,55 |
return $res_selection_stations; |
} |
|
public function getExportUtilisateurCsv() { |
|
$controle = new ControleUtilisateur($this->config); |
$controle->authentifierAdmin(); |
|
$gestionnaire_utilisateurs = new OdsUtilisateur($this->config); |
$utilisateurs = $gestionnaire_utilisateurs->getListeUtilisateurAvecInfosComplementairesFormateeId(); |
|
$utilisateurs_formates = array(); |
$premiere_annee = 2006; |
|
$nb_obs = $this->compterObservationsParUtilisateur(); |
|
foreach ($utilisateurs as $id => $utilisateur) { |
$utilisateur_formate = array( |
'id' => isset($utilisateur['uid']) ? $utilisateur['uid'] : '', |
'pseudo' => isset($utilisateur['name']) ? $utilisateur['name'] : '', |
'mail' => isset($utilisateur['mail']) ? $utilisateur['mail'] : '', |
'nom' => isset($utilisateur['profile_nom']) ? $utilisateur['profile_nom'] : '', |
'prenom' => isset($utilisateur['profile_prenom']) ? $utilisateur['profile_prenom'] : '', |
'code postal' => isset($utilisateur['profile_code_postal']) ? $utilisateur['profile_code_postal'] : '', |
'ville' => isset($utilisateur['profile_ville']) ? $utilisateur['profile_ville'] : '', |
'type' => isset($utilisateur['profile_type']) ? $utilisateur['profile_type'] : '' |
); |
|
for($i = $premiere_annee; $i <= date('Y'); $i++) { |
$utilisateur_formate['annee '.$i] = isset($nb_obs[$utilisateur['uid']]) && isset($nb_obs[$utilisateur['uid']][$i]) ? $nb_obs[$utilisateur['uid']][$i] : '0'; |
} |
|
$utilisateurs_formates[] = $utilisateur_formate; |
} |
|
$csv = $this->convertirTableauAssocVersCSV($utilisateurs_formates); |
$this->envoyerFichier($csv, 'utilisateurs'); |
} |
|
private function compterObservationsParUtilisateur() { |
$requete = 'SELECT COUNT(*) as nb_obs, oo_ce_participant as participant, YEAR(oo_date) as annee '. |
'FROM `ods_observations` WHERE oo_date != "0000-00-00" GROUP BY oo_ce_participant, YEAR(oo_date)'; |
|
$res_selection_obs = $this->executerRequete($requete); |
$stats = array(); |
foreach ($res_selection_obs as $obs_nb) { |
$stats[$obs_nb['participant']][$obs_nb['annee']] = $obs_nb['nb_obs']; |
} |
|
return $stats; |
} |
|
public function formaterListeStationPourExportJson($tableau_stations_infos) { |
|
$gestionnaire_especes = new OdsEspece($this->config); |
317,6 → 366,7 |
$date_observation_formatee = date($this->config['appli']['format_date'], strtotime($observations_infos['oo_date'])); |
|
$id_observation = $observations_infos['oo_id_observation']; |
$milieu = isset($milieux[$observations_infos['os_ce_environnement']]['ot_valeur']) ? $milieux[$observations_infos['os_ce_environnement']]['ot_valeur'] : ''; |
|
$infos_formatees = array( |
'id_observation' => $id_observation, |
330,7 → 380,7 |
'latitude' => $observations_infos['os_latitude'], |
'longitude' => $observations_infos['os_longitude'], |
'altitude' => $observations_infos['os_altitude'], |
'milieu' => $milieux[$observations_infos['os_ce_environnement']]['ot_valeur'], |
'milieu' => $milieu, |
'id_participant' => $observations_infos['os_ce_participant'], |
'pseudo_participant' => '', |
'mail_participant' => '' |
342,7 → 392,7 |
$codes_insee_communes[] = $observations_infos['os_ce_commune']; |
} |
} |
|
|
$correspondance_codes_insee_noms = $gestionnaire_communes->obtenirTableauNomsCommunesParTableauCodesInsee($codes_insee_communes); |
$correspondance_id_utilisateur = $gestionnaire_utilisateurs->getListeUtilisateurFormateeId(); |
|
366,15 → 416,21 |
$csv .= implode(';',$colonnes).";\n"; |
|
foreach($tableau as $elements) { |
$csv .= implode(';',$elements).";\n"; |
$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) { |
public function envoyerFichier($contenu, $nom = 'observations_export') { |
|
$nom_fichier = "observations_export.csv"; |
$nom_fichier = $nom.".csv"; |
$chemin_fichier = $this->config['appli']['chemin_fichiers_temp'].'/'.$nom_fichier; |
|
file_put_contents($chemin_fichier, $contenu); |