Subversion Repositories eFlore/Applications.cel

Rev

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