Subversion Repositories eFlore/Projets.eflore-projets

Rev

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

Rev 16 Rev 69
Line 61... Line 61...
61
	/** Permet de stocker le tableau de résultat (non encodé en json) */
61
	/** Permet de stocker le tableau de résultat (non encodé en json) */
62
	protected $table_retour = array();
62
	protected $table_retour = array();
63
	/** Stocke le nombre total de résultats de la requete principale. Est calculée lors de l'assemblage de la requete */
63
	/** Stocke le nombre total de résultats de la requete principale. Est calculée lors de l'assemblage de la requete */
64
	protected $total_resultat;
64
	protected $total_resultat;
Line 65... Line 65...
65
 
65
 
66
// +-------------------------------------------------------------------------------------------------------------------+
66
	// +-----------------------------------------------------------------------------------------------------+
67
	public function traiterParametres() {
67
	public function traiterParametres() {
68
		if (isset($this->parametres) && !empty($this->parametres)) {
68
		if (isset($this->parametres) && !empty($this->parametres)) {
Line 69... Line 69...
69
			$this->table_param = $this->parametres;
69
			$this->table_param = $this->parametres;
Line 73... Line 73...
73
        //   masque.region : filtre uniquement sur la region.
73
        //   masque.region : filtre uniquement sur la region.
74
			if (isset($this->parametres['recherche']) && $this->parametres['recherche'] != '') {
74
			if (isset($this->parametres['recherche']) && $this->parametres['recherche'] != '') {
75
				$this->recherche = $this->parametres['recherche'];
75
				$this->recherche = $this->parametres['recherche'];
76
			}
76
			}
Line 77... Line 77...
77
 
77
 
78
			foreach ($parametres as $param => $valeur) {
78
			foreach ($this->parametres as $param => $valeur) {
-
 
79
				switch ($param) {
79
				switch ($param) {
80
					case 'masque' :
-
 
81
						$this->ajouterLeFiltreMasque('masque', $valeur);
-
 
82
						break;
80
					case 'masque'				: $this->ajouterLeFiltreMasque('masque', $valeur);			break;
83
					case 'masque.code' :
-
 
84
						$this->ajouterLeFiltreMasque('dep', $valeur);
-
 
85
						break;
81
					case 'masque.code'			: $this->ajouterLeFiltreMasque('dep', $valeur);				break;
86
					case 'masque.nom' :
-
 
87
						$this->ajouterLeFiltreMasque('nccenr', $valeur);
-
 
88
						break;
82
					case 'masque.nom'			: $this->ajouterLeFiltreMasque('nccenr', $valeur);			break;
89
					case 'masque.region' :
-
 
90
						$this->ajouterLeFiltreMasque('region', $valeur);
-
 
91
						break;
83
					case 'masque.region'		: $this->ajouterLeFiltreMasque('region', $valeur);			break;
92
					case 'retour.format' :
-
 
93
						$this->retour_format = $valeur;
-
 
94
						break;
84
					case 'retour.format'		: $this->retour_format = $valeur;							break;
95
					case 'navigation.depart' :
-
 
96
						$this->limite_requete['depart'] = $valeur;
-
 
97
						break;
85
					case 'navigation.depart'	: $this->limite_requete['depart'] = $valeur;				break;
98
					case 'navigation.limite' :
-
 
99
						$this->limite_requete['limite'] = $valeur;
86
					case 'navigation.limite'	: $this->limite_requete['limite'] = $valeur;				break;
100
						break;
-
 
101
					case 'recherche' :
-
 
102
						break;
87
					case 'recherche'			:															break;
103
					default :
88
					default						:  $p = 'Erreur dans les paramètres de recherche de votre requête : '.
104
						$p = 'Erreur dans les paramètres de recherche de votre requête : '.
89
													'</br> Le paramètre " '.$param.' " n\'existe pas.';
105
							'</br> Le paramètre " '.$param.' " n\'existe pas.';
90
												$this->renvoyerErreur(RestServeur::HTTP_CODE_MAUVAISE_REQUETE, $p);	break;
106
							$this->renvoyerErreur(RestServeur::HTTP_CODE_MAUVAISE_REQUETE, $p);
91
				}
107
				}
92
			}
108
			}
93
		}
109
		}
Line 124... Line 140...
124
			}
140
			}
