Subversion Repositories eFlore/Applications.cel

Rev

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

Rev 970 Rev 1359
Line 40... Line 40...
40
			$serveur = (isset($_GET['serveur']) && preg_match('/^[0-9]$/', $_GET['serveur'])) ? $_GET['serveur'].'.' : '';
40
			$serveur = (isset($_GET['serveur']) && preg_match('/^[0-9]$/', $_GET['serveur'])) ? $_GET['serveur'].'.' : '';
41
			$url = "http://{$serveur}chart.apis.google.com/chart";
41
			$url = "http://{$serveur}chart.apis.google.com/chart";
42
			$contexte = stream_context_create(
42
			$contexte = stream_context_create(
43
				array('http' => array(
43
				array('http' => array(
44
      				'method' => 'POST',
44
      				'method' => 'POST',
45
      				'content' => http_build_query($graph))));
45
      				'content' => http_build_query($graph),
-
 
46
					'header' => 'Content-Type: application/x-www-form-urlencoded')));
46
			$image = file_get_contents($url, false, $contexte);
47
			$image = file_get_contents($url, false, $contexte);
47
			$this->envoyer($image, 'image/png', null, false);
48
			$this->envoyer($image, 'image/png', null, false);
48
		} else {
49
		} else {
49
			$info = 'Un problème est survenu : '.print_r($this->messages, true);
50
			$info = 'Un problème est survenu : '.print_r($this->messages, true);
50
			$this->envoyer($info);
51
			$this->envoyer($info);
Line 53... Line 54...
53
 
54
 
54
	private function getEvolImgLieesParMois($param) {
55
	private function getEvolImgLieesParMois($param) {
Line 55... Line 56...
55
		$utilisateur = isset($_GET['utilisateur']) ? $this->bdd->quote($_GET['utilisateur']) : null;
56
		$utilisateur = isset($_GET['utilisateur']) ? $this->bdd->quote($_GET['utilisateur']) : null;
56
		
57
		
57
		// Récupération des données
58
		// Récupération des données
58
		$requete = 	"SELECT DATE_FORMAT(ci_meta_date_ajout, '%Y%m') AS periode, COUNT(ci_id_image) AS nbre ".
59
		$requete = 	"SELECT DATE_FORMAT(date_creation, '%Y%m') AS periode, COUNT(ci.id_image) AS nbre ".
59
			"FROM cel_obs_images LEFT JOIN cel_images ON (coi_ce_image = ci_id_image) ".
60
			"FROM cel_obs_images coi LEFT JOIN cel_images ci ON (coi.id_image = ci.id_image) ".
60
			"WHERE ci_meta_date_ajout != '0000-00-00 00:00:00' ".
61
			"WHERE date_creation != '0000-00-00 00:00:00' ".
61
			((isset($utilisateur)) ? " AND ci_ce_utilisateur = $utilisateur " : '').
62
			((isset($utilisateur)) ? " AND courriel_utilisateur = $utilisateur " : '').
-
 
63
			'GROUP BY periode '.
62
			'GROUP BY periode '.
64
			'ORDER BY periode ';
Line 63... Line 65...
63
			'ORDER BY periode ';
65
 
64
		$resulats = $this->executerRequete($requete);
66
		$resulats = $this->executerRequete($requete);
65
 
67
 
Line 70... Line 72...
70
 
72
 
71
		// Trie des dates pour les étiquettes des axes
73
		// Trie des dates pour les étiquettes des axes
72
		$dates = array();
74
		$dates = array();
73
		$annees = array();
75
		$annees = array();
74
		$les_mois = array();
76
		$les_mois = array();
75
		$pas = 3; // intervalle de mois entre deux étiquettes
77
		$pas = 1; // intervalle de mois entre deux étiquettes
76
		$periode = 0;
78
		$periode = 0;
77
		$cumul = 0;
79
		$cumul = 0;
78
		$img_totale_cumul = array();
-
 
79
		
80
		$img_totale_cumul = array();
80
		foreach ($img_totale as $annee_mois => $nbre) {
81
		foreach ($img_totale as $annee_mois => $nbre) {
81
			$annee = substr($annee_mois, 0, 4);
82
			$annee = substr($annee_mois, 0, 4);
82
			$mois = substr($annee_mois, 4, 2);
83
			$mois = substr($annee_mois, 4, 2);
83
			$mois_fmt_B = strftime('%b', strtotime("1999-$mois-01"));
84
			$mois_fmt_B = strftime('%b', strtotime("0000-$mois-01"));
84
			$cumul += $nbre;
85
			$cumul += $nbre;
Line 85... Line 86...
85
			$img_totale_cumul[$annee_mois] = $cumul;
86
			$img_totale_cumul[$annee_mois] = $cumul;
86
 
87
 
Line 94... Line 95...
94
 
95
 
95
		// Post traitement des données
96
		// Post traitement des données
96
		$titre = "Évolution des images liées aux observations par mois";
97
		$titre = "Évolution des images liées aux observations par mois";
97
		$valeurs_y = implode(',', $img_totale);
98
		$valeurs_y = implode(',', $img_totale);
98
		$valeurs_r = implode(',', $img_totale_cumul);
99
		$valeurs_r = implode(',', $img_totale_cumul);
99
		$valeurs_max_y = (count($img_totale) > 0 ) ? max($img_totale) : 0;
100
		$valeurs_max_y = max($img_totale);
100
		$valeurs_max_r = (count($img_totale_cumul) > 0 ) ? max($img_totale_cumul) : 0;
101
		$valeurs_max_r = max($img_totale_cumul);
101
		$y_val_fin = $valeurs_max_y;
102
		$y_val_fin = $valeurs_max_y;
102
		$y_pas = round(($valeurs_max_y / 6), 0);
103
		$y_pas = 200;
103
		$r_val_fin = $valeurs_max_r;
104
		$r_val_fin = $valeurs_max_r;
104
		$r_pas = round(($valeurs_max_r / 6), 0);
105
		$r_pas = 1000;
105
		$etiquettes_x1 = implode('|', $les_mois);
106
		$etiquettes_x1 = implode('|', $les_mois);
106
		$etiquettes_x2 = implode('|', $annees);
107
		$etiquettes_x2 = implode('|', $annees);
107
		$etiquettes_y = 'Images';
-
 
108
		$etiquettes_r2 = 'Cumul';
108
		$etiquettes_y = 'Images';
109
		
109
 
110
		// Construire de l'url de l'image
110
		// Construire de l'url de l'image
111
		$graph = array('cht' => 'lc',
111
		$graph = array('cht' => 'lc',
112
			'chtt'	=> $titre,
112
			'chtt'	=> $titre,
113
			'chs'	=> '600x200',
113
			'chs'	=> '600x200',
114
			'chco'	=> '007F00,99CC00',
114
			'chco'	=> '007F00,99CC00',
115
			'chd'	=> 't:'.$valeurs_y.'|'.$valeurs_r,
115
			'chd'	=> 't:'.$valeurs_y.'|'.$valeurs_r,
116
			'chds'	=> "0,$valeurs_max_y,0,$valeurs_max_r",
116
			'chds'	=> "0,$valeurs_max_y,0,$valeurs_max_r",
117
			'chxt'	=> 'y,y,x,x,r,r',
117
			'chxt'	=> 'y,y,x,x,r',
118
			'chxl'	=> '1:|'.$etiquettes_y.'|3:|'.$etiquettes_x2.'|2:|'.$etiquettes_x1.'|5:|'.$etiquettes_r2,
118
			'chxl'	=> '1:|'.$etiquettes_y.'|3:|'.$etiquettes_x2.'|2:|'.$etiquettes_x1.'',
119
			'chxp'	=> '1,50|3,0|5,50',
119
			'chxp'	=> '1,50|3,0',
120
			'chxr'	=> "0,0,$y_val_fin,$y_pas|4,0,$r_val_fin,$r_pas",
120
			'chxr'	=> "0,0,$y_val_fin,$y_pas|4,0,$r_val_fin,$r_pas",
121
			'chm'	=> 'N ** ,000000,0,-1,8,1.0,ht',
121
			'chm'	=> 'N ** ,000000,0,-1,8,1.0,ht',
122
			'chxs'	=> '0,007F00|1,007F00|4,99CC00|5,99CC00');
122
			'chxs'	=> '0,007F00|4,99CC00');
123
		return $graph;
123
		return $graph;
Line 124... Line 124...
124
	}
124
	}
125
 
125
 
Line 126... Line 126...
126
	private function getEvolImgParMois($param) {
126
	private function getEvolImgParMois($param) {
127
		$utilisateur = isset($_GET['utilisateur']) ? $this->bdd->quote($_GET['utilisateur']) : null;
127
		$utilisateur = isset($_GET['utilisateur']) ? $this->bdd->quote($_GET['utilisateur']) : null;
128
		
128
		
129
		// Récupération des données
129
		// Récupération des données
130
		$requete = 	"SELECT DATE_FORMAT(ci_meta_date_ajout, '%Y%m') AS periode, COUNT(ci_id_image) AS nbre ".
130
		$requete = 	"SELECT DATE_FORMAT(date_creation, '%Y%m') AS periode, COUNT(id_image) AS nbre ".
131
			"FROM cel_images ".
131
			"FROM cel_images ".
132
			"WHERE ci_meta_date_ajout != '0000-00-00 00:00:00' ".
132
			"WHERE date_creation != '0000-00-00 00:00:00' ".
-
 
133
			((isset($utilisateur)) ? " AND courriel_utilisateur = $utilisateur " : '').
133
			((isset($utilisateur)) ? " AND ci_ce_utilisateur = $utilisateur " : '').
134
			'GROUP BY periode '.
Line 134... Line 135...
134
			'GROUP BY periode '.
135
			'ORDER BY periode ';
135
			'ORDER BY periode ';
136
 
136
		$resulats = $this->executerRequete($requete);
137
		$resulats = $this->executerRequete($requete);
Line 142... Line 143...
142
 
143
 
143
		// Trie des dates pour les étiquettes des axes
144
		// Trie des dates pour les étiquettes des axes
144
		$dates = array();
145
		$dates = array();
145
		$annees = array();
146
		$annees = array();
146
		$les_mois = array();
147
		$les_mois = array();
147
		$pas = 3; // intervalle de mois entre deux étiquettes
148
		$pas = 1; // intervalle de mois entre deux étiquettes
148
		$periode = 0;
149
		$periode = 0;
149
		$cumul = 0;
150
		$cumul = 0;
150
		$img_totale_cumul = array();
151
		$img_totale_cumul = array();
151
		foreach ($img_totale as $annee_mois => $nbre) {
152
		foreach ($img_totale as $annee_mois => $nbre) {
152
			$annee = substr($annee_mois, 0, 4);
153
			$annee = substr($annee_mois, 0, 4);
153
			$mois = substr($annee_mois, 4, 2);
154
			$mois = substr($annee_mois, 4, 2);
154
			$mois_fmt_B = strftime('%b', strtotime("1999-$mois-01"));
-
 
155
			$this->debug[] = $mois."/".$mois_fmt_B;
155
			$mois_fmt_B = strftime('%b', strtotime("0000-$mois-01"));
156
			$cumul += $nbre;
156
			$cumul += $nbre;
Line 157... Line 157...
157
			$img_totale_cumul[$annee_mois] = $cumul;
157
			$img_totale_cumul[$annee_mois] = $cumul;
158
 
158
 
Line 166... Line 166...
166
 
166
 
167
		// Post traitement des données
167
		// Post traitement des données
168
		$titre = "Évolution du dépôt d'images par mois";
168
		$titre = "Évolution du dépôt d'images par mois";
169
		$valeurs_y = implode(',', $img_totale);
169
		$valeurs_y = implode(',', $img_totale);
170
		$valeurs_r = implode(',', $img_totale_cumul);
170
		$valeurs_r = implode(',', $img_totale_cumul);
171
		$valeurs_max_y = (count($img_totale) > 0 ) ? max($img_totale) : 0;
171
		$valeurs_max_y = max($img_totale);
172
		$valeurs_max_r = (count($img_totale_cumul) > 0 ) ? max($img_totale_cumul) : 0;
172
		$valeurs_max_r = max($img_totale_cumul);
173
		$y_val_fin = $valeurs_max_y;
173
		$y_val_fin = $valeurs_max_y;
174
		$y_pas = round(($valeurs_max_y / 6), 0);
174
		$y_pas = 500;
175
		$r_val_fin = $valeurs_max_r;
175
		$r_val_fin = $valeurs_max_r;
176
		$r_pas = round(($valeurs_max_r / 6), 0);
176
		$r_pas = 1000;
177
		$etiquettes_x1 = implode('|', $les_mois);
177
		$etiquettes_x1 = implode('|', $les_mois);
178
		$etiquettes_x2 = implode('|', $annees);
178
		$etiquettes_x2 = implode('|', $annees);
179
		$etiquettes_y = 'Images';
-
 
180
		$etiquettes_r2 = 'Cumul';
179
		$etiquettes_y = 'Images';
181
		
180
 
182
		// Construire de l'url de l'image
181
		// Construire de l'url de l'image
183
		$graph = array('cht' => 'lc',
182
		$graph = array('cht' => 'lc',
184
			'chtt'	=> $titre,
183
			'chtt'	=> $titre,
185
			'chs'	=> '600x200',
184
			'chs'	=> '600x200',
186
			'chco'	=> '007F00,99CC00',
185
			'chco'	=> '007F00,99CC00',
187
			'chd'	=> 't:'.$valeurs_y.'|'.$valeurs_r,
186
			'chd'	=> 't:'.$valeurs_y.'|'.$valeurs_r,
188
			'chds'	=> "0,$valeurs_max_y,0,$valeurs_max_r",
187
			'chds'	=> "0,$valeurs_max_y,0,$valeurs_max_r",
189
			'chxt'	=> 'y,y,x,x,r,r',
188
			'chxt'	=> 'y,y,x,x,r',
190
			'chxl'	=> '1:|'.$etiquettes_y.'|3:|'.$etiquettes_x2.'|2:|'.$etiquettes_x1.'|5:|'.$etiquettes_r2,
189
			'chxl'	=> '1:|'.$etiquettes_y.'|3:|'.$etiquettes_x2.'|2:|'.$etiquettes_x1.'',
191
			'chxp'	=> '1,50|3,0|5,50',
190
			'chxp'	=> '1,50|3,0',
192
			'chxr'	=> "0,0,$y_val_fin,$y_pas|4,0,$r_val_fin,$r_pas",
191
			'chxr'	=> "0,0,$y_val_fin,$y_pas|4,0,$r_val_fin,$r_pas",
193
			'chm'	=> 'h,C3C3C3,0,0.5,1,-1|N ** ,000000,0,-1,8,1.0,ht',
192
			'chm'	=> 'h,C3C3C3,0,0.5,1,-1|N ** ,000000,0,-1,8,1.0,ht',
194
			'chxs'	=> '0,007F00|1,007F00|4,99CC00|5,99CC00');
193
			'chxs'	=> '0,007F00|4,99CC00');
195
		return $graph;
194
		return $graph;
Line 196... Line -...
196
	}
-
 
197
 
-
 
198
	private function getEvolImgParMoisGlissant($param) {
-
 
199
		$utilisateur = isset($_GET['utilisateur']) ? $this->bdd->quote($_GET['utilisateur']) : null;
-
 
200
		// Récupération des données
-
 
201
		$requete = 	"SELECT DATE_FORMAT(ci_meta_date_ajout, '%Y%m%d') AS periode, COUNT(ci_id_image) AS nbre ".
-
 
202
			"FROM cel_images ".
-
 
203
			"WHERE ci_meta_date_ajout != '0000-00-00 00:00:00' ".
-
 
204
			'	AND ci_meta_date_ajout > DATE_SUB(NOW(), INTERVAL 31 DAY) '.
-
 
205
			((isset($utilisateur)) ? " AND ci_ce_utilisateur = $utilisateur " : '').
-
 
206
			'GROUP BY periode '.
-
 
207
			'ORDER BY periode ';
-
 
208
		$resultats = $this->executerRequete($requete);
-
 
209
 
-
 
210
		// 	Traitement du resultat
-
 
211
		$img_totale = array();
-
 
212
		if ($resultats !== false) {
-
 
213
			foreach ($resultats as $info) {
-
 
214
				$img_totale[$info['periode']] = $info['nbre'];
-
 
215
			}		
-
 
216
		}
-
 
217
		
-
 
218
		// Trie des dates pour les étiquettes des axes
-
 
219
		$dates = array();
-
 
220
		$annees = array();
-
 
221
		$annees_mois = array();
-
 
222
		$jours = array();
-
 
223
		foreach ($img_totale as $annee_mois_jours => $nbre) {
-
 
224
			$annee = substr($annee_mois_jours, 0, 4);
-
 
225
			$mois = substr($annee_mois_jours, 4, 2);
-
 
226
			$jour = substr($annee_mois_jours, 6, 2);
-
 
227
			$annee_mois_fmt_B = strftime('%B %Y', mktime(0, 0, 0, $mois, 1, $annee));
-
 
228
			
-
 
229
			if (!isset($dates[$annee][$mois][$jour])) {
-
 
230
				$annees_mois[] = (!isset($dates[$annee][$mois]) ? $annee_mois_fmt_B : '');
-
 
231
				$jours[] = $jour;
-
 
232
				// Ajouter au tableau dates tjrs à la fin
-
 
233
				$dates[$annee][$mois][$jour] = 1;
-
 
234
			}
-
 
235
		}
-
 
236
		
-
 
237
		// Post traitement des données
-
 
238
		$titre = "Évolution du dépôt d'images sur un mois glissant";
-
 
239
		$valeurs_max = (count($img_totale) > 0) ? max($img_totale) : 0;
-
 
240
		$valeurs = implode(',', $img_totale);
-
 
241
		$y_val_fin = $valeurs_max;
-
 
242
		$y_pas = round($valeurs_max / 6);
-
 
243
		$etiquettes_x1 = implode('|', $jours);
-
 
244
		$etiquettes_x2 = implode('|', $annees_mois);
-
 
245
		$etiquettes_y2 = 'Images';
-
 
246
 
-
 
247
		// Construction de l'url de l'image
-
 
248
		$graph = array('cht' => 'lc',
-
 
249
			'chtt'	=>	$titre,
-
 
250
			'chs'	=>	'600x200',
-
 
251
			'chco'	=>	'007F00',
-
 
252
			'chd'	=>	't:'.$valeurs,
-
 
253
			'chds'	=>	'0,'.$valeurs_max,
-
 
254
			'chxt'	=>	'y,y,x,x',
-
 
255
			'chxl'	=>	'1:|'.$etiquettes_y2.'|2:|'.$etiquettes_x1.'|3:|'.$etiquettes_x2,
-
 
256
			'chxp'	=>	'0,0|1,50',
-
 
257
			'chxr'	=>	"0,0,$y_val_fin,$y_pas",
-
 
258
			'chm'	=> 'h,C3C3C3,0,0.5,1,-1|N,000000,0,1::1,8,1.0,ht',
-
 
259
			'chxs'	=> '0,007F00|1,007F00');
-
 
260
		$this->debug[] = $graph;
-
 
261
		return $graph;
-
 
262
	}
-
 
263
	
-
 
264
	private function getEvolImgParAn($param) {
-
 
265
		$utilisateur = isset($_GET['utilisateur']) ? $this->bdd->quote($_GET['utilisateur']) : null;
-
 
266
		// Récupération des données
-
 
267
		$requete = 	"SELECT DATE_FORMAT(ci_meta_date_ajout, '%Y') AS periode, COUNT(ci_id_image) AS nbre ".
-
 
268
			"FROM cel_images ".
-
 
269
			"WHERE ci_meta_date_ajout != '0000-00-00 00:00:00' ".
-
 
270
			((isset($utilisateur)) ? " AND ci_ce_utilisateur = $utilisateur " : '').
-
 
271
			'GROUP BY periode '.
-
 
272
			'ORDER BY periode ';
-
 
273
		$resulats = $this->executerRequete($requete);
-
 
274
 
-
 
275
		$img_totale = array();
-
 
276
		foreach ($resulats as $info) {
-
 
277
			$img_totale[$info['periode']] = $info['nbre'];
-
 
278
		}
-
 
279
 
-
 
280
		// Trie des dates pour les étiquettes des axes
-
 
281
		$dates = array();
-
 
282
		$annees = array();
-
 
283
		foreach ($img_totale as $annee => $nbre) {
-
 
284
			if (!isset($dates[$annee])) {
-
 
285
				$annees[] = $annee;
-
 
286
				$dates[$annee] = 1;
-
 
287
			}
-
 
288
		}
-
 
289
 
-
 
290
		// Post traitement des données
-
 
291
		$titre = "Évolution du dépôt d'images par année";
-
 
292
		$valeurs = implode(',', $img_totale);
-
 
293
		$valeurs_max = (count($img_totale) > 0) ? max($img_totale) : 0;
-
 
294
		$valeurs_min = (count($img_totale) > 0) ? min($img_totale) : 0;
-
 
295
		$y_val_deb = preg_replace('/[0-9]{2}$/', '00', $valeurs_min);
-
 
296
		$y_val_fin = $valeurs_max;
-
 
297
		$y_pas = round(($valeurs_max / 6), 0);
-
 
298
		$etiquettes_x = implode('|', $annees);;
-
 
299
		$etiquettes_y = 'Images';
-
 
300
 
-
 
301
		// Construire de l'url de l'image
-
 
302
		$graph = array('cht' => 'lc',
-
 
303
			'chtt'	=> $titre,
-
 
304
			'chs'	=> '600x200',
-
 
305
			'chco'	=> '007F00',
-
 
306
			'chd'	=> 't:'.$valeurs,
-
 
307
			'chds'	=> "$valeurs_min,$valeurs_max",
-
 
308
			'chxt'	=> 'y,y,x',
-
 
309
			'chxl'	=> '1:|'.$etiquettes_y.'|2:|'.$etiquettes_x.'',
-
 
310
			'chxp'	=> '0,0|1,50|2,0',
-
 
311
			'chxr'	=> "0,$y_val_deb,$y_val_fin,$y_pas",
-
 
312
			'chm'	=> 'h,C3C3C3,0,0.5,1,-1|N,000000,0,1::1,8,1.0,ht',
-
 
313
			'chxs'	=> '0,007F00|1,007F00');
-
 
314
		return $graph;
-
 
315
	}
195
	}
316
	
196
 
317
	private function getEvolUtilisateurParMois($param) {
197
	private function getEvolUtilisateurParMois($param) {
318
		// Récupération des données
198
		// Récupération des données
319
		$requete = 	'SELECT  DISTINCT identifiant , '.
199
		$requete = 	'SELECT  DISTINCT courriel_utilisateur , '.
320
					'	MIN(date_creation) AS date_min, MAX(date_creation) AS date_max, '.
200
					'	MIN(date_creation) AS date_min, MAX(date_creation) AS date_max, '.
321
					'	COUNT(id) AS obs_nbre '.
201
					'	COUNT(id_observation) AS obs_nbre '.
322
					'FROM cel_inventory '.
202
					'FROM cel_obs '.
323
					"WHERE date_creation != '0000-00-00 00:00:00' ".
203
					"WHERE date_creation != '0000-00-00 00:00:00' ".
324
					"	AND identifiant LIKE '%@%' ".
204
					"	AND courriel_utilisateur LIKE '%@%' ".
325
					'GROUP BY identifiant '.
205
					'GROUP BY courriel_utilisateur '.
Line 326... Line 206...
326
					'ORDER BY date_min ASC ';
206
					'ORDER BY date_min ASC ';
327
		$resultats = $this->executerRequete($requete);
207
		$resultats = $this->executerRequete($requete);
328
 
208
 
329
		// Trie des données et des dates pour les étiquettes des axes
209
		// Trie des données et des dates pour les étiquettes des axes
330
		$dates = array();
210
		$dates = array();
331
		$annees = array();
211
		$annees = array();
332
		$utilisateurs = array();
212
		$utilisateurs = array();
333
		$les_mois = array();
213
		$les_mois = array();
334
		$pas = 3; // intervalle de mois entre deux étiquettes
214
		$pas = 2; // intervalle de mois entre deux étiquettes
335
		$periode = 0;
215
		$periode = 0;
336
		foreach ($resultats as $enrg) {
216
		foreach ($resultats as $enrg) {
Line 337... Line 217...
337
			$annee = substr($enrg['date_min'], 0, 4);
217
			$annee = substr($enrg['date_min'], 0, 4);
338
			$mois = substr($enrg['date_min'], 5, 2);
218
			$mois = substr($enrg['date_min'], 5, 2);
339
			$mois_fmt_B = strftime('%b', strtotime("1999-$mois-01"));
219
			$mois_fmt_B = strftime('%b', strtotime("0000-$mois-01"));
340
 
220
 
Line 377... Line 257...
377
 
257
 
378
	private function getEvolObsParMoisGlissant($param) {
258
	private function getEvolObsParMoisGlissant($param) {
379
		// Récupération des données
259
		// Récupération des données
380
		$format_date = '%Y%m%d';
260
		$format_date = '%Y%m%d';
381
		$where = 'date_creation > DATE_SUB(NOW(), INTERVAL 31 DAY)';
261
		$where = 'date_creation > DATE_SUB(NOW(), INTERVAL 31 DAY)';
382
		$obs_totale = $this->executerRequeteEvol('cel_inventory', 'id', $format_date, $where);
262
		$obs_totale = $this->executerRequeteEvol('cel_obs', 'id_observation', $format_date, $where);
383
 
263
		
384
		// Trie des dates pour les étiquettes des axes
264
		// Tri des dates pour les étiquettes des axes
385
		$dates = array();
265
		$dates = array();
386
		$annees = array();
266
		$annees = array();
387
		$annees_mois = array();
267
		$annees_mois = array();
388
		$jours = array();
268
		$jours = array();
Line 400... Line 280...
400
			}
280
			}
401
		}
281
		}
Line 402... Line 282...
402
		
282
		
403
		// Post traitement des données
283
		// Post traitement des données
404
		$titre = 'Évolution des observations sur un mois glissant';
284
		$titre = 'Évolution des observations sur un mois glissant';
405
		$valeurs_max = (count($obs_totale) > 0 ) ? max($obs_totale) : 0;
285
		$valeurs_max = max($obs_totale);
406
		$valeurs = implode(',', $obs_totale);
286
		$valeurs = implode(',', $obs_totale);
407
		$y_val_fin = $valeurs_max;
287
		$y_val_fin = $valeurs_max;
408
		$y_pas = round($valeurs_max / 6);
288
		$y_pas = round($valeurs_max / 6);
409
		$etiquettes_x1 = implode('|', $jours);
289
		$etiquettes_x1 = implode('|', $jours);
410
		$etiquettes_x2 = implode('|', $annees_mois);
290
		$etiquettes_x2 = implode('|', $annees_mois);
Line 411... Line 291...
411
		$etiquettes_y2 = 'Observations';
291
		$etiquettes_y2 = 'Observations';
412
 
292
 
413
		// Construction de l'url de l'image
293
		// Construire de l'url de l'image
414
		$graph = array('cht' => 'lc',
294
		$graph = array('cht' => 'lc',
415
			'chtt'	=>	$titre,
295
			'chtt'	=>	$titre,
416
			'chs'	=>	'600x200',
296
			'chs'	=>	'600x200',
Line 421... Line 301...
421
			'chxl'	=>	'1:|'.$etiquettes_y2.'|2:|'.$etiquettes_x1.'|3:|'.$etiquettes_x2,
301
			'chxl'	=>	'1:|'.$etiquettes_y2.'|2:|'.$etiquettes_x1.'|3:|'.$etiquettes_x2,
422
			'chxp'	=>	'0,0|1,50',
302
			'chxp'	=>	'0,0|1,50',
423
			'chxr'	=>	"0,0,$y_val_fin,$y_pas",
303
			'chxr'	=>	"0,0,$y_val_fin,$y_pas",
424
			'chm'	=> 'h,C3C3C3,0,0.5,1,-1|N,000000,0,1::1,8,1.0,ht',
304
			'chm'	=> 'h,C3C3C3,0,0.5,1,-1|N,000000,0,1::1,8,1.0,ht',
425
			'chxs'	=> '0,822013|1,822013');
305
			'chxs'	=> '0,822013|1,822013');
-
 
306
		
426
		return $graph;
307
		return $graph;
427
	}
308
	}
Line 428... Line 309...
428
 
309
 
429
	private function getEvolObsParMois($param) {
310
	private function getEvolObsParMois($param) {
430
		// Récupération des données
311
		// Récupération des données
Line 431... Line 312...
431
		$obs_totale = $this->executerRequeteEvol('cel_inventory', 'id');
312
		$obs_totale = $this->executerRequeteEvol('cel_obs', 'id_observation');
432
 
313
 
433
		// Trie des dates pour les étiquettes des axes
314
		// Trie des dates pour les étiquettes des axes
434
		$dates = array();
315
		$dates = array();
Line 439... Line 320...
439
		$cumul = 0;
320
		$cumul = 0;
440
		$obs_totale_cumul = array();
321
		$obs_totale_cumul = array();
441
		foreach ($obs_totale as $annee_mois => $nbre) {
322
		foreach ($obs_totale as $annee_mois => $nbre) {
442
			$annee = substr($annee_mois, 0, 4);
323
			$annee = substr($annee_mois, 0, 4);
443
			$mois = substr($annee_mois, 4, 2);
324
			$mois = substr($annee_mois, 4, 2);
444
			$mois_fmt_B = strftime('%b', strtotime("1999-$mois-01"));
325
			$mois_fmt_B = strftime('%b', strtotime("0000-$mois-01"));
445
			$cumul += $nbre;
326
			$cumul += $nbre;
446
			$obs_totale_cumul[$annee_mois] = $cumul;
327
			$obs_totale_cumul[$annee_mois] = $cumul;
Line 447... Line 328...
447
 
328
 
448
			if (!isset($dates[$annee][$mois])) {
329
			if (!isset($dates[$annee][$mois])) {
Line 455... Line 336...
455
 
336
 
456
		// Post traitement des données
337
		// Post traitement des données
457
		$titre = 'Évolution des observations par mois';
338
		$titre = 'Évolution des observations par mois';
458
		$valeurs_y = implode(',', $obs_totale);
339
		$valeurs_y = implode(',', $obs_totale);
459
		$valeurs_r = implode(',', $obs_totale_cumul);
340
		$valeurs_r = implode(',', $obs_totale_cumul);
460
		$valeurs_max_y = (count($obs_totale) > 0 ) ? max($obs_totale) : 0;
341
		$valeurs_max_y = max($obs_totale);
461
		$valeurs_max_r = (count($obs_totale_cumul) > 0 ) ? max($obs_totale_cumul) : 0;
342
		$valeurs_max_r = max($obs_totale_cumul);
462
		$y_val_fin = $valeurs_max_y;
343
		$y_val_fin = $valeurs_max_y;
463
		$y_pas = round(($valeurs_max_y / 6), 0);
344
		$y_pas = round(($valeurs_max_y / 6), 0);
464
		$r_val_fin = $valeurs_max_r;
345
		$r_val_fin = $valeurs_max_r;
465
		$r_pas = round(($valeurs_max_r / 6), 0);
346
		$r_pas = round(($valeurs_max_r / 6), 0);
466
		$etiquettes_x1 = implode('|', $les_mois);
347
		$etiquettes_x1 = implode('|', $les_mois);
467
		$etiquettes_x2 = implode('|', $annees);
348
		$etiquettes_x2 = implode('|', $annees);
468
		$etiquettes_y2 = 'Observations';
349
		$etiquettes_y2 = 'Observations';
Line 469... Line 350...
469
		$etiquettes_r2 = 'Cumul';
350
		$etiquettes_r2 = 'Cumul obs.';
470
 
351
 
471
		// Construire de l'url de l'image
352
		// Construire de l'url de l'image
472
		$graph = array('cht' => 'lc',
353
		$graph = array('cht' => 'lc',
Line 484... Line 365...
484
		return $graph;
365
		return $graph;
485
	}
366
	}
Line 486... Line 367...
486
 
367
 
487
	private function getEvolObsParAn($param) {
368
	private function getEvolObsParAn($param) {
488
		// Récupération des données
369
		// Récupération des données
Line 489... Line 370...
489
		$obs_totale = $this->executerRequeteEvol('cel_inventory', 'id', '%Y');
370
		$obs_totale = $this->executerRequeteEvol('cel_obs', 'id_observation', '%Y');
490
 
371
 
491
		// Trie des dates pour les étiquettes des axes
372
		// Trie des dates pour les étiquettes des axes
492
		$dates = array();
373
		$dates = array();
Line 499... Line 380...
499
		}
380
		}
Line 500... Line 381...
500
 
381
 
501
		// Post traitement des données
382
		// Post traitement des données
502
		$titre = 'Évolution des observations par année';
383
		$titre = 'Évolution des observations par année';
503
		$valeurs = implode(',', $obs_totale);
384
		$valeurs = implode(',', $obs_totale);
504
		$valeurs_max = (count($obs_totale) > 0 ) ? max($obs_totale) : 0;
385
		$valeurs_max = max($obs_totale);
505
		$valeurs_min = (count($obs_totale) > 0 ) ? min($obs_totale) : 0;
386
		$valeurs_min = min($obs_totale);
506
		$y_val_deb = preg_replace('/[0-9]{2}$/', '00', $valeurs_min);
387
		$y_val_deb = preg_replace('/[0-9]{2}$/', '00', $valeurs_min);
507
		$y_val_fin = $valeurs_max;
388
		$y_val_fin = $valeurs_max;
508
		$y_pas = round(($valeurs_max / 6), 0);
389
		$y_pas = round(($valeurs_max / 6), 0);
509
		$etiquettes_x = implode('|', $annees);;
390
		$etiquettes_x = implode('|', $annees);;
Line 525... Line 406...
525
		return $graph;
406
		return $graph;
526
	}
407
	}
Line 527... Line 408...
527
 
408
 
528
	private function getEvolObsHisto($param) {
409
	private function getEvolObsHisto($param) {
529
		// Récupération des données
410
		// Récupération des données
530
		$obs_totale = $this->executerRequeteEvol('cel_inventory', 'id');
411
		$obs_totale = $this->executerRequeteEvol('cel_obs', 'id_observation');
531
		$obs_identifiee = $this->executerRequeteEvol('cel_inventory', 'id', "identifiant LIKE '%@%' ");
412
		$obs_identifiee = $this->executerRequeteEvol('cel_obs', 'id_observation', "courriel_utilisateur LIKE '%@%' ");
Line 532... Line 413...
532
		$lignes = array('total', 'obs. identifiée');
413
		$lignes = array('total', 'obs. identifiée');
533
 
414
 
534
		// Post traitement des données
415
		// Post traitement des données
535
		$titre = 'Évolution des observations';
416
		$titre = 'Évolution des observations';
536
		$valeurs = implode(',', $obs_totale).'|'.implode(',', $obs_identifiee);
417
		$valeurs = implode(',', $obs_totale).'|'.implode(',', $obs_identifiee);
Line 537... Line 418...
537
		$valeurs_max = (count($obs_totale) > 0 ) ? max($obs_totale) : 0;
418
		$valeurs_max = max($obs_totale);
538
		$etiquettes = implode('|', array_keys($lignes));
419
		$etiquettes = implode('|', array_keys($lignes));
539
 
420
 
Line 550... Line 431...
550
		return $graph;
431
		return $graph;
551
	}
432
	}
Line 552... Line 433...
552
 
433
 
553
	private function getNbreObsIdVsTest($param) {
434
	private function getNbreObsIdVsTest($param) {
554
		// Récupération des données
435
		// Récupération des données
555
		$obs_totale = $this->executerRequeteNombre('cel_inventory', 'id');
436
		$obs_totale = $this->executerRequeteNombre('cel_obs', 'id_observation');
556
		$obs_identifiee = $this->executerRequeteNombre('cel_inventory', 'id', "identifiant LIKE '%@%' ");
437
		$obs_identifiee = $this->executerRequeteNombre('cel_obs', 'id_observation', "courriel_utilisateur LIKE '%@%' ");
557
		$obs_test = $obs_totale - $obs_identifiee;
438
		$obs_test = $obs_totale - $obs_identifiee;
558
		$pourcent_identifiee = round(($obs_identifiee / ($obs_totale / 100)), 2).'%';
439
		$pourcent_identifiee = round(($obs_identifiee / ($obs_totale / 100)), 2).'%';
Line 559... Line 440...
559
		$pourcent_anonyme = round(($obs_test / ($obs_totale / 100)), 2).'%';
440
		$pourcent_anonyme = round(($obs_test / ($obs_totale / 100)), 2).'%';
Line 579... Line 460...
579
		return $graph;
460
		return $graph;
580
	}
461
	}
Line 581... Line 462...
581
 
462
 
582
	private function getNbreObsPublicVsPrivee($param) {
463
	private function getNbreObsPublicVsPrivee($param) {
583
		// Récupération des données
464
		// Récupération des données
584
		$obs_totale = $this->executerRequeteNombre('cel_inventory', 'id');
465
		$obs_totale = $this->executerRequeteNombre('cel_obs', 'id_observation');
585
		$obs_public = $this->executerRequeteNombre('cel_inventory', 'id', 'transmission = 1');
466
		$obs_public = $this->executerRequeteNombre('cel_obs', 'id_observation', 'transmission = 1');
586
		$obs_privee = $obs_totale - $obs_public;
467
		$obs_privee = $obs_totale - $obs_public;
587
		$pourcent_privee = round(($obs_privee / ($obs_totale / 100)), 2).'%';
468
		$pourcent_privee = round(($obs_privee / ($obs_totale / 100)), 2).'%';
Line 588... Line 469...
588
		$pourcent_public = round(($obs_public / ($obs_totale / 100)), 2).'%';
469
		$pourcent_public = round(($obs_public / ($obs_totale / 100)), 2).'%';
Line 608... Line 489...
608
		return $graph;
489
		return $graph;
609
	}
490
	}
Line 610... Line 491...
610
 
491
 
611
	private function getNbreObsDetermineeVsInconnue($param) {
492
	private function getNbreObsDetermineeVsInconnue($param) {
612
		// Récupération des données
493
		// Récupération des données
613
		$obs_totale = $this->executerRequeteNombre('cel_inventory', 'id');
494
		$obs_totale = $this->executerRequeteNombre('cel_obs', 'id_observation');
614
		$obs_determinee = $this->executerRequeteNombre('cel_inventory', 'id', 'num_nom_sel != 0');
495
		$obs_determinee = $this->executerRequeteNombre('cel_obs', 'id_observation', 'nom_sel_nn != 0');
615
		$obs_inconnue = $obs_totale - $obs_determinee;
496
		$obs_inconnue = $obs_totale - $obs_determinee;
616
		$pourcent_determinee = round(($obs_determinee / ($obs_totale / 100)), 2).'%';
497
		$pourcent_determinee = round(($obs_determinee / ($obs_totale / 100)), 2).'%';
Line 617... Line 498...
617
		$pourcent_inconnue = round(($obs_inconnue / ($obs_totale / 100)), 2).'%';
498
		$pourcent_inconnue = round(($obs_inconnue / ($obs_totale / 100)), 2).'%';
Line 637... Line 518...
637
		return $graph;
518
		return $graph;
638
	}
519
	}
Line 639... Line 520...
639
 
520
 
640
	private function getNbreObsAvecIndicationGeo($param) {
521
	private function getNbreObsAvecIndicationGeo($param) {
641
		// Récupération des données
522
		// Récupération des données
642
		$total = $this->executerRequeteNombre('cel_inventory', 'id');
523
		$total = $this->executerRequeteNombre('cel_obs', 'id_observation');
643
		$where_commune = $this->creerWhereIndicationGeo('location');
524
		$where_commune = $this->creerWhereIndicationGeo('zone_geo');
644
		$obs['commune'] = $this->executerRequeteNombre('cel_inventory', 'id', $where_commune);
525
		$obs['commune'] = $this->executerRequeteNombre('cel_obs', 'id_observation', $where_commune);
645
		$where_commune_id = $this->creerWhereIndicationGeo('id_location');
526
		$where_commune_id = $this->creerWhereIndicationGeo('ce_zone_geo');
646
		$obs['commune identifiée'] = $this->executerRequeteNombre('cel_inventory', 'id', $where_commune_id);
527
		$obs['commune identifiée'] = $this->executerRequeteNombre('cel_obs', 'id_observation', $where_commune_id);
647
		$where_lieudit = $this->creerWhereIndicationGeo('lieudit');
528
		$where_lieudit = $this->creerWhereIndicationGeo('lieudit');
648
		$obs['lieu-dit'] = $this->executerRequeteNombre('cel_inventory', 'id', $where_lieudit);
529
		$obs['lieu-dit'] = $this->executerRequeteNombre('cel_obs', 'id_observation', $where_lieudit);
649
		$where_station = $this->creerWhereIndicationGeo('station');
530
		$where_station = $this->creerWhereIndicationGeo('station');
650
		$obs['station'] = $this->executerRequeteNombre('cel_inventory', 'id', $where_station);
531
		$obs['station'] = $this->executerRequeteNombre('cel_obs', 'id_observation', $where_station);
651
		$where_milieu = $this->creerWhereIndicationGeo('milieu');
532
		$where_milieu = $this->creerWhereIndicationGeo('milieu');
652
		$obs['milieu'] = $this->executerRequeteNombre('cel_inventory', 'id', $where_milieu);
533
		$obs['milieu'] = $this->executerRequeteNombre('cel_obs', 'id_observation', $where_milieu);
653
		$where_xy = $this->creerWhereIndicationGeo('coord_x').' AND '.$this->creerWhereIndicationGeo('coord_y');
534
		$where_xy = $this->creerWhereIndicationGeo('latitude').' AND '.$this->creerWhereIndicationGeo('longitude');
Line 654... Line 535...
654
		$obs['coordonnée'] = $this->executerRequeteNombre('cel_inventory', 'id', $where_xy);
535
		$obs['coordonnée'] = $this->executerRequeteNombre('cel_obs', 'id_observation', $where_xy);
655
 
536
 
656
		$donnees = array();
537
		$donnees = array();
657
		$num = 1;
538
		$num = 1;
Line 703... Line 584...
703
		}
584
		}
704
		$aujourdhui_fmt = strftime('%d %b %Y', strtotime($aujourdhui));
585
		$aujourdhui_fmt = strftime('%d %b %Y', strtotime($aujourdhui));
Line 705... Line 586...
705
 
586
 
706
		// Récupération des données
587
		// Récupération des données
707
		$max_obs = array();
588
		$max_obs = array();
708
		$max_obs[] = $this->executerRequeteEvol('cel_inventory', 'id', '%Y%m%d',
589
		$max_obs[] = $this->executerRequeteEvol('cel_obs', 'id_observation', '%Y%m%d',
709
			"date_creation NOT LIKE '$aujourdhui%' ", 'date_creation');
590
			"date_creation NOT LIKE '$aujourdhui%' ", 'date_creation');
710
		$max_obs[] = $this->executerRequeteEvol('cel_inventory', 'id', '%Y%m%d',
591
		$max_obs[] = $this->executerRequeteEvol('cel_obs', 'id_observation', '%Y%m%d',
711
			"date_modification NOT LIKE '$aujourdhui%' ", 'date_modification');
592
			"date_modification NOT LIKE '$aujourdhui%' ", 'date_modification');
712
		$max_obs[] = $this->executerRequeteEvol('cel_inventory', 'id', '%Y%m%d',
593
		$max_obs[] = $this->executerRequeteEvol('cel_obs', 'id_observation', '%Y%m%d',
713
			"date_transmission NOT LIKE '$aujourdhui%' ", 'date_transmission');
594
			"date_transmission NOT LIKE '$aujourdhui%' ", 'date_transmission');
714
		$obs_aujourdhui = $this->executerRequeteNombre('cel_inventory', 'id',
595
		$obs_aujourdhui = $this->executerRequeteNombre('cel_obs', 'id_observation',
715
			"(date_creation LIKE '$aujourdhui%'
596
			"(date_creation LIKE '$aujourdhui%'
716
				OR date_modification LIKE '$aujourdhui%'
597
				OR date_modification LIKE '$aujourdhui%'
Line 717... Line 598...
717
				OR date_transmission LIKE '$aujourdhui%') ");
598
				OR date_transmission LIKE '$aujourdhui%') ");
Line 757... Line 638...
757
		return $graph;
638
		return $graph;
758
	}
639
	}
Line 759... Line 640...
759
 
640
 
760
	private function getNbreObsParUtilisateur($param) {
641
	private function getNbreObsParUtilisateur($param) {
761
		// Récupération des données
642
		// Récupération des données
762
		$requete = 	'SELECT identifiant, COUNT(id) AS nbre '.
643
		$requete = 	'SELECT courriel_utilisateur, COUNT(id_observation) AS nbre '.
763
					'FROM cel_inventory '.
644
					'FROM cel_obs '.
764
					'GROUP BY identifiant ';
645
					'GROUP BY courriel_utilisateur ';
Line 765... Line 646...
765
		$utilisateurs = $this->executerRequete($requete);
646
		$utilisateurs = $this->executerRequete($requete);
766
 
647
 
767
		// Création des classes d'utilisateurs
648
		// Création des classes d'utilisateurs
768
		$classes = array('00->10' => 0, '11->50' => 0, '51->100' => 0, '101->500' => 0, '500->∞' => 0);
649
		$classes = array('00->10' => 0, '11->50' => 0, '51->100' => 0, '101->500' => 0, '500->∞' => 0);
769
		$donnees['Utilisateurs'] = $classes;
650
		$donnees['Utilisateurs'] = $classes;
770
		$valeur_max = 0;
651
		$valeur_max = 0;
771
		foreach ($utilisateurs as $utilisateur) {
652
		foreach ($utilisateurs as $utilisateur) {
Line 772... Line 653...
772
			$id = $utilisateur['identifiant'];
653
			$id = $utilisateur['courriel_utilisateur'];
773
			$nbre = $utilisateur['nbre'];
654
			$nbre = $utilisateur['nbre'];
774
 
655
 
Line 824... Line 705...
824
		return $graph;
705
		return $graph;
825
	}
706
	}
Line 826... Line 707...
826
 
707
 
827
	private function getNbreObsParUtilisateurEtTest($param) {
708
	private function getNbreObsParUtilisateurEtTest($param) {
828
		// Récupération des données
709
		// Récupération des données
829
		$requete = 	'SELECT identifiant, COUNT(id) AS nbre '.
710
		$requete = 	'SELECT courriel_utilisateur, COUNT(id_observation) AS nbre '.
830
					'FROM cel_inventory '.
711
					'FROM cel_obs '.
831
					'GROUP BY identifiant ';
712
					'GROUP BY courriel_utilisateur ';
Line 832... Line 713...
832
		$utilisateurs = $this->executerRequete($requete);
713
		$utilisateurs = $this->executerRequete($requete);
833
 
714
 
834
		// Création des classes d'utilisateurs
715
		// Création des classes d'utilisateurs
835
		$classes = array('00->10' => 0, '11->50' => 0, '51->100' => 0, '101->500' => 0, '500->∞' => 0);
716
		$classes = array('00->10' => 0, '11->50' => 0, '51->100' => 0, '101->500' => 0, '500->∞' => 0);
836
		$donnees['Utilisateurs'] = $classes;
717
		$donnees['Utilisateurs'] = $classes;
837
		$donnees['Tests'] = $classes;
718
		$donnees['Tests'] = $classes;
838
		$valeur_max = 0;
719
		$valeur_max = 0;
839
		foreach ($utilisateurs as $utilisateur) {
720
		foreach ($utilisateurs as $utilisateur) {
Line 840... Line 721...
840
			$id = $utilisateur['identifiant'];
721
			$id = $utilisateur['courriel_utilisateur'];
841
			$nbre = $utilisateur['nbre'];
722
			$nbre = $utilisateur['nbre'];
842
 
723
 
Line 899... Line 780...
899
 
780
 
900
	private function getNuagePointsObsParHeureEtJourSemaine($param) {
781
	private function getNuagePointsObsParHeureEtJourSemaine($param) {
Line 901... Line 782...
901
		$utilisateur = isset($_GET['utilisateur']) ? $this->bdd->quote($_GET['utilisateur']) : false;
782
		$utilisateur = isset($_GET['utilisateur']) ? $this->bdd->quote($_GET['utilisateur']) : false;
902
		
783
		
903
		// Récupération des données de la base
784
		// Récupération des données de la base
904
		$requete = 	'SELECT identifiant, DATE_FORMAT(date_creation, "%w-%H") AS periode, (ROUND(LOG10(COUNT(id))) + 1) AS nbre '.
785
		$requete = 	'SELECT courriel_utilisateur, DATE_FORMAT(date_creation, "%w-%H") AS periode, (ROUND(LOG10(COUNT(id_observation))) + 1) AS nbre '.
905
					'FROM cel_inventory '.
786
					'FROM cel_obs '.
906
					'WHERE date_creation != "0000-00-00 00:00:00" '.
787
					'WHERE date_creation != "0000-00-00 00:00:00" '.
907
					'	AND identifiant '.($utilisateur ? "= $utilisateur " : 'LIKE "%@%" ').
788
					'	AND courriel_utilisateur '.($utilisateur ? "= $utilisateur " : 'LIKE "%@%" ').
Line 908... Line 789...
908
					'GROUP BY periode, identifiant ';
789
					'GROUP BY periode, courriel_utilisateur ';
909
		$infos = $this->executerRequete($requete);
790
		$infos = $this->executerRequete($requete);
910
		
791
		
Line 970... Line 851...
970
		return $graph;
851
		return $graph;
971
	}
852
	}
Line 972... Line 853...
972
 
853
 
973
	private function getNuagePointsObsAnciennete($param) {
854
	private function getNuagePointsObsAnciennete($param) {
974
		// Récupération des données de la base
855
		// Récupération des données de la base
975
		$requete = 	'SELECT  DISTINCT identifiant , '.
856
		$requete = 	'SELECT  DISTINCT courriel_utilisateur , '.
976
					'	MIN(date_creation) AS date_min, MAX(date_creation) AS date_max, '.
857
					'	MIN(date_creation) AS date_min, MAX(date_creation) AS date_max, '.
977
					'	COUNT(id) AS obs_nbre '.
858
					'	COUNT(id_observation) AS obs_nbre '.
978
					'FROM cel_inventory '.
859
					'FROM cel_obs '.
979
					"WHERE date_creation != '0000-00-00 00:00:00' ".
860
					"WHERE date_creation != '0000-00-00 00:00:00' ".
980
					"	AND identifiant LIKE '%@%' ".
861
					"	AND courriel_utilisateur LIKE '%@%' ".
981
					'GROUP BY identifiant '.
862
					'GROUP BY courriel_utilisateur '.
982
					'ORDER BY date_min ASC ';
863
					'ORDER BY date_min ASC ';
Line 983... Line 864...
983
		$resultats = $this->executerRequete($requete);
864
		$resultats = $this->executerRequete($requete);
984
 
865
 
Line 1049... Line 930...
1049
		$utilisateur = isset($_GET['utilisateur']) ? $this->bdd->quote($_GET['utilisateur']) : false;
930
		$utilisateur = isset($_GET['utilisateur']) ? $this->bdd->quote($_GET['utilisateur']) : false;
Line 1050... Line 931...
1050
		
931
		
1051
		$requete = 	"SELECT DATE_FORMAT($champ_date, '$format_date') AS periode, COUNT($champ) AS nbre ".
932
		$requete = 	"SELECT DATE_FORMAT($champ_date, '$format_date') AS periode, COUNT($champ) AS nbre ".
1052
					"FROM $table ".
933
					"FROM $table ".
1053
					"WHERE $champ_date != '0000-00-00 00:00:00' ".
934
					"WHERE $champ_date != '0000-00-00 00:00:00' ".
1054
					(($utilisateur != false) ? " AND identifiant = $utilisateur " : '').
935
					(($utilisateur != false) ? " AND courriel_utilisateur = $utilisateur " : '').
1055
					((is_null($where)) ? '' : " AND $where ").
936
					((is_null($where)) ? '' : " AND $where ").
1056
					'GROUP BY periode '.
937
					'GROUP BY periode '.
1057
					((is_null($order_by)) ? '' : "ORDER BY $order_by ");
938
					((is_null($order_by)) ? '' : "ORDER BY $order_by ");
-
 
939
					((is_null($limit)) ? '' : "LIMIT $limit ");
1058
					((is_null($limit)) ? '' : "LIMIT $limit ");
940
 
Line 1059... Line 941...
1059
		$evolution = $this->executerRequete($requete);
941
		$evolution = $this->executerRequete($requete);
1060
 
942
 
1061
		// Traitement du tableau
-
 
1062
		$donnees_traitees = array();
943
		// Traitement du tableau
1063
		if ($evolution !== false) {
944
		$donnees_traitees = array();
1064
			foreach ($evolution as $info) {
-
 
1065
				$donnees_traitees[$info['periode']] = $info['nbre'];
945
		foreach ($evolution as $info) {
-
 
946
			$donnees_traitees[$info['periode']] = $info['nbre'];
1066
			}
947
		}
1067
		}
948
 
Line 1068... Line 949...
1068
		return $donnees_traitees;
949
		return $donnees_traitees;
1069
	}
950
	}
1070
 
951
 
1071
	private function executerRequeteNombre($table, $champ, $where = null) {
952
	private function executerRequeteNombre($table, $champ, $where = null) {
1072
		$utilisateur = null;
953
		$utilisateur = null;
1073
		if (isset($_GET['utilisateur'])) {
954
		if (isset($_GET['utilisateur'])) {
1074
			$utilisateur = $this->bdd->quote($_GET['utilisateur']);
955
			$utilisateur = $this->bdd->quote($_GET['utilisateur']);
Line 1075... Line 956...
1075
			$where = isset($where) ? $where.' AND ' : '';
956
			$where = isset($where) ? $where.' AND ' : '';
1076
			$where .= "identifiant = $utilisateur ";
957
			$where .= "courriel_utilisateur = $utilisateur ";
1077
		}
958
		}
1078
		
959
		
1079
		$requete = 	"SELECT COUNT($champ) AS nbre ".
960
		$requete = 	"SELECT COUNT($champ) AS nbre ".
1080
					"FROM $table ".
961
					"FROM $table ".
1081
					((isset($where)) ? "WHERE $where " : '');
962
					((isset($where)) ? "WHERE $where " : '');
1082
		
-
 
1083
		$nbre = $this->executerRequete($requete, 'Column');
963
 
-
 
964
		$nbre = $this->executerRequete($requete, 'Column');
-
 
965
		return $nbre;
1084
		return $nbre;
966
	}