Subversion Repositories eFlore/Applications.cel

Rev

Rev 2262 | 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
 
2848 mathias 93
			$widget['donnees']['prod'] = ($this->config['parametres']['modeServeur'] == "prod");
94
 
2260 mathias 95
			$widget['donnees']['nobar'] = $this->nobar;
703 jpm 96
		}
429 jpm 97
		return $widget;
98
	}
2202 mathias 99
 
700 jpm 100
	public function executerNombres() {
565 jpm 101
		$widget = null;
700 jpm 102
 
704 jpm 103
		switch ($this->mode) {
104
			case self::MODE_DEFAUT :
105
				$widget['donnees'] = (array) $this->recupererStatsTxtNombres();
106
				break;
107
			case self::MODE_UTILISATEUR :
108
				if ($this->authentifierUtilisateur()) {
109
					$widget['donnees'] = (array) $this->recupererStatsTxtNombres();
2202 mathias 110
					$widget['donnees']['utilisateur'] = $this->getAuthIdentifiant();
704 jpm 111
					$widget['donnees']['utilisateur_nom_prenom'] = $this->recupererPrenomNomIdentifie();
112
				}
113
				break;
114
			default:
115
				$this->messages[] = "Le mode '{$this->mode}' est inconnu.";
565 jpm 116
		}
700 jpm 117
 
118
		if (!is_null($widget)) {
2202 mathias 119
			$widget['squelette'] = 'nombres';
703 jpm 120
			$widget['donnees']['filtres'] = $this->parametres;
700 jpm 121
		}
122
 
565 jpm 123
		return $widget;
124
	}
695 jpm 125
 
2202 mathias 126
	public function executerListeTaxonsNbrePhotos() {
127
		$widget = null;
128
 
129
		switch ($this->mode) {
130
			case self::MODE_DEFAUT :
131
				$widget['donnees']['taxons'] = $this->recupererStatsTxtListeTaxonsNbrePhotos();
132
				break;
133
			case self::MODE_UTILISATEUR :
134
				if ($this->authentifierUtilisateur()) {
135
					$widget['donnees']['taxons'] = $this->recupererStatsTxtListeTaxonsNbrePhotos();
136
					$widget['donnees']['utilisateur'] = $this->getAuthIdentifiant();
137
					$widget['donnees']['utilisateur_nom_prenom'] = $this->recupererPrenomNomIdentifie();
138
				}
139
				break;
140
			default:
141
				$this->messages[] = "Le mode '{$this->mode}' est inconnu.";
142
		}
143
 
144
		if (!is_null($widget)) {
145
			$widget['squelette'] = 'liste_taxons_nbre_photos';
146
			$widget['donnees']['filtres'] = $this->parametres;
147
		}
148
 
149
		return $widget;
150
	}
151
 
152
	public function executerListeUtilisateursNbrePhotos() {
153
		$widget = null;
154
		$utilisateurs = $this->recupererStatsTxtListeUtilisateursNbrePhotos();
155
		if (isset($utilisateurs)) {
156
			$noms = $this->recupererUtilisateursNomPrenom(array_keys($utilisateurs));
157
			foreach ($utilisateurs as $courriel => $infos) {
158
				if (array_key_exists($courriel, $noms)) {
159
					$nom_infos = (array) $noms[$courriel];
160
					$nom_fmt = $nom_infos['prenom'].' '.$nom_infos['nom'];
161
					$widget['donnees']['utilisateurs'][$nom_fmt] = $infos;
162
				}
163
			}
164
		}
165
		$widget['donnees']['filtres'] = $this->parametres;
166
		$widget['squelette'] = 'liste_utilisateurs_nbre_photos';
167
		return $widget;
168
	}
169
 
170
	/**
171
	 * Aligne les contributeurs contre un mur et... euh... hum;
172
	 * Appelle le service pour obtenir les n principaux contributeurs depuis x jours,
173
	 * en termes d'observations ajoutées, d'images ajoutées, ou les deux
174
	 * Paramètres : "jours" (int), "nombre" (int), "critere" ("obs" ou "img" ou "")
175
	 * @return array
176
	 */
177
	public function executerGrandsContributeurs() {
178
		$widget = null;
179
		$widget['donnees'] = (array) $this->recupererStatsTxtGrandsContributeurs();
180
		if (!is_null($widget)) {
181
			$widget['squelette'] = 'grands_contributeurs';
182
			$widget['donnees']['url_service'] = sprintf($this->config['chemins']['baseURLServicesCelTpl'], 'CelStatistique');
183
		}
184
		return $widget;
185
	}
