Subversion Repositories Sites.obs-saisons.fr

Rev

Rev 279 | Rev 282 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 279 Rev 281
Line 33... Line 33...
33
            }
33
            }
34
        }
34
        }
Line 35... Line 35...
35
 
35
 
36
		$this->envoyer($info,$this->type_mime);
36
		$this->envoyer($info,$this->type_mime);
37
    }
37
    }
38
    
38
        
39
    public function getExportStationJson() {
39
    public function getExportStationJson() {
40
    
40
    	    
41
    	$donnees = $this->getExportStation();
41
    	$donnees = $this->getExportStation();
Line 42... Line 42...
42
    	$donnees_formatees = $this->formaterListeStationPourExportJson($donnees);
42
    	$donnees_formatees = $this->formaterListeStationPourExportJson($donnees);
Line 53... Line 53...
53
    	$res_selection_stations = $this->executerRequete($requete_selection_stations);
53
    	$res_selection_stations = $this->executerRequete($requete_selection_stations);
Line 54... Line 54...
54
    
54
    
55
    	return $res_selection_stations;
55
    	return $res_selection_stations;
Line -... Line 56...
-
 
56
    }
-
 
57
    
-
 
58
    public function getExportUtilisateurCsv() {
-
 
59
    	
-
 
60
    	$controle = new ControleUtilisateur($this->config);
-
 
61
    	$controle->authentifierAdmin();
-
 
62
    	
-
 
63
    	$gestionnaire_utilisateurs = new OdsUtilisateur($this->config);
-
 
64
    	$utilisateurs = $gestionnaire_utilisateurs->getListeUtilisateurAvecInfosComplementairesFormateeId();
-
 
65
    	
-
 
66
    	$utilisateurs_formates = array();
-
 
67
    	$premiere_annee = 2006;
-
 
68
    	
-
 
69
    	$nb_obs = $this->compterObservationsParUtilisateur();
-
 
70
    	
-
 
71
    	foreach ($utilisateurs as $id => $utilisateur) {
-
 
72
    		$utilisateur_formate = array(
-
 
73
	    		'id' => isset($utilisateur['uid']) ? $utilisateur['uid'] : '',
-
 
74
	    		'pseudo' => isset($utilisateur['name']) ? $utilisateur['name'] : '',
-
 
75
	    		'mail' => isset($utilisateur['mail']) ? $utilisateur['mail'] : '',
-
 
76
	    		'nom' => isset($utilisateur['profile_nom']) ? $utilisateur['profile_nom'] : '',
-
 
77
	    		'prenom' => isset($utilisateur['profile_prenom']) ? $utilisateur['profile_prenom'] : '',
-
 
78
	    		'code postal' => isset($utilisateur['profile_code_postal']) ? $utilisateur['profile_code_postal'] : '',
-
 
79
	    		'ville' => isset($utilisateur['profile_ville']) ? $utilisateur['profile_ville'] : '',
-
 
80
	    		'type' => isset($utilisateur['profile_type']) ? $utilisateur['profile_type'] : ''
-
 
81
    		);
-
 
82
    		
-
 
83
    		for($i = $premiere_annee; $i <= date('Y'); $i++) {
-
 
84
    			$utilisateur_formate['annee '.$i] = isset($nb_obs[$utilisateur['uid']]) && isset($nb_obs[$utilisateur['uid']][$i]) ? $nb_obs[$utilisateur['uid']][$i] : '0';
-
 
85
    		}
-
 
86
    		
-
 
87
    		$utilisateurs_formates[] = $utilisateur_formate;
-
 
88
    	}
-
 
89
    	
-
 
90
    	$csv = $this->convertirTableauAssocVersCSV($utilisateurs_formates);
-
 
91
    	$this->envoyerFichier($csv, 'utilisateurs');
-
 
92
    }
-
 
93
    
-
 
94
    private function compterObservationsParUtilisateur() {
-
 
95
    	$requete = 'SELECT COUNT(*) as nb_obs, oo_ce_participant as participant, YEAR(oo_date) as annee '.
-
 
96
    			   'FROM `ods_observations` WHERE oo_date != "0000-00-00" GROUP BY oo_ce_participant, YEAR(oo_date)';
-
 
97
    	
-
 
98
    	$res_selection_obs = $this->executerRequete($requete);
-
 
99
    	$stats = array();
-
 
100
    	foreach ($res_selection_obs as $obs_nb) {
-
 
101
    		$stats[$obs_nb['participant']][$obs_nb['annee']] = $obs_nb['nb_obs'];
-
 
102
    	}
-
 
103
    	
-
 
104
    	return $stats;
56
    }
105
    }
