Subversion Repositories eFlore/Projets.eflore-projets

Rev

Rev 6 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 6 Rev 15
Line 60... Line 60...
60
	/** Permet de stocker le tableau de résultat (non encodé en json) */
60
	/** Permet de stocker le tableau de résultat (non encodé en json) */
61
	protected $table_retour = array();
61
	protected $table_retour = array();
62
	/** Stocke le nombre total de résultats de la requete principale. Est calculée lors de l'assemblage de la requete */
62
	/** Stocke le nombre total de résultats de la requete principale. Est calculée lors de l'assemblage de la requete */
63
	protected $total_resultat;
63
	protected $total_resultat;
Line 64... Line -...
64
	
-
 
65
// +-------------------------------------------------------------------------------------------------------------------+	
-
 
66
	public function consulter($ressources, $parametres) {
-
 
67
		$this->traiterParametres($parametres);
-
 
68
		$this->traiterVersionProjet($ressources);
-
 
69
		$this->traiterRessources($ressources);
-
 
70
		$resultat_formate = '';
-
 
71
		
-
 
72
		if ($this->corps_http == '' && $this->entete_http == '') {
-
 
73
		foreach ($this->table_version as $version) {
-
 
74
				$this->table = $version; //on stocke le nom de la table correspondant à la version du projet en cours
-
 
75
				$requete = $this->assemblerLaRequete(); //print_r($requete);
-
 
76
				$resultat = $this->getBdd()->recupererTous($requete);
-
 
77
				$res_version = $this->testerResultat($resultat, $requete);
-
 
78
			}
-
 
79
			if ($this->corps_http == '' && $this->entete_http == '') {
-
 
80
				if (isset($res_version)) {
-
 
81
					$resultat_formate = json_encode($res_version);
-
 
82
				}
-
 
83
			}
-
 
84
		}
-
 
85
		return $this->formerReponseHTTP($resultat_formate);
-
 
86
	}
-
 
87
	
-
 
88
	public function testerResultat($resultat, $requete) {
-
 
89
		if ($resultat == '') { //cas ou la requete comporte des erreurs
-
 
90
			$s = 'La requête SQL formée comporte une erreur !!';
-
 
91
			Debug::printr($requete);
-
 
92
			$this->renvoyerErreur(RestServeur::HTTP_CODE_RESSOURCE_INTROUVABLE, $s);
-
 
93
		} elseif ($resultat) {
-
 
94
			if (count($this->table_version) > 1) {
-
 
95
				$res_version[$version] = $this->retournerResultatFormate($resultat);
-
 
96
			} else {
-
 
97
				$res_version = $this->retournerResultatFormate($resultat);
-
 
98
			}
-
 
99
		} else {
-
 
100
			$d = 'Données recherchées introuvables dans la base';
-
 
101
			$this->renvoyerErreur(RestServeur::HTTP_CODE_RESSOURCE_INTROUVABLE, $d);
-
 
102
			Debug::printr($requete);
-
 
103
		}
-
 
104
		return $res_version;
-
 
105
	}
-
 
106
	
64
 
107
// +-------------------------------------------------------------------------------------------------------------------+
65
	// +-----------------------------------------------------------------------------------------------------+