186
 
187
	public function executerObservationsActivite() {
188
		$html = "";
189
		$html .= '<div class="flottant-gauche">'
190
				.'<h2>Observations - Activité</h2>';
191
 
192
		$url_service = sprintf($this->config['chemins']['baseURLServicesCelTpl'], 'CelStatistique');
193
		$i = 1;
194
		switch ($this->mode) {
195
			case self::MODE_DEFAUT :
196
				$html .= '<img class="stats" src="' . $url_service . '/UtilisationJournaliere/' . date("Y-m-d", (time() - 86400))
197
					. '?serveur=' . $i++ . '" alt="Intensité d\'utilisation pour la journée d\'hier" />'
198
					.'<img class="stats" src="' . $url_service . '/UtilisationJournaliere'
199
					. '?serveur=' . $i++ . '" alt="Intensité d\'utilisation pour aujourd\'hui" />';
200
			break;
201
			case self::MODE_UTILISATEUR :
202
				if ($this->authentifierUtilisateur()) {
203
					$utilisateur = $this->getAuthIdentifiant();
204
					$utilisateur_nom_prenom = $this->recupererPrenomNomIdentifie();
205
					$html .= '<h4>utilisateur: ' . $utilisateur_nom_prenom . '</h4>';
206
					$html .= '<img class="stats" src="' . $url_service . '/UtilisationJournaliere/' . date("Y-m-d", (time() - 86400))
207
						. '?serveur=' . $i++ . '&utilisateur=' . $utilisateur . '" alt="Intensité d\'utilisation pour la journée d\'hier" />'
208
						.'<img class="stats" src="' . $url_service . '/UtilisationJournaliere'
209
						. '?serveur=' . $i++ . '&utilisateur=' . $utilisateur . '" alt="Intensité d\'utilisation pour aujourd\'hui" />';
210
				} else {
211
					$html .= "Impossible d'authentifier l'utilisateur";
212
				}
213
			break;
214
			default:
215
				$this->messages[] = "Le mode '{$this->mode}' est inconnu.";
216
		}
217
 
218
		$html .= '</div>';
219
		return $html;
220
	}
221
 
222
	public function executerObservationsDonnees() {
223
		$html = "";
224
		$html .= '<div class="flottant-gauche">'
225
				.'<h2>Observations - Activité</h2>';
226
 
227
		$url_service = sprintf($this->config['chemins']['baseURLServicesCelTpl'], 'CelStatistique');
228
		$i = 1;
229
		switch ($this->mode) {
230
			case self::MODE_DEFAUT :
231
				$html .= '<img class="stats" src="' . $url_service . '/NbreObsPublicVsPrivee'
232
					. '?serveur=' . $i++ . '" alt="Nombre d\'observations publiques versus privées" />'
233
					.'<img class="stats" src="' . $url_service . '/NbreObsIdVsTest'
234
					. '?serveur=' . $i++ . '" alt="Nombre d\'observations identifiées versus tests" />'
235
					.'<img class="stats" src="' . $url_service . '/NbreObsDetermineeVsInconnue'
236
					. '?serveur=' . $i++ . '" alt="Nombre d\'observations déterminées versus inconnues" />'
237
					. '<br/>'
238
					.'<img class="stats" src="' . $url_service . '/NbreObsAvecIndicationGeo'
239
					. '?serveur=' . $i++ . '" alt="Nombre d\'observations avec indications géographiques" />';
240
			break;
241
			case self::MODE_UTILISATEUR :
242
				if ($this->authentifierUtilisateur()) {
243
					$utilisateur = $this->getAuthIdentifiant();
244
					$utilisateur_nom_prenom = $this->recupererPrenomNomIdentifie();
245
					$html .= '<h4>utilisateur: ' . $utilisateur_nom_prenom . '</h4>';
246
					$html .= '<img class="stats" src="' . $url_service . '/NbreObsPublicVsPrivee'
247
						. '?serveur=' . $i++ . '&utilisateur=' . $utilisateur . '" alt="Nombre d\'observations publiques versus privées" />'
248
						.'<img class="stats" src="' . $url_service . '/NbreObsIdVsTest'
249
						. '?serveur=' . $i++ . '&utilisateur=' . $utilisateur . '" alt="Nombre d\'observations identifiées versus tests" />'
250
						.'<img class="stats" src="' . $url_service . '/NbreObsDetermineeVsInconnue'
251
						. '?serveur=' . $i++ . '&utilisateur=' . $utilisateur . '" alt="Nombre d\'observations déterminées versus inconnues" />'
252
						. '<br/>'
253
						.'<img class="stats" src="' . $url_service . '/NbreObsAvecIndicationGeo'
254
						. '?serveur=' . $i++ . '&utilisateur=' . $utilisateur . '" alt="Nombre d\'observations avec indications géographiques" />';
255
				} else {
256
					$html .= "Impossible d'authentifier l'utilisateur";
257
				}
258
			break;
259
			default:
260
				$this->messages[] = "Le mode '{$this->mode}' est inconnu.";
261
		}
262
 
263
		$html .= '</div>';
264
		return $html;
265
	}
