Subversion Repositories eFlore/Applications.cel

Rev

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

Rev 697 Rev 702
Line 27... Line 27...
27
		if (isset($ressources[0])) {
27
		if (isset($ressources[0])) {
28
			$this->analyserParametresUrl();
28
			$this->analyserParametresUrl();
29
			$stat_demande = array_shift($ressources);
29
			$stat_demande = array_shift($ressources);
30
			$methode = 'get'.$stat_demande;
30
			$methode = 'get'.$stat_demande;
31
			if (method_exists($this, $methode)) {
31
			if (method_exists($this, $methode)) {
-
 
32
				$this->ressources = $ressources;
32
				$stats = $this->$methode($ressources);
33
				$stats = $this->$methode($ressources);
33
			} else {
34
			} else {
34
				$this->messages[] = "Ce type de statistiques '$stat_demande' n'est pas disponible.";
35
				$this->messages[] = "Ce type de statistiques '$stat_demande' n'est pas disponible.";
35
			}
36
			}
36
		} else {
37
		} else {
Line 41... Line 42...
41
			$this->envoyerJson($stats);
42
			$this->envoyerJson($stats);
42
		}
43
		}
43
	}
44
	}
Line 44... Line 45...
44
	
45
	
45
	private function analyserParametresUrl() {
46
	private function analyserParametresUrl() {
46
		$this->parametres['utilisateur'] = isset($_GET['utilisateur']) ? $this->bdd->quote($_GET['utilisateur']) : null;
47
		$this->parametres['utilisateur'] = isset($_GET['utilisateur']) ? $this->bdd->quote($this->verifierSecuriteParametreUrl($_GET['utilisateur'])) : null;
-
 
48
		$this->parametres['num_taxon'] = isset($_GET['num_taxon']) ? $this->bdd->quote($this->verifierSecuriteParametreUrl($_GET['num_taxon'])) : null;
-
 
49
		$this->parametres['taxon'] = isset($_GET['taxon']) ? $this->bdd->quote($this->verifierSecuriteParametreUrl($_GET['taxon'].'%')) : null;
-
 
50
		$this->parametres['start'] = isset($_GET['start']) ? $this->verifierSecuriteParametreUrl($_GET['start']) : null;
47
		$this->parametres['num_taxon'] = isset($_GET['num_taxon']) ? $this->bdd->quote($_GET['num_taxon']) : null;
51
		$this->parametres['limit'] = isset($_GET['limit']) ? $this->verifierSecuriteParametreUrl($_GET['limit']) : null;
Line -... Line 52...
-
 
52
	}
-
 
53
	
-
 
54
	private function getListeUtilisateursNbrePhotos() {
-
 
55
		$requete = $this->construireRequeteListeUtilisateurNbrePhoto();
-
 
56
		$resultats = $this->executerRequete($requete);
-
 
57
		$liste = array();
-
 
58
		if ($resultats != false) {
-
 
59
			foreach ($resultats as $resultat) {
-
 
60
				$liste[$resultat['identifiant']] = $resultat['nbre'];
-
 
61
			}
-
 
62
		}
-
 
63
		return $liste;
-
 
64
	}
-
 
65
	
-
 
66
	private function construireRequeteListeUtilisateurNbrePhoto() {
-
 
67
		$select = 	'SELECT identifiant, COUNT(DISTINCT ci_id_image) AS nbre ';
-
 
68
		$from = 	'FROM cel_inventory '.
-
 
69
					'	LEFT JOIN cel_obs_images ON (coi_ce_observation = ordre AND coi_ce_utilisateur = identifiant) '.
-
 
70
					'	LEFT JOIN cel_images ON (coi_ce_image = ci_id_image) ';
-
 
71
		$where = 	'WHERE transmission = 1 ';
-
 
72
		$groupBy = 	'GROUP BY identifiant ';
-
 
73
		$orderBy = 	'ORDER BY nbre DESC ';
-
 
74
		$limitSql =	'LIMIT 0,150 ';
-
 
75
		
-
 
76
		
-
 
77
		if (count($this->parametres) != 0) {
-
 
78
			extract($this->parametres);
-
 
79
			
-
 
80
			$filtres = array();
-
 
81
			
-
 
82
			if (isset($utilisateur)) {
-
 
83
				$filtres[] = "identifiant = $utilisateur ";
-
 
84
			}
-
 
85
			if (isset($num_taxon)) {
-
 
86
				$filtres[] = "num_taxon = $num_taxon ";
-
 
87
			}
-
 
88
			if (isset($taxon)) {
-
 
89
				$filtres[] = "nom_ret LIKE $taxon ";
-
 
90
			}
-
 
91
			$where .= ((count($filtres) > 0) ? 'AND '.implode(' AND ', $filtres) : '');
-
 
92
			
-
 
93
			if (isset($start)) {
-
 
94
				$limitSql = str_replace('0,', "$start,", $limitSql);
-
 
95
			}
-
 
96
			if (isset($limit)) {
-
 
97
				$limitSql = str_replace('150', $limit, $limitSql);
-
 
98
			}
-
 
99
		}
-
 
100
		
-
 
101
		$requete = $select.$from.$where.$groupBy.$orderBy.$limitSql;
-
 
102
		
-
 
103
		return $requete;
-
 
104
	}
-
 
105
	
-
 
106
	private function getListeTaxonsNbrePhotos() {
-
 
107
		$requete = $this->construireRequeteListeTaxonNbrePhoto();
-
 
108
		$resultats = $this->executerRequete($requete);
-
 
109
		$liste = array();
-
 
110
		if ($resultats != false) {
-
 
111
			foreach ($resultats as $resultat) {
-
 
112
				$liste[$resultat['nom_ret']] = $resultat['nbre'];
-
 
113
			}
-
 
114
		}
-
 
115
		return $liste;
-
 
116
	}
-
 
117
	
-
 
118
	private function construireRequeteListeTaxonNbrePhoto() {
-
 
119
		$select = 	'SELECT nom_ret, COUNT(DISTINCT ci_id_image) AS nbre ';
-
 
120
		$from = 	'FROM cel_inventory '.
-
 
121
					'	LEFT JOIN cel_obs_images ON (coi_ce_observation = ordre AND coi_ce_utilisateur = identifiant) '.
-
 
122
					'	LEFT JOIN cel_images ON (coi_ce_image = ci_id_image) ';
-
 
123
		$where = 	'WHERE transmission = 1 '.
-
 
124
					"	AND nom_ret != '' ";
-
 
125
		$groupBy = 	'GROUP BY nom_ret ';
-
 
126
		$orderBy = 	'ORDER BY nbre DESC ';
-
 
127
		$limitSql =	'LIMIT 0,150 ';
-
 
128
		
-
 
129
		
-
 
130
		if (count($this->parametres) != 0) {
-
 
131
			extract($this->parametres);
-
 
132
			
-
 
133
			$filtres = array();
-
 
134
			
-
 
135
			if (isset($utilisateur)) {
-
 
136
				$filtres[] = "identifiant = $utilisateur ";
-
 
137
			}
-
 
138
			if (isset($num_taxon)) {
-
 
139
				$filtres[] = "num_taxon = $num_taxon ";
-
 
140
			}
-
 
141
			if (isset($taxon)) {
-
 
142
				$filtres[] = "nom_ret LIKE $taxon ";
-
 
143
			}
-
 
144
			$where .= ((count($filtres) > 0) ? 'AND '.implode(' AND ', $filtres) : '');
-
 
145
			
-
 
146
			if (isset($start)) {
-
 
147
				$limitSql = str_replace('0,', "$start,", $limitSql);
-
 
148
			}
-
 
149
			if (isset($limit)) {
-
 
150
				$limitSql = str_replace('150', $limit, $limitSql);
-
 
151
			}
-
 
152
		}
-
 
153
		
-
 
154
		$requete = $select.$from.$where.$groupBy.$orderBy.$limitSql;
-
 
155
		return $requete;
48
	}
156
	}
