Subversion Repositories eFlore/Applications.cel

Rev

Rev 2262 | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

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