266
 
267
	public function executerObservationsEvolution() {
268
		$html = "";
269
		$html .= '<div class="flottant-gauche">'
270
				.'<h2>Observations - Activité</h2>';
271
 
272
		$url_service = sprintf($this->config['chemins']['baseURLServicesCelTpl'], 'CelStatistique');
273
		$i = 1;
274
		switch ($this->mode) {
275
			case self::MODE_DEFAUT :
276
				$html .= '<img class="stats" src="' . $url_service . '/EvolObsParMoisGlissant'
277
					. '?serveur=' . $i++ . '" alt="Évolutions des observation sur le dernier mois glissant" />'
278
					.'<img class="stats" src="' . $url_service . '/EvolObsParMois'
279
					. '?serveur=' . $i++ . '" alt="Évolutions des observation par mois" />'
280
					. '<br/>'
281
					.'<img class="stats" src="' . $url_service . '/EvolObsParAn'
282
					. '?serveur=' . $i++ . '" alt="Évolutions des observation par an" />';
283
			break;
284
			case self::MODE_UTILISATEUR :
285
				if ($this->authentifierUtilisateur()) {
286
					$utilisateur = $this->getAuthIdentifiant();
287
					$utilisateur_nom_prenom = $this->recupererPrenomNomIdentifie();
288
					$html .= '<h4>utilisateur: ' . $utilisateur_nom_prenom . '</h4>';
289
					$html .= '<img class="stats" src="' . $url_service . '/EvolObsParMoisGlissant'
290
						. '?serveur=' . $i++ . '&utilisateur=' . $utilisateur . '" alt="Évolutions des observation sur le dernier mois glissant" />'
291
						.'<img class="stats" src="' . $url_service . '/EvolObsParMois'
292
						. '?serveur=' . $i++ . '&utilisateur=' . $utilisateur . '" alt="Évolutions des observation par mois" />'
293
						. '<br/>'
294
						.'<img class="stats" src="' . $url_service . '/EvolObsParAn'
295
						. '?serveur=' . $i++ . '&utilisateur=' . $utilisateur . '" alt="Évolutions des observation par an" />';
296
				} else {
297
					$html .= "Impossible d'authentifier l'utilisateur";
298
				}
299
			break;
300
			default:
301
				$this->messages[] = "Le mode '{$this->mode}' est inconnu.";
302
		}
303
 
304
		$html .= '</div>';
305
		return $html;
306
	}
307
 