108
	public function traiterParametres($parametres) {
66
	public function traiterParametres() {
109
		if (isset($parametres) && !empty($parametres)) {
67
		if (isset($this->parametres) && !empty($this->parametres)) {
Line 110... Line 68...
110
			$this->table_param = $parametres;
68
			$this->table_param = $this->parametres;
111
			
69
 
112
		//	masque : filtre la liste en fonction d'un masque de recherche portant sur le code, le nom ou la region.
70
			//	masque : filtre la liste en fonction d'un masque de recherche portant sur le code, le nom ou la region.
113
		//	masque.code : filtre uniquement sur le code. masque.nom : filtre uniquement sur le nom.
71
			//	masque.code : filtre uniquement sur le code. masque.nom : filtre uniquement sur le nom.
114
		//	masque.region : filtre uniquement sur la region.
72
			//	masque.region : filtre uniquement sur la region.
115
			if (isset($parametres['recherche']) && $parametres['recherche'] != '') {
73
			if (isset($this->parametres['recherche']) && $this->parametres['recherche'] != '') {
Line 116... Line 74...
116
				$this->recherche = $parametres['recherche']; 
74
				$this->recherche = $this->parametres['recherche'];
117
			}
75
			}
-
 
76
 
118
			
77
			foreach ($this->parametres as $param => $valeur) {
-
 
78
				switch ($param) {
-
 
79
					case 'masque' :
119
			foreach ($parametres as $param => $valeur) {
80
						$this->ajouterLeFiltreMasque('masque', $valeur);
-
 
81
						break;
-
 
82
					case 'masque.code' :
120
				switch ($param) {
83
						$this->ajouterLeFiltreMasque('codet', $valeur);
-
 
84
						break;
-
 
85
					case 'masque.nom' :
121
					case 'masque'				: $this->ajouterLeFiltreMasque('masque', $valeur);				break;
86
						$this->ajouterLeFiltreMasque('nom', $valeur);
-
 
87
						break;
-
 
88
					case 'masque.statut' :
122
					case 'masque_code'			: $this->ajouterLeFiltreMasque('codet', $valeur);				break;
89
						$this->ajouterLeFiltreMasque('codet_statut', $valeur);
-
 
90
						break;
-
 
91
					case 'retour.format' :
123
					case 'masque_nom'			: $this->ajouterLeFiltreMasque('nom', $valeur);					break;
92
						$this->retour_format = $valeur;
-
 
93
						break;
-
 
94
					case 'navigation.depart' :
124
					case 'masque_statut'		: $this->ajouterLeFiltreMasque('codet_statut', $valeur);		break;
95
						$this->limite_requete['depart'] = $valeur;
-
 
96
						break;
125
					case 'retour_format'		: $this->retour_format = $valeur;								break;
97
					case 'navigation.limite' :
-
 
98
						$this->limite_requete['limite'] = $valeur;
-
 
99
						break;
126
					case 'navigation_depart'	: $this->limite_requete['depart'] = $valeur;					break;
100
					case 'recherche' :
127
					case 'navigation_limite'	: $this->limite_requete['limite'] = $valeur;					break;
101
						break;
128
					case 'recherche'			:																break;
102
					default						:
129
					default						:  $p = 'Erreur dans les paramètres de recherche de votre requête : '.
103
						$p = 'Erreur dans les paramètres de recherche de votre requête : '.
130
													'</br> Le paramètre " '.$param.' " n\'existe pas.';
104
							'</br> Le paramètre " '.$param.' " n\'existe pas.';
131
												$this->renvoyerErreur(RestServeur::HTTP_CODE_MAUVAISE_REQUETE, $p);	break;
105
							$this->renvoyerErreur(RestServeur::HTTP_CODE_MAUVAISE_REQUETE, $p);	break;
Line 176... Line 150...
176
				}
150
				}
177
			}
151
			}
178
		}
152
		}
179
	}
153
	}
Line 180... Line 154...
180
	
154
 
181
// +-------------------------------------------------------------------------------------------------------------------+		
155
	// +-----------------------------------------------------------------------------------------------------+
182
	public function traiterRessources(&$ressources) {
156
	public function traiterRessources() {
183
		if (isset($ressources) && !empty($ressources)) {
157
		if (isset($this->ressources) && !empty($this->ressources)) {
184
			$this->table_ressources = $ressources;
158
			$this->table_ressources = $this->ressources;
185
			if (isset($this->table_ressources[0]) && !empty($this->table_ressources[0])) {
159
			if (isset($this->table_ressources[0]) && !empty($this->table_ressources[0])) {
186
				//requete = /zone-geo/#id
160
				//requete = /zone-geo/#id
187
				$this->traiterRessourceId();
161
				$this->traiterRessourceId();
188
				if (isset($this->table_ressources[1]) && !empty($this->table_ressources[1])) {
162
				if (isset($this->table_ressources[1]) && !empty($this->table_ressources[1])) {
Line 284... Line 258...
284
		//on remplit la table $table_retour_json['entete']
258
		//on remplit la table $table_retour_json['entete']
285
		$this->table_retour['depart'] = $this->limite_requete['depart'];
259
		$this->table_retour['depart'] = $this->limite_requete['depart'];
286
		$this->table_retour['limite'] = $this->limite_requete['limite'];
260
		$this->table_retour['limite'] = $this->limite_requete['limite'];
287
		$this->table_retour['total']  = $this->total_resultat;
261
		$this->table_retour['total']  = $this->total_resultat;
288
		$url = $this->formulerUrl($this->total_resultat, '/zone-geo');
262
		$url = $this->formulerUrl($this->total_resultat, '/zone-geo');
-
 
263
		if (isset($url['precedent']) && $url['precedent'] != '') {
289
		if ($url['precedent'] != '')	{ $this->table_retour['href.precedent'] = $url['precedent'];	}
264
			$this->table_retour['href.precedent'] = $url['precedent'];
-
 
265
		}
-
 
266
		if (isset($url['suivant']) && $url['suivant'] != '') {
290
		if ($url['suivant'] != '')		{ $this->table_retour['href.suivant'] = $url['suivant'];		}
267
			$this->table_retour['href.suivant'] = $url['suivant'];
-
 
268
		}
291
		$table_retour_json['entete'] = $this->table_retour;
269
		$table_retour_json['entete'] = $this->table_retour;
Line 292... Line 270...
292
		
270
 
293
		//on remplit la table $table_retour_json['resultat']
271
		//on remplit la table $table_retour_json['resultat']
294
		$this->table_retour = array();
272
		$this->table_retour = array();