125
		}
141
		}
126
	}
142
	}
Line 127... Line 143...
127
 
143
 
128
 
144
 
129
// +-------------------------------------------------------------------------------------------------------------------+
145
	//+------------------------------------------------------------------------------------------------------+
130
	public function traiterRessources() {
146
	public function traiterRessources() {
131
		if (isset($this->ressources) && !empty($this->ressources)) {
147
		if (isset($this->ressources) && !empty($this->ressources)) {
132
			$this->table_ressources = $this->ressources;
148
			$this->table_ressources = $this->ressources;
Line 164... Line 180...
164
		} else {
180
		} else {
165
			$this->format_reponse .= '/champ';
181
			$this->format_reponse .= '/champ';
166
		}
182
		}
167
	}
183
	}
Line 168... Line 184...
168
 
184
 
169
// +-------------------------------------------------------------------------------------------------------------------+
185
	//+------------------------------------------------------------------------------------------------------+
170
	public function assemblerLaRequete() {
186
	public function assemblerLaRequete() {
171
		//assemblage de la requete :
187
		//assemblage de la requete :
172
		$requete = ' SELECT '.$this->requete_champ.
188
		$requete = ' SELECT '.$this->requete_champ.
173
					' FROM '.$this->table
189
					' FROM '.$this->table
Line 215... Line 231...
215
			$this->renvoyerErreur(RestServeur::HTTP_CODE_RESSOURCE_INTROUVABLE, $t);
231
			$this->renvoyerErreur(RestServeur::HTTP_CODE_RESSOURCE_INTROUVABLE, $t);
216
		}
232
		}
217
		return $total;
233
		return $total;
218
	}
234
	}
Line 219... Line 235...
219
 
235
 
220
// +-------------------------------------------------------------------------------------------------------------------+
236
	//+------------------------------------------------------------------------------------------------------+
221
	// determine en fct du service appelé (/zone-geo | /zone-geo/#id | /zone-geo/#id/champ |
237
	// determine en fct du service appelé (/zone-geo | /zone-geo/#id | /zone-geo/#id/champ |
222
	// /zone-geo/#id/relations) le format du tableau à retourner.
238
	// /zone-geo/#id/relations) le format du tableau à retourner.
223
	public function retournerResultatFormate($resultat) {
239
	public function retournerResultatFormate($resultat) {
224
		$this->recupererTableConfig('correspondance_champs');
240
		$this->recupererTableConfig('correspondance_champs');
Line 236... Line 252...
236
		//on remplit la table $table_retour_json['entete']
252
		//on remplit la table $table_retour_json['entete']
237
		$this->table_retour['depart'] = $this->limite_requete['depart'];
253
		$this->table_retour['depart'] = $this->limite_requete['depart'];
238
		$this->table_retour['limite'] = $this->limite_requete['limite'];
254
		$this->table_retour['limite'] = $this->limite_requete['limite'];
239
		$this->table_retour['total']  = $this->total_resultat;
255
		$this->table_retour['total']  = $this->total_resultat;
240
		$url = $this->formulerUrl($this->total_resultat, '/zone-geo');
256
		$url = $this->formulerUrl($this->total_resultat, '/zone-geo');
241
		if ($url['precedent'] != '') { $this->table_retour['href.precedent'] = $url['precedent']; }
257
		if (isset($url['precedent']) && $url['precedent'] != '') { $this->table_retour['href.precedent'] = $url['precedent']; }
242
		if ($url['suivant']   != '') { $this->table_retour['href.suivant']   = $url['suivant']; }
258
		if (isset($url['suivant']) && $url['suivant']   != '') { $this->table_retour['href.suivant']   = $url['suivant']; }
243
		$table_retour_json['entete'] = $this->table_retour;
259
		$table_retour_json['entete'] = $this->table_retour;
Line 244... Line 260...
244
 
260
 
245
		//on remplit la table $table_retour_json['resultat']
261
		//on remplit la table $table_retour_json['resultat']
246
		$this->table_retour = array();
262
		$this->table_retour = array();