Line 49... Line 157...
49
	
157
	
50
	private function getNombres($param) {
158
	private function getNombres() {
Line 51... Line 159...
51
 
159
 
Line 78... Line 186...
78
			if ($resultat['nbre'] > $info['observationsParCommunesMax']) {
186
			if ($resultat['nbre'] > $info['observationsParCommunesMax']) {
79
				$info['observationsParCommunesMax'] = $resultat['nbre'];
187
				$info['observationsParCommunesMax'] = $resultat['nbre'];
80
			}
188
			}
81
			$info['observationsParCommunesTotal'] += $resultat['nbre'];
189
			$info['observationsParCommunesTotal'] += $resultat['nbre'];
82
		}
190
		}
83
		$info['observationsParCommunesMoyenne'] = round($info['observationsParCommunesTotal'] / $info['communes'], 2);
191
		$info['observationsParCommunesMoyenne'] = ($info['communes'] > 0 ) ? round($info['observationsParCommunesTotal'] / $info['communes'], 2) : 0;
Line 84... Line 192...
84
		
192
		
85
		return $info;		
193
		return $info;		
Line 86... Line 194...
86
	}
194
	}
Line 97... Line 205...
97
				$filtres[] = "identifiant = $utilisateur ";
205
				$filtres[] = "identifiant = $utilisateur ";