308
	public function executerUtilisateurs() {
309
		$html = "";
310
		$html .= '<div class="flottant-gauche">'
311
				.'<h2>Observations - Activité</h2>';
312
 
313
		$url_service = sprintf($this->config['chemins']['baseURLServicesCelTpl'], 'CelStatistique');
314
		$i = 1;
315
		switch ($this->mode) {
316
			case self::MODE_DEFAUT :
317
				$html .= '<img class="stats" src="' . $url_service . '/NuagePointsObsParHeureEtJourSemaine'
318
					. '?serveur=' . $i++ . '" alt="Nuage de points d\'observation par heure et jour de la semaine" />'
319
					. '<img class="stats" src="' . $url_service . '/NbreObsParUtilisateur'
320
					. '?serveur=' . $i++ . '" alt="Nombre d\'observations par utilisateur" />'
321
					. '<img class="stats" src="' . $url_service . '/NbreObsParUtilisateurEtTest'
322
					. '?serveur=' . $i++ . '" alt="Nombre d\'observations par utilisateur et test" />'
323
					. '<img class="stats" src="' . $url_service . '/EvolUtilisateurParMois'
324
					. '?serveur=' . $i++ . '" alt="Évolution des utilisateurs par mois" />'
325
					. '<img class="stats" src="' . $url_service . '/NuagePointsObsAnciennete'
326
					. '?serveur=' . $i++ . '" alt="Répartition des utilisateurs en fonction du nombre d\'observations et de l\'ancienneté" />';
327
			break;
328
			case self::MODE_UTILISATEUR :
329
				if ($this->authentifierUtilisateur()) {
330
					$utilisateur = $this->getAuthIdentifiant();
331
					$html .= '<img class="stats" src="' . $url_service . '/NuagePointsObsParHeureEtJourSemaine'
332
						. '?serveur=' . $i++ . '&utilisateur=' . $utilisateur . '" alt="Nuage de points d\'observation par heure et jour de la semaine" />';
333
				} else {
334
					$html .= "Impossible d'authentifier l'utilisateur";
335
				}
336
			break;
337
			default:
338
				$this->messages[] = "Le mode '{$this->mode}' est inconnu.";
339
		}
340
 
341
		$html .= '</div>';
342
		return $html;
343
	}
344
 
345
	public function executerImages() {
346
		$html = "";
347
		$html .= '<div class="flottant-gauche">'
348
				.'<h2>Observations - Activité</h2>';
349
 
350
		$url_service = sprintf($this->config['chemins']['baseURLServicesCelTpl'], 'CelStatistique');
351
		$i = 1;
352
		switch ($this->mode) {
353
			case self::MODE_DEFAUT :
354
				$html .= '<img class="stats" src="' . $url_service . '/EvolImgParMois'
355
						. '?serveur=' . $i++ . '" alt="Évolutions du dépôt d\'images par mois" />'
356
						. '<img class="stats" src="' . $url_service . '/EvolImgLieesParMois'
357
						. '?serveur=' . $i++ . '" alt="Évolutions des images liées aux observations par mois" />';
358
						break;
359
			case self::MODE_UTILISATEUR :
360
				if ($this->authentifierUtilisateur()) {
361
					$utilisateur = $this->getAuthIdentifiant();
362
					$html .= '<img class="stats" src="' . $url_service . '/EvolImgParMois'
363
							. '?serveur=' . $i++ . '&utilisateur=' . $utilisateur . '" alt="Évolutions du dépôt d\'images par mois" />'
364
							. '<img class="stats" src="' . $url_service . '/EvolImgLieesParMois'
365
							. '?serveur=' . $i++ . '&utilisateur=' . $utilisateur . '" alt="Évolutions des images liées aux observations par mois" />';
366
				} else {
367
					$html .= "Impossible d'authentifier l'utilisateur";
368
				}
369
				break;
370
			default:
371
				$this->messages[] = "Le mode '{$this->mode}' est inconnu.";
372
		}
373
 
374
		$html .= '</div>';
375
		return $html;
376
	}
377
 
378
	private function recupererPrenomNomIdentifie() {
379
		$nom = '';
380
		if ($this->getAuthIdentifiant() != null) {
381
			$infos_utilisateur = $this->recupererUtilisateursNomPrenom(array($this->getAuthIdentifiant()));
382
			if (array_key_exists($this->getAuthIdentifiant(), $infos_utilisateur)) {
383
				$utilisateur = (array) $infos_utilisateur[$this->getAuthIdentifiant()];
384
				$nom = $utilisateur['prenom'].' '.$utilisateur['nom'];
385
			} else {
386
				$nom = $this->getAuthIdentifiant();
387
			}
388
		}
389
		return $nom;
390
	}
391
 
695 jpm 392
	private function recupererStatsTxtNombres() {
393
		// Récupération des données au format Json
394
		$service = "CelStatistiqueTxt/Nombres";
395
 
396
		$parametres = array();
700 jpm 397
		if (isset($this->parametres['mode']) && $this->parametres['mode'] == self::MODE_UTILISATEUR && $this->getAuthIdentifiant() != null) {
695 jpm 398
			$parametres[] = 'utilisateur='.$this->getAuthIdentifiant();
399
		}
400
		if (isset($this->parametres['num_taxon'])) {
401
			$parametres[] = 'num_taxon='.$this->parametres['num_taxon'];
402
		}
700 jpm 403
		if (isset($this->parametres['taxon'])) {
404
			$parametres[] = 'taxon='.$this->parametres['taxon'];
405
		}
695 jpm 406
		$service .= (count($parametres) > 0) ? '?'.implode('&', $parametres) : '';
407
 
408
		$url = sprintf($this->config['chemins']['baseURLServicesCelTpl'], $service);
700 jpm 409
		$json = $this->getDao()->consulter($url);
410
		return (array) json_decode($json);
695 jpm 411
	}
