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();
|