Subversion Repositories eFlore/Applications.cel

Rev

Rev 2262 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
429 jpm 1
<?php
2
/**
3
 * Widget fournissant des stats graphiques du CEL.
4
 * Encodage en entrée : utf8
5
 * Encodage en sortie : utf8
6
 *
7
 * @author Jean-Pascal MILCENT <jpm@clapas.org>
8
 * @license GPL v3 <http://www.gnu.org/licenses/gpl.txt>
9
 * @license CECILL v2 <http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt>
10
 * @version $Id$
11
 * @copyright © 2010, Jean-Pascal MILCENT
12
 */
13
class Stats extends WidgetCommun {
700 jpm 14
	const PAGE_DEFAUT = 'defaut';
15
	const MODE_DEFAUT = 'defaut';
16
	const MODE_UTILISATEUR = 'utilisateur';
17
	private $page;
18
	private $mode;
2260 mathias 19
	/**
2262 mathias 20
	 * Si spécifié, pas de barre de navigation inter-applications
2260 mathias 21
	 * Attention, pour l'instant nobar désactive également le bouton pour avoir ses stats personnelles
22
	 */
23
	private $nobar;
565 jpm 24
 
429 jpm 25
	/**
26
	 * Méthode appelée avec une requête de type GET.
27
	 */
28
	public function executer() {
29
		$retour = null;
565 jpm 30
 
31
		extract($this->parametres);
700 jpm 32
		$this->mode = (isset($mode)) ? $mode : self::MODE_DEFAUT;
33
		$this->page = (isset($page)) ? $page : self::PAGE_DEFAUT;
2260 mathias 34
		$this->nobar = (isset($nobar)) ? $nobar : false;
700 jpm 35
 
36
		$methode = $this->traiterNomMethodeExecuter($this->page);
429 jpm 37
		if (method_exists($this, $methode)) {
38
			$retour = $this->$methode();
39
		} else {
2182 mathias 40
			$this->messages[] = "Le type de statistiques '$methode' n'est pas disponible.";
429 jpm 41
		}
42
 
43
		if (is_null($retour)) {
44
			$info = 'Un problème est survenu : '.print_r($this->messages, true);
45
			$this->envoyer($info);
2203 mathias 46
		} else if (is_array($retour) && isset($retour['squelette'])) { // compatibilité avec un retour de HTML direct
429 jpm 47
			$squelette = dirname(__FILE__).DIRECTORY_SEPARATOR.'squelettes'.DIRECTORY_SEPARATOR.$retour['squelette'].'.tpl.html';
48
			$html = $this->traiterSquelettePhp($squelette, $retour['donnees']);
49
			$this->envoyer($html);
2202 mathias 50
		} else {
51
			$this->envoyer($retour);
429 jpm 52
		}
53
	}
54
 
55
	/**
2202 mathias 56
	 * Stats par défaut - exécute tout et met ça dans un squelette Bootstrap
429 jpm 57
	 */
58
	public function executerDefaut() {
59
		$widget = null;
2202 mathias 60
		$widget['squelette'] = 'stats_tout'; // squelette bootstrap unifié
61
		$utilisateur_authentifie = false;
62
 
704 jpm 63
		switch ($this->mode) {
64
			case self::MODE_DEFAUT :
65
				break;
66
			case self::MODE_UTILISATEUR :
2202 mathias 67
				$auth = $this->authentifierUtilisateur();
68
				if ($auth) {
69
					$utilisateur_authentifie = true;
704 jpm 70
					$widget['donnees']['utilisateur'] = $this->getAuthIdentifiant();
71
					$widget['donnees']['utilisateur_nom_prenom'] = $this->recupererPrenomNomIdentifie();
72
				}
73
				break;
74
			default :
75
				$this->messages[] = "Le mode '{$this->mode}' est inconnu.";
700 jpm 76
		}
703 jpm 77
 
78
		if (!is_null($widget)) {
2202 mathias 79
			$widget['donnees']['url_css'] = sprintf($this->config['chemins']['baseURLAbsoluDyn'], 'modules/stats/squelettes/css/stats_tout.css');
80
			$widget['donnees']['url_js'] = sprintf($this->config['chemins']['baseURLAbsoluDyn'], 'modules/stats/squelettes/js/defaut.js');
2218 mathias 81
			$widget['donnees']['url_script_navigation'] = sprintf($this->config['chemins']['baseURLRessources'], 'tb/reseau/navigation.js');
82
 
83
			$widget['donnees']['url_js_bootstrap'] = sprintf($this->config['chemins']['baseURLRessources'], 'bootstrap/3.1.0/js/bootstrap.min.js');
84
			$widget['donnees']['url_css_bootstrap'] = sprintf($this->config['chemins']['baseURLRessources'], 'bootstrap/3.1.0/css/bootstrap.min.css');
85
 
86
			$widget['donnees']['mode_serveur'] = $this->config['parametres']['modeServeur'];
2202 mathias 87
			$widget['donnees']['url_image_chargement'] = sprintf($this->config['chemins']['baseURLAbsoluDyn'], 'modules/stats/squelettes/img/chargement.gif');
88
			$widget['donnees']['url_widget'] = sprintf($this->config['chemins']['baseURLAbsoluDyn'], 'stats');
703 jpm 89
			$widget['donnees']['url_service'] = sprintf($this->config['chemins']['baseURLServicesCelTpl'], 'CelStatistique');
90
			$widget['donnees']['filtres'] = $this->parametres;
2202 mathias 91
			$widget['donnees']['utilisateur_authentifie'] = $utilisateur_authentifie;
2260 mathias 92
 
93
			$widget['donnees']['nobar'] = $this->nobar;
703 jpm 94
		}
429 jpm 95
		return $widget;
96
	}
2202 mathias 97
 
700 jpm 98
	public function executerNombres() {
565 jpm 99
		$widget = null;
700 jpm 100
 
704 jpm 101
		switch ($this->mode) {
102
			case self::MODE_DEFAUT :
103
				$widget['donnees'] = (array) $this->recupererStatsTxtNombres();
104
				break;
105
			case self::MODE_UTILISATEUR :
106
				if ($this->authentifierUtilisateur()) {
107
					$widget['donnees'] = (array) $this->recupererStatsTxtNombres();
2202 mathias 108
					$widget['donnees']['utilisateur'] = $this->getAuthIdentifiant();
704 jpm 109
					$widget['donnees']['utilisateur_nom_prenom'] = $this->recupererPrenomNomIdentifie();
110
				}
111
				break;
112
			default:
113
				$this->messages[] = "Le mode '{$this->mode}' est inconnu.";
565 jpm 114
		}
700 jpm 115
 
116
		if (!is_null($widget)) {
2202 mathias 117
			$widget['squelette'] = 'nombres';
703 jpm 118
			$widget['donnees']['filtres'] = $this->parametres;
700 jpm 119
		}
120
 
565 jpm 121
		return $widget;
122
	}
695 jpm 123
 
2202 mathias 124
	public function executerListeTaxonsNbrePhotos() {
125
		$widget = null;
126
 
127
		switch ($this->mode) {
128
			case self::MODE_DEFAUT :
129
				$widget['donnees']['taxons'] = $this->recupererStatsTxtListeTaxonsNbrePhotos();
130
				break;
131
			case self::MODE_UTILISATEUR :
132
				if ($this->authentifierUtilisateur()) {
133
					$widget['donnees']['taxons'] = $this->recupererStatsTxtListeTaxonsNbrePhotos();
134
					$widget['donnees']['utilisateur'] = $this->getAuthIdentifiant();
135
					$widget['donnees']['utilisateur_nom_prenom'] = $this->recupererPrenomNomIdentifie();
136
				}
137
				break;
138
			default:
139
				$this->messages[] = "Le mode '{$this->mode}' est inconnu.";
140
		}
141
 
142
		if (!is_null($widget)) {
143
			$widget['squelette'] = 'liste_taxons_nbre_photos';
144
			$widget['donnees']['filtres'] = $this->parametres;
145
		}
146
 
147
		return $widget;
148
	}
149
 
150
	public function executerListeUtilisateursNbrePhotos() {
151
		$widget = null;
152
		$utilisateurs = $this->recupererStatsTxtListeUtilisateursNbrePhotos();
153
		if (isset($utilisateurs)) {
154
			$noms = $this->recupererUtilisateursNomPrenom(array_keys($utilisateurs));
155
			foreach ($utilisateurs as $courriel => $infos) {
156
				if (array_key_exists($courriel, $noms)) {
157
					$nom_infos = (array) $noms[$courriel];
158
					$nom_fmt = $nom_infos['prenom'].' '.$nom_infos['nom'];
159
					$widget['donnees']['utilisateurs'][$nom_fmt] = $infos;
160
				}
161
			}
162
		}
163
		$widget['donnees']['filtres'] = $this->parametres;
164
		$widget['squelette'] = 'liste_utilisateurs_nbre_photos';
165
		return $widget;
166
	}
167
 
168
	/**
169
	 * Aligne les contributeurs contre un mur et... euh... hum;
170
	 * Appelle le service pour obtenir les n principaux contributeurs depuis x jours,
171
	 * en termes d'observations ajoutées, d'images ajoutées, ou les deux
172
	 * Paramètres : "jours" (int), "nombre" (int), "critere" ("obs" ou "img" ou "")
173
	 * @return array
174
	 */
175
	public function executerGrandsContributeurs() {
176
		$widget = null;
177
		$widget['donnees'] = (array) $this->recupererStatsTxtGrandsContributeurs();
178
		if (!is_null($widget)) {
179
			$widget['squelette'] = 'grands_contributeurs';
180
			$widget['donnees']['url_service'] = sprintf($this->config['chemins']['baseURLServicesCelTpl'], 'CelStatistique');
181
		}
182
		return $widget;
183
	}
184
 
185
	public function executerObservationsActivite() {
186
		$html = "";
187
		$html .= '<div class="flottant-gauche">'
188
				.'<h2>Observations - Activité</h2>';
189
 
190
		$url_service = sprintf($this->config['chemins']['baseURLServicesCelTpl'], 'CelStatistique');
191
		$i = 1;
192
		switch ($this->mode) {
193
			case self::MODE_DEFAUT :
194
				$html .= '<img class="stats" src="' . $url_service . '/UtilisationJournaliere/' . date("Y-m-d", (time() - 86400))
195
					. '?serveur=' . $i++ . '" alt="Intensité d\'utilisation pour la journée d\'hier" />'
196
					.'<img class="stats" src="' . $url_service . '/UtilisationJournaliere'
197
					. '?serveur=' . $i++ . '" alt="Intensité d\'utilisation pour aujourd\'hui" />';
198
			break;
199
			case self::MODE_UTILISATEUR :
200
				if ($this->authentifierUtilisateur()) {
201
					$utilisateur = $this->getAuthIdentifiant();
202
					$utilisateur_nom_prenom = $this->recupererPrenomNomIdentifie();
203
					$html .= '<h4>utilisateur: ' . $utilisateur_nom_prenom . '</h4>';
204
					$html .= '<img class="stats" src="' . $url_service . '/UtilisationJournaliere/' . date("Y-m-d", (time() - 86400))
205
						. '?serveur=' . $i++ . '&utilisateur=' . $utilisateur . '" alt="Intensité d\'utilisation pour la journée d\'hier" />'
206
						.'<img class="stats" src="' . $url_service . '/UtilisationJournaliere'
207
						. '?serveur=' . $i++ . '&utilisateur=' . $utilisateur . '" alt="Intensité d\'utilisation pour aujourd\'hui" />';
208
				} else {
209
					$html .= "Impossible d'authentifier l'utilisateur";
210
				}
211
			break;
212
			default:
213
				$this->messages[] = "Le mode '{$this->mode}' est inconnu.";
214
		}
215
 
216
		$html .= '</div>';
217
		return $html;
218
	}
219
 
220
	public function executerObservationsDonnees() {
221
		$html = "";
222
		$html .= '<div class="flottant-gauche">'
223
				.'<h2>Observations - Activité</h2>';
224
 
225
		$url_service = sprintf($this->config['chemins']['baseURLServicesCelTpl'], 'CelStatistique');
226
		$i = 1;
227
		switch ($this->mode) {
228
			case self::MODE_DEFAUT :
229
				$html .= '<img class="stats" src="' . $url_service . '/NbreObsPublicVsPrivee'
230
					. '?serveur=' . $i++ . '" alt="Nombre d\'observations publiques versus privées" />'
231
					.'<img class="stats" src="' . $url_service . '/NbreObsIdVsTest'
232
					. '?serveur=' . $i++ . '" alt="Nombre d\'observations identifiées versus tests" />'
233
					.'<img class="stats" src="' . $url_service . '/NbreObsDetermineeVsInconnue'
234
					. '?serveur=' . $i++ . '" alt="Nombre d\'observations déterminées versus inconnues" />'
235
					. '<br/>'
236
					.'<img class="stats" src="' . $url_service . '/NbreObsAvecIndicationGeo'
237
					. '?serveur=' . $i++ . '" alt="Nombre d\'observations avec indications géographiques" />';
238
			break;
239
			case self::MODE_UTILISATEUR :
240
				if ($this->authentifierUtilisateur()) {
241
					$utilisateur = $this->getAuthIdentifiant();
242
					$utilisateur_nom_prenom = $this->recupererPrenomNomIdentifie();
243
					$html .= '<h4>utilisateur: ' . $utilisateur_nom_prenom . '</h4>';
244
					$html .= '<img class="stats" src="' . $url_service . '/NbreObsPublicVsPrivee'
245
						. '?serveur=' . $i++ . '&utilisateur=' . $utilisateur . '" alt="Nombre d\'observations publiques versus privées" />'
246
						.'<img class="stats" src="' . $url_service . '/NbreObsIdVsTest'
247
						. '?serveur=' . $i++ . '&utilisateur=' . $utilisateur . '" alt="Nombre d\'observations identifiées versus tests" />'
248
						.'<img class="stats" src="' . $url_service . '/NbreObsDetermineeVsInconnue'
249
						. '?serveur=' . $i++ . '&utilisateur=' . $utilisateur . '" alt="Nombre d\'observations déterminées versus inconnues" />'
250
						. '<br/>'
251
						.'<img class="stats" src="' . $url_service . '/NbreObsAvecIndicationGeo'
252
						. '?serveur=' . $i++ . '&utilisateur=' . $utilisateur . '" alt="Nombre d\'observations avec indications géographiques" />';
253
				} else {
254
					$html .= "Impossible d'authentifier l'utilisateur";
255
				}
256
			break;
257
			default:
258
				$this->messages[] = "Le mode '{$this->mode}' est inconnu.";
259
		}
260
 
261
		$html .= '</div>';
262
		return $html;
263
	}
264
 
265
	public function executerObservationsEvolution() {
266
		$html = "";
267
		$html .= '<div class="flottant-gauche">'
268
				.'<h2>Observations - Activité</h2>';
269
 
270
		$url_service = sprintf($this->config['chemins']['baseURLServicesCelTpl'], 'CelStatistique');
271
		$i = 1;
272
		switch ($this->mode) {
273
			case self::MODE_DEFAUT :
274
				$html .= '<img class="stats" src="' . $url_service . '/EvolObsParMoisGlissant'
275
					. '?serveur=' . $i++ . '" alt="Évolutions des observation sur le dernier mois glissant" />'
276
					.'<img class="stats" src="' . $url_service . '/EvolObsParMois'
277
					. '?serveur=' . $i++ . '" alt="Évolutions des observation par mois" />'
278
					. '<br/>'
279
					.'<img class="stats" src="' . $url_service . '/EvolObsParAn'
280
					. '?serveur=' . $i++ . '" alt="Évolutions des observation par an" />';
281
			break;
282
			case self::MODE_UTILISATEUR :
283
				if ($this->authentifierUtilisateur()) {
284
					$utilisateur = $this->getAuthIdentifiant();
285
					$utilisateur_nom_prenom = $this->recupererPrenomNomIdentifie();
286
					$html .= '<h4>utilisateur: ' . $utilisateur_nom_prenom . '</h4>';
287
					$html .= '<img class="stats" src="' . $url_service . '/EvolObsParMoisGlissant'
288
						. '?serveur=' . $i++ . '&utilisateur=' . $utilisateur . '" alt="Évolutions des observation sur le dernier mois glissant" />'
289
						.'<img class="stats" src="' . $url_service . '/EvolObsParMois'
290
						. '?serveur=' . $i++ . '&utilisateur=' . $utilisateur . '" alt="Évolutions des observation par mois" />'
291
						. '<br/>'
292
						.'<img class="stats" src="' . $url_service . '/EvolObsParAn'
293
						. '?serveur=' . $i++ . '&utilisateur=' . $utilisateur . '" alt="Évolutions des observation par an" />';
294
				} else {
295
					$html .= "Impossible d'authentifier l'utilisateur";
296
				}
297
			break;
298
			default:
299
				$this->messages[] = "Le mode '{$this->mode}' est inconnu.";
300
		}
301
 
302
		$html .= '</div>';
303
		return $html;
304
	}
305
 
306
	public function executerUtilisateurs() {
307
		$html = "";
308
		$html .= '<div class="flottant-gauche">'
309
				.'<h2>Observations - Activité</h2>';
310
 
311
		$url_service = sprintf($this->config['chemins']['baseURLServicesCelTpl'], 'CelStatistique');
312
		$i = 1;
313
		switch ($this->mode) {
314
			case self::MODE_DEFAUT :
315
				$html .= '<img class="stats" src="' . $url_service . '/NuagePointsObsParHeureEtJourSemaine'
316
					. '?serveur=' . $i++ . '" alt="Nuage de points d\'observation par heure et jour de la semaine" />'
317
					. '<img class="stats" src="' . $url_service . '/NbreObsParUtilisateur'
318
					. '?serveur=' . $i++ . '" alt="Nombre d\'observations par utilisateur" />'
319
					. '<img class="stats" src="' . $url_service . '/NbreObsParUtilisateurEtTest'
320
					. '?serveur=' . $i++ . '" alt="Nombre d\'observations par utilisateur et test" />'
321
					. '<img class="stats" src="' . $url_service . '/EvolUtilisateurParMois'
322
					. '?serveur=' . $i++ . '" alt="Évolution des utilisateurs par mois" />'
323
					. '<img class="stats" src="' . $url_service . '/NuagePointsObsAnciennete'
324
					. '?serveur=' . $i++ . '" alt="Répartition des utilisateurs en fonction du nombre d\'observations et de l\'ancienneté" />';
325
			break;
326
			case self::MODE_UTILISATEUR :
327
				if ($this->authentifierUtilisateur()) {
328
					$utilisateur = $this->getAuthIdentifiant();
329
					$html .= '<img class="stats" src="' . $url_service . '/NuagePointsObsParHeureEtJourSemaine'
330
						. '?serveur=' . $i++ . '&utilisateur=' . $utilisateur . '" alt="Nuage de points d\'observation par heure et jour de la semaine" />';
331
				} else {
332
					$html .= "Impossible d'authentifier l'utilisateur";
333
				}
334
			break;
335
			default:
336
				$this->messages[] = "Le mode '{$this->mode}' est inconnu.";
337
		}
338
 
339
		$html .= '</div>';
340
		return $html;
341
	}
342
 
343
	public function executerImages() {
344
		$html = "";
345
		$html .= '<div class="flottant-gauche">'
346
				.'<h2>Observations - Activité</h2>';
347
 
348
		$url_service = sprintf($this->config['chemins']['baseURLServicesCelTpl'], 'CelStatistique');
349
		$i = 1;
350
		switch ($this->mode) {
351
			case self::MODE_DEFAUT :
352
				$html .= '<img class="stats" src="' . $url_service . '/EvolImgParMois'
353
						. '?serveur=' . $i++ . '" alt="Évolutions du dépôt d\'images par mois" />'
354
						. '<img class="stats" src="' . $url_service . '/EvolImgLieesParMois'
355
						. '?serveur=' . $i++ . '" alt="Évolutions des images liées aux observations par mois" />';
356
						break;
357
			case self::MODE_UTILISATEUR :
358
				if ($this->authentifierUtilisateur()) {
359
					$utilisateur = $this->getAuthIdentifiant();
360
					$html .= '<img class="stats" src="' . $url_service . '/EvolImgParMois'
361
							. '?serveur=' . $i++ . '&utilisateur=' . $utilisateur . '" alt="Évolutions du dépôt d\'images par mois" />'
362
							. '<img class="stats" src="' . $url_service . '/EvolImgLieesParMois'
363
							. '?serveur=' . $i++ . '&utilisateur=' . $utilisateur . '" alt="Évolutions des images liées aux observations par mois" />';
364
				} else {
365
					$html .= "Impossible d'authentifier l'utilisateur";
366
				}
367
				break;
368
			default:
369
				$this->messages[] = "Le mode '{$this->mode}' est inconnu.";
370
		}
371
 
372
		$html .= '</div>';
373
		return $html;
374
	}
375
 
376
	private function recupererPrenomNomIdentifie() {
377
		$nom = '';
378
		if ($this->getAuthIdentifiant() != null) {
379
			$infos_utilisateur = $this->recupererUtilisateursNomPrenom(array($this->getAuthIdentifiant()));
380
			if (array_key_exists($this->getAuthIdentifiant(), $infos_utilisateur)) {
381
				$utilisateur = (array) $infos_utilisateur[$this->getAuthIdentifiant()];
382
				$nom = $utilisateur['prenom'].' '.$utilisateur['nom'];
383
			} else {
384
				$nom = $this->getAuthIdentifiant();
385
			}
386
		}
387
		return $nom;
388
	}
389
 
695 jpm 390
	private function recupererStatsTxtNombres() {
391
		// Récupération des données au format Json
392
		$service = "CelStatistiqueTxt/Nombres";
393
 
394
		$parametres = array();
700 jpm 395
		if (isset($this->parametres['mode']) && $this->parametres['mode'] == self::MODE_UTILISATEUR && $this->getAuthIdentifiant() != null) {
695 jpm 396
			$parametres[] = 'utilisateur='.$this->getAuthIdentifiant();
397
		}
398
		if (isset($this->parametres['num_taxon'])) {
399
			$parametres[] = 'num_taxon='.$this->parametres['num_taxon'];
400
		}
700 jpm 401
		if (isset($this->parametres['taxon'])) {
402
			$parametres[] = 'taxon='.$this->parametres['taxon'];
403
		}
695 jpm 404
		$service .= (count($parametres) > 0) ? '?'.implode('&', $parametres) : '';
405
 
406
		$url = sprintf($this->config['chemins']['baseURLServicesCelTpl'], $service);
700 jpm 407
		$json = $this->getDao()->consulter($url);
408
		return (array) json_decode($json);
695 jpm 409
	}
700 jpm 410
 
411
	private function recupererStatsTxtListeTaxonsNbrePhotos() {
412
		// Récupération des données au format Json
413
		$service = "CelStatistiqueTxt/ListeTaxonsNbrePhotos";
414
 
415
		$parametres = array();
416
		if (isset($this->parametres['mode']) && $this->parametres['mode'] == self::MODE_UTILISATEUR && $this->getAuthIdentifiant() != null) {
417
			$parametres[] = 'utilisateur='.$this->getAuthIdentifiant();
418
		}
419
		if (isset($this->parametres['num_taxon'])) {
420
			$parametres[] = 'num_taxon='.$this->parametres['num_taxon'];
421
		}
422
		if (isset($this->parametres['taxon'])) {
423
			$parametres[] = 'taxon='.$this->parametres['taxon'];
424
		}
425
		if (isset($this->parametres['start'])) {
426
			$parametres[] = 'start='.$this->parametres['start'];
427
		}
428
		if (isset($this->parametres['limit'])) {
429
			$parametres[] = 'limit='.$this->parametres['limit'];
430
		}
431
		$service .= (count($parametres) > 0) ? '?'.implode('&', $parametres) : '';
432
 
433
		$url = sprintf($this->config['chemins']['baseURLServicesCelTpl'], $service);
434
		$json = $this->getDao()->consulter($url);
435
		return (array) json_decode($json);
436
	}
437
 
438
	private function recupererStatsTxtListeUtilisateursNbrePhotos() {
439
		// Récupération des données au format Json
440
		$service = "CelStatistiqueTxt/ListeUtilisateursNbrePhotos";
441
 
442
		if (isset($this->parametres['mode']) && $this->parametres['mode'] == self::MODE_UTILISATEUR && $this->getAuthIdentifiant() != null) {
707 jpm 443
			$this->getDao()->ajouterParametre('utilisateur', $this->getAuthIdentifiant());
700 jpm 444
		}
445
		if (isset($this->parametres['num_taxon'])) {
707 jpm 446
			$this->getDao()->ajouterParametre('num_taxon', $this->parametres['num_taxon']);
700 jpm 447
		}
448
		if (isset($this->parametres['taxon'])) {
707 jpm 449
			$this->getDao()->ajouterParametre('taxon', $this->parametres['taxon']);
700 jpm 450
		}
451
		if (isset($this->parametres['start'])) {
707 jpm 452
			$this->getDao()->ajouterParametre('start', $this->parametres['start']);
700 jpm 453
		}
454
		if (isset($this->parametres['limit'])) {
707 jpm 455
			$this->getDao()->ajouterParametre('limit', $this->parametres['limit']);
700 jpm 456
		}
707 jpm 457
		if (isset($this->parametres['tag'])) {
458
			$this->getDao()->ajouterParametre('tag', $this->parametres['tag']);
459
		}
700 jpm 460
 
461
		$url = sprintf($this->config['chemins']['baseURLServicesCelTpl'], $service);
707 jpm 462
 
700 jpm 463
		$json = $this->getDao()->consulter($url);
464
		return (array) json_decode($json);
465
	}
2182 mathias 466
 
467
	private function recupererStatsTxtGrandsContributeurs() {
468
		// Récupération des données au format Json
469
		$service = "CelStatistiqueTxt/GrandsContributeurs";
470
 
471
		if (isset($this->parametres['nombre'])) {
472
			$this->getDao()->ajouterParametre('nombre', $this->parametres['nombre']);
473
		}
474
		if (isset($this->parametres['jours'])) {
475
			$this->getDao()->ajouterParametre('jours', $this->parametres['jours']);
476
		}
477
		if (isset($this->parametres['critere'])) {
478
			$this->getDao()->ajouterParametre('critere', $this->parametres['critere']);
479
		}
480
 
481
		$url = sprintf($this->config['chemins']['baseURLServicesCelTpl'], $service);
482
		$json = $this->getDao()->consulter($url);
483
 
484
		return (array) json_decode($json);
485
	}
1360 aurelien 486
}
487
?>