98
			}
206
			}
99
			if (isset($num_taxon)) {
207
			if (isset($num_taxon)) {
100
				$filtres[] = "num_taxon = $num_taxon ";
208
				$filtres[] = "num_taxon = $num_taxon ";
101
			}
209
			}
-
 
210
			if (isset($taxon)) {
-
 
211
				$filtres[] = "nom_ret LIKE $taxon ";
-
 
212
			}
Line 102... Line 213...
102
			
213
			
103
			$requete .= ((count($filtres) > 0) ? 'WHERE '.implode(' AND ', $filtres) : '');
214
			$requete .= ((count($filtres) > 0) ? 'WHERE '.implode(' AND ', $filtres) : '');
Line 104... Line 215...
104
		}
215
		}
Line 119... Line 230...
119
				$filtres[] = "identifiant = $utilisateur ";
230
				$filtres[] = "identifiant = $utilisateur ";
120
			}
231
			}
121
			if (isset($num_taxon)) {
232
			if (isset($num_taxon)) {
122
				$filtres[] = "num_taxon = $num_taxon ";
233
				$filtres[] = "num_taxon = $num_taxon ";
123
			}
234
			}
-
 
235
			if (isset($taxon)) {
-
 
236
				$filtres[] = "nom_ret LIKE $taxon ";
-
 
237
			}
Line 124... Line 238...
124
			
238
			
125
			$requete .= ((count($filtres) > 0) ? 'AND '.implode(' AND ', $filtres) : '');
239
			$requete .= ((count($filtres) > 0) ? 'AND '.implode(' AND ', $filtres) : '');
Line 126... Line 240...
126
		}
240
		}
Line 143... Line 257...
143
				$filtres[] = "identifiant = $utilisateur ";
257
				$filtres[] = "identifiant = $utilisateur ";
144
			}
258
			}
145
			if (isset($num_taxon)) {
259
			if (isset($num_taxon)) {
146
				$filtres[] = "num_taxon = $num_taxon ";
260
				$filtres[] = "num_taxon = $num_taxon ";
147
			}
261
			}
-
 
262
			if (isset($taxon)) {
-
 
263
				$filtres[] = "nom_ret LIKE $taxon ";
-
 
264
			}
Line 148... Line 265...
148
			
265
			
149
			$requete .= ((count($filtres) > 0) ? 'AND '.implode(' AND ', $filtres) : '');
266
			$requete .= ((count($filtres) > 0) ? 'AND '.implode(' AND ', $filtres) : '');
150
		}
267
		}
Line 164... Line 281...
164
			
281
			