700 jpm 412
 
413
	private function recupererStatsTxtListeTaxonsNbrePhotos() {
414
		// Récupération des données au format Json
415
		$service = "CelStatistiqueTxt/ListeTaxonsNbrePhotos";
416
 
417
		$parametres = array();
418
		if (isset($this->parametres['mode']) && $this->parametres['mode'] == self::MODE_UTILISATEUR && $this->getAuthIdentifiant() != null) {
419
			$parametres[] = 'utilisateur='.$this->getAuthIdentifiant();
420
		}
421
		if (isset($this->parametres['num_taxon'])) {
422
			$parametres[] = 'num_taxon='.$this->parametres['num_taxon'];
423
		}
424
		if (isset($this->parametres['taxon'])) {
425
			$parametres[] = 'taxon='.$this->parametres['taxon'];
426
		}
427
		if (isset($this->parametres['start'])) {
428
			$parametres[] = 'start='.$this->parametres['start'];
429
		}
430
		if (isset($this->parametres['limit'])) {
431
			$parametres[] = 'limit='.$this->parametres['limit'];
432
		}
433
		$service .= (count($parametres) > 0) ? '?'.implode('&', $parametres) : '';
434
 
435
		$url = sprintf($this->config['chemins']['baseURLServicesCelTpl'], $service);
436
		$json = $this->getDao()->consulter($url);
437
		return (array) json_decode($json);
438
	}
439
 
440
	private function recupererStatsTxtListeUtilisateursNbrePhotos() {
441
		// Récupération des données au format Json
442
		$service = "CelStatistiqueTxt/ListeUtilisateursNbrePhotos";
443
 
444
		if (isset($this->parametres['mode']) && $this->parametres['mode'] == self::MODE_UTILISATEUR && $this->getAuthIdentifiant() != null) {
707 jpm 445
			$this->getDao()->ajouterParametre('utilisateur', $this->getAuthIdentifiant());
700 jpm 446
		}
447
		if (isset($this->parametres['num_taxon'])) {
707 jpm 448
			$this->getDao()->ajouterParametre('num_taxon', $this->parametres['num_taxon']);
700 jpm 449
		}
450
		if (isset($this->parametres['taxon'])) {
707 jpm 451
			$this->getDao()->ajouterParametre('taxon', $this->parametres['taxon']);
700 jpm 452
		}
453
		if (isset($this->parametres['start'])) {
707 jpm 454
			$this->getDao()->ajouterParametre('start', $this->parametres['start']);
700 jpm 455
		}
456
		if (isset($this->parametres['limit'])) {
707 jpm 457
			$this->getDao()->ajouterParametre('limit', $this->parametres['limit']);
700 jpm 458
		}
707 jpm 459
		if (isset($this->parametres['tag'])) {
460
			$this->getDao()->ajouterParametre('tag', $this->parametres['tag']);
461
		}
700 jpm 462
 
463
		$url = sprintf($this->config['chemins']['baseURLServicesCelTpl'], $service);
707 jpm 464
 
700 jpm 465
		$json = $this->getDao()->consulter($url);
466
		return (array) json_decode($json);
467
	}
2182 mathias 468
 
469
	private function recupererStatsTxtGrandsContributeurs() {
470
		// Récupération des données au format Json
471
		$service = "CelStatistiqueTxt/GrandsContributeurs";
472
 
473
		if (isset($this->parametres['nombre'])) {
474
			$this->getDao()->ajouterParametre('nombre', $this->parametres['nombre']);
475
		}
476
		if (isset($this->parametres['jours'])) {
477
			$this->getDao()->ajouterParametre('jours', $this->parametres['jours']);
478
		}
479
		if (isset($this->parametres['critere'])) {
480
			$this->getDao()->ajouterParametre('critere', $this->parametres['critere']);
481
		}
482
 
483
		$url = sprintf($this->config['chemins']['baseURLServicesCelTpl'], $service);
484
		$json = $this->getDao()->consulter($url);
485
 
486
		return (array) json_decode($json);
487
	}
1360 aurelien 488
}
489
?>