Line 57... Line 106...
57
    
106
    
58
    public function formaterListeStationPourExportJson($tableau_stations_infos) {
107
    public function formaterListeStationPourExportJson($tableau_stations_infos) {
59
    
108
    
Line 315... Line 364...
315
			$infos_evenement = $this->renvoyerInformationStadeAPartirChaineTriple($chaine_evenement);
364
			$infos_evenement = $this->renvoyerInformationStadeAPartirChaineTriple($chaine_evenement);
Line 316... Line 365...
316
				
365
				
Line 317... Line 366...
317
			$date_observation_formatee = date($this->config['appli']['format_date'], strtotime($observations_infos['oo_date']));
366
			$date_observation_formatee = date($this->config['appli']['format_date'], strtotime($observations_infos['oo_date']));
-
 
367
			
Line 318... Line 368...
318
			
368
			$id_observation = $observations_infos['oo_id_observation'];
319
			$id_observation = $observations_infos['oo_id_observation'];
369
			$milieu = isset($milieux[$observations_infos['os_ce_environnement']]['ot_valeur']) ? $milieux[$observations_infos['os_ce_environnement']]['ot_valeur'] : '';
320
			
370
			
321
			$infos_formatees = array(
371
			$infos_formatees = array(
Line 328... Line 378...
328
				'code_commune' => $observations_infos['os_ce_commune'],
378
				'code_commune' => $observations_infos['os_ce_commune'],
329
				'nom_commune' => '',
379
				'nom_commune' => '',
330
				'latitude' => $observations_infos['os_latitude'],
380
				'latitude' => $observations_infos['os_latitude'],
331
				'longitude' => $observations_infos['os_longitude'],
381
				'longitude' => $observations_infos['os_longitude'],
332
				'altitude' => $observations_infos['os_altitude'],
382
				'altitude' => $observations_infos['os_altitude'],
333
				'milieu' => $milieux[$observations_infos['os_ce_environnement']]['ot_valeur'],
383
				'milieu' => $milieu,
334
				'id_participant' => $observations_infos['os_ce_participant'],
384
				'id_participant' => $observations_infos['os_ce_participant'],
335
				'pseudo_participant' => '',
385
				'pseudo_participant' => '',
336
				'mail_participant' => ''
386
				'mail_participant' => ''
337
			);
387
			);
Line 340... Line 390...
340
			
390
			
341
			if(is_numeric($observations_infos['os_ce_commune'])) {
391
			if(is_numeric($observations_infos['os_ce_commune'])) {
342
				$codes_insee_communes[] = $observations_infos['os_ce_commune'];
392
				$codes_insee_communes[] = $observations_infos['os_ce_commune'];
343
			}
393
			}
344
		}
394
		}
345
		
395
 
346
		$correspondance_codes_insee_noms = $gestionnaire_communes->obtenirTableauNomsCommunesParTableauCodesInsee($codes_insee_communes);
396
		$correspondance_codes_insee_noms = $gestionnaire_communes->obtenirTableauNomsCommunesParTableauCodesInsee($codes_insee_communes);
Line 347... Line 397...
347
		$correspondance_id_utilisateur = $gestionnaire_utilisateurs->getListeUtilisateurFormateeId();
397
		$correspondance_id_utilisateur = $gestionnaire_utilisateurs->getListeUtilisateurFormateeId();
Line 364... Line 414...
364
		$csv = '';
414
		$csv = '';
365
		$colonnes = array_keys($tableau[0]);
415
		$colonnes = array_keys($tableau[0]);
366
		$csv .= implode(';',$colonnes).";\n";
416
		$csv .= implode(';',$colonnes).";\n";
Line 367... Line 417...
367
		
417
		
-
 
418
		foreach($tableau as $elements) {
-
 
419
			$ligne = "";
-
 
420
			// parcours des cases de chaque ligne nécessaire car si on utilise implode
-
 
421
			// les valeurs vides ne sont pas prises et ça décale les colonnes
368
		foreach($tableau as $elements) {
422
			foreach ($elements as $element) {
-
 
423
				$ligne .= '"'.$element.'";';
-
 
424
			}
369
			$csv .= implode(';',$elements).";\n";
425
			$csv .= $ligne."\n";
Line 370... Line 426...
370
		}
426
		}
371
		
427
		
Line 372... Line 428...
372
		return $csv;
428
		return $csv;
Line 373... Line 429...
373
	}
429
	}
374
	
430
	
Line 375... Line 431...
375
	public function envoyerFichier($contenu) {
431
	public function envoyerFichier($contenu, $nom = 'observations_export') {
Line 376... Line 432...
376
		
432