165
			if (isset($utilisateur)) {
282
			if (isset($utilisateur)) {
166
				$filtres[] = "ci_ce_utilisateur = $utilisateur ";
283
				$filtres[] = "ci_ce_utilisateur = $utilisateur ";
167
			}
284
			}
168
			if (isset($num_taxon)) {
-
 
169
				$from .= 'LEFT JOIN cel_obs_images ON (coi_ce_image = ci_id_image) '.
-
 
-
 
285
			if (isset($num_taxon)) {
170
						'LEFT JOIN cel_inventory ON (coi_ce_observation = ordre AND coi_ce_utilisateur = identifiant) '; 
286
				 
171
				$filtres[] = "num_taxon = $num_taxon ";
287
				$filtres[] = "num_taxon = $num_taxon ";
-
 
288
			}
-
 
289
			if (isset($taxon)) {
-
 
290
				$filtres[] = "nom_ret LIKE $taxon ";
-
 
291
			}
-
 
292
			if (isset($num_taxon) || isset($taxon)) {
-
 
293
				$from .= 'LEFT JOIN cel_obs_images ON (coi_ce_image = ci_id_image) '.
-
 
294
						'LEFT JOIN cel_inventory ON (coi_ce_observation = ordre AND coi_ce_utilisateur = identifiant) ';
Line 172... Line 295...
172
			}
295
			}
173
			
296
			
Line 174... Line 297...
174
			$where = ((count($filtres) > 0) ? 'WHERE '.implode(' AND ', $filtres) : '');
297
			$where = ((count($filtres) > 0) ? 'WHERE '.implode(' AND ', $filtres) : '');
Line 190... Line 313...
190
			
313
			
191
			if (isset($utilisateur)) {
314
			if (isset($utilisateur)) {
192
				$filtres[] = "coi_ce_utilisateur = $utilisateur ";
315
				$filtres[] = "coi_ce_utilisateur = $utilisateur ";
193
			}
316
			}
194
			if (isset($num_taxon)) {
-
 
195
				$from .= 'LEFT JOIN cel_inventory ON (coi_ce_observation = ordre AND coi_ce_utilisateur = identifiant) ';
317
			if (isset($num_taxon)) {
196
				$filtres[] = "num_taxon = $num_taxon ";
318
				$filtres[] = "num_taxon = $num_taxon ";
-
 
319
			}
-
 
320
			if (isset($taxon)) {
-
 
321
				$filtres[] = "nom_ret LIKE $taxon ";
-
 
322
			}
-
 
323
			
-
 
324
			if (isset($num_taxon) || isset($taxon)) {
-
 
325
				$from .= 'LEFT JOIN cel_inventory ON (coi_ce_observation = ordre AND coi_ce_utilisateur = identifiant) ';
Line 197... Line 326...
197
			}
326
			}
198
			
327
			
Line 199... Line 328...
199
			$where = ((count($filtres) > 0) ? 'WHERE '.implode(' AND ', $filtres) : '');
328
			$where = ((count($filtres) > 0) ? 'WHERE '.implode(' AND ', $filtres) : '');
Line 217... Line 346...
217
				$filtres[] = "identifiant = $utilisateur ";
346
				$filtres[] = "identifiant = $utilisateur ";
218
			}
347
			}
219
			if (isset($num_taxon)) {
348
			if (isset($num_taxon)) {
220
				$filtres[] = "num_taxon = $num_taxon ";
349
				$filtres[] = "num_taxon = $num_taxon ";
221
			}
350
			}
-
 
351
			if (isset($taxon)) {
-
 
352
				$filtres[] = "nom_ret LIKE $taxon ";
-
 
353
			}
Line 222... Line 354...
222
			
354
			
223
			$where = ((count($filtres) > 0) ? 'WHERE '.implode(' AND ', $filtres) : '');
355
			$where = ((count($filtres) > 0) ? 'WHERE '.implode(' AND ', $filtres) : '');
Line 224... Line 356...
224
		}
356
		}