Line 63... |
Line 63... |
63 |
protected $table_retour = array();
|
63 |
protected $table_retour = array();
|
64 |
/** Stocke le nombre total de résultats de la requete principale. Est calculée lors de l'assemblage de la requete */
|
64 |
/** Stocke le nombre total de résultats de la requete principale. Est calculée lors de l'assemblage de la requete */
|
65 |
protected $total_resultat;
|
65 |
protected $total_resultat;
|
Line 66... |
Line 66... |
66 |
|
66 |
|
67 |
// +-------------------------------------------------------------------------------------------------------------------+
|
67 |
// +-------------------------------------------------------------------------------------------------------------------+
|
68 |
public function traiterParametres($parametres) {
|
68 |
public function traiterParametres() {
|
69 |
if (isset($parametres) && !empty($parametres)) {
|
69 |
if (isset($this->parametres) && !empty($this->parametres)) {
|
Line 70... |
Line 70... |
70 |
$this->table_param = $parametres;
|
70 |
$this->table_param = $$this->parametres;
|
71 |
|
71 |
|
72 |
// masque : filtre la liste en fonction d'un masque de recherche portant sur le code, le nom ou la region.
|
72 |
// masque : filtre la liste en fonction d'un masque de recherche portant sur le code, le nom ou la region.
|
73 |
// masque.code : filtre uniquement sur le code. masque.nom : filtre uniquement sur le nom.
|
73 |
// masque.code : filtre uniquement sur le code. masque.nom : filtre uniquement sur le nom.
|
74 |
// masque.region : filtre uniquement sur la region.
|
74 |
// masque.region : filtre uniquement sur la region.
|
75 |
if (isset($parametres['recherche']) && $parametres['recherche'] != '') {
|
75 |
if (isset($parametres['recherche']) && $parametres['recherche'] != '') {
|
Line 76... |
Line 76... |
76 |
$this->recherche = $parametres['recherche'];
|
76 |
$this->recherche = $parametres['recherche'];
|
77 |
}
|
77 |
}
|
- |
|
78 |
|
78 |
|
79 |
foreach ($parametres as $param => $valeur) {
|
- |
|
80 |
switch ($param) {
|
- |
|
81 |
case 'masque' :
|
79 |
foreach ($parametres as $param => $valeur) {
|
82 |
$this->ajouterLeFiltreMasque('masque', $valeur);
|
- |
|
83 |
break;
|
- |
|
84 |
case 'masque.code' :
|
80 |
switch ($param) {
|
85 |
$this->ajouterLeFiltreMasque('id', $valeur);
|
- |
|
86 |
break;
|
- |
|
87 |
case 'masque.nom' :
|
81 |
case 'masque' : $this->ajouterLeFiltreMasque('masque', $valeur); break;
|
88 |
$this->ajouterLeFiltreMasque('nom', $valeur);
|
- |
|
89 |
break;
|
82 |
case 'masque_code' : $this->ajouterLeFiltreMasque('id', $valeur); break;
|
90 |
case 'retour.langue' :
|
- |
|
91 |
$this->retour_langue = $valeur;break;
|
- |
|
92 |
case 'retour.format' :
|
83 |
case 'masque_nom' : $this->ajouterLeFiltreMasque('nom', $valeur); break;
|
93 |
$this->retour_format = $valeur;
|
- |
|
94 |
break;
|
- |
|
95 |
case 'navigation.depart' :
|
84 |
case 'retour_langue' : $this->retour_langue = $valeur; break;
|
96 |
$this->limite_requete['depart'] = $valeur;
|
- |
|
97 |
break;
|
85 |
case 'retour_format' : $this->retour_format = $valeur; break;
|
98 |
case 'navigation.limite' :
|
- |
|
99 |
$this->limite_requete['limite'] = $valeur;
|
- |
|
100 |
break;
|
86 |
case 'navigation_depart' : $this->limite_requete['depart'] = $valeur; break;
|
101 |
case 'recherche' :
|
87 |
case 'navigation_limite' : $this->limite_requete['limite'] = $valeur; break;
|
102 |
break;
|
88 |
case 'recherche' : break;
|
103 |
default :
|
89 |
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 : '.
|
90 |
'</br> Le paramètre " '.$param.' " n\'existe pas.';
|
105 |
'</br> Le paramètre " '.$param.' " n\'existe pas.';
|
91 |
$this->renvoyerErreur(RestServeur::HTTP_CODE_MAUVAISE_REQUETE, $p); break;
|
106 |
$this->renvoyerErreur(RestServeur::HTTP_CODE_MAUVAISE_REQUETE, $p);
|
92 |
}
|
107 |
}
|
Line 124... |
Line 139... |
124 |
}
|
139 |
}
|
125 |
}
|
140 |
}
|
126 |
}
|
141 |
}
|
Line 127... |
Line 142... |
127 |
|
142 |
|
128 |
// +-------------------------------------------------------------------------------------------------------------------+
|
143 |
// +-------------------------------------------------------------------------------------------------------------------+
|
129 |
public function traiterRessources(&$ressources) {
|
144 |
public function traiterRessources() {
|
130 |
if (isset($ressources) && !empty($ressources)) {
|
145 |
if (isset($this->ressources) && !empty($this->ressources)) {
|
131 |
$this->table_ressources = $ressources;
|
146 |
$this->table_ressources = $this->ressources;
|
132 |
if (isset($this->table_ressources[0]) && !empty($this->table_ressources[0])) {
|
147 |
if (isset($this->table_ressources[0]) && !empty($this->table_ressources[0])) {
|
133 |
//requete = /langues/#id
|
148 |
//requete = /langues/#id
|
134 |
$this->traiterRessourceId();
|
149 |
$this->traiterRessourceId();
|
135 |
if (isset($this->table_ressources[1]) && !empty($this->table_ressources[1])) {
|
150 |
if (isset($this->table_ressources[1]) && !empty($this->table_ressources[1])) {
|
Line 166... |
Line 181... |
166 |
}
|
181 |
}
|
Line 167... |
Line 182... |
167 |
|
182 |
|
168 |
// +-------------------------------------------------------------------------------------------------------------------+
|
183 |
// +-------------------------------------------------------------------------------------------------------------------+
|
169 |
public function assemblerLaRequete() {
|
184 |
public function assemblerLaRequete() {
|
170 |
$requete = ' SELECT '.$this->requete_champ.
|
185 |
$requete = ' SELECT '.$this->requete_champ.
|
171 |
' FROM '.$this->table
|
186 |
' FROM '.$this->table
|
172 |
.$this->formerRequeteCondition()
|
187 |
.$this->formerRequeteCondition()
|
173 |
.$this->formerRequeteLimite();
|
188 |
.$this->formerRequeteLimite();
|
174 |
return $requete;
|
189 |
return $requete;
|
Line 175... |
Line 190... |
175 |
}
|
190 |
}
|
176 |
|
191 |
|
Line 197... |
Line 212... |
197 |
return $this->requete_limite;
|
212 |
return $this->requete_limite;
|
198 |
}
|
213 |
}
|
Line 199... |
Line 214... |
199 |
|
214 |
|
200 |
public function recupererTotalResultat() {
|
215 |
public function recupererTotalResultat() {
|
201 |
//on récupère le nombre total de résultats de la requete (ex : le nombre d'id contenu dans la liste /langues)
|
216 |
//on récupère le nombre total de résultats de la requete (ex : le nombre d'id contenu dans la liste /langues)
|
202 |
$requete = 'SELECT count(*) as nombre FROM '
|
217 |
$requete = 'SELECT count(*) as nombre FROM '.
|
203 |
.$this->table
|
218 |
$this->table.
|
204 |
.$this->formerRequeteCondition();
|
219 |
$this->formerRequeteCondition();
|
Line 205... |
Line 220... |
205 |
$res = $this->getBdd()->recuperer($requete);
|
220 |
$res = $this->getBdd()->recuperer($requete);
|
206 |
|
221 |
|
207 |
if ($res) {
|
222 |
if ($res) {
|
Line 217... |
Line 232... |
217 |
// determine en fct du service appelé (/langues | /langues/#id | /langues/#id/champ |
|
232 |
// determine en fct du service appelé (/langues | /langues/#id | /langues/#id/champ |
|
218 |
// /langues/#id/relations) le format du tableau à retourner. Encode en json
|
233 |
// /langues/#id/relations) le format du tableau à retourner. Encode en json
|
219 |
public function retournerResultatFormate($resultat) {
|
234 |
public function retournerResultatFormate($resultat) {
|
220 |
$this->recupererTableConfig('correspondance_champs');
|
235 |
$this->recupererTableConfig('correspondance_champs');
|
221 |
switch ($this->format_reponse) {
|
236 |
switch ($this->format_reponse) {
|
- |
|
237 |
case 'langues' :
|
222 |
case 'langues' : $reponse = $this->formaterLangues($resultat); break;
|
238 |
$reponse = $this->formaterLangues($resultat);
|
- |
|
239 |
break;
|
- |
|
240 |
case 'langues/id' :
|
223 |
case 'langues/id' : $reponse = $this->formaterLanguesId($resultat[0]); break;
|
241 |
$reponse = $this->formaterLanguesId($resultat[0]);
|
- |
|
242 |
break;
|
- |
|
243 |
case 'langues/id/champ' :
|
224 |
case 'langues/id/champ' : $reponse = $this->formaterLanguesIdChamp($resultat[0]); break;
|
244 |
$reponse = $this->formaterLanguesIdChamp($resultat[0]);
|
225 |
default : break;
|
245 |
break;
|
226 |
}
|
246 |
}
|
227 |
return $reponse;
|
247 |
return $reponse;
|
228 |
}
|
248 |
}
|
Line 229... |
Line 249... |
229 |
|
249 |
|
Line 232... |
Line 252... |
232 |
$this->table_retour['depart'] = $this->limite_requete['depart'];
|
252 |
$this->table_retour['depart'] = $this->limite_requete['depart'];
|
233 |
$this->table_retour['limite'] = $this->limite_requete['limite'];
|
253 |
$this->table_retour['limite'] = $this->limite_requete['limite'];
|
234 |
$this->table_retour['total'] = $this->total_resultat;
|
254 |
$this->table_retour['total'] = $this->total_resultat;
|
235 |
//formuler les urls precedentes et suivantes affichées dans l'entete du resultat
|
255 |
//formuler les urls precedentes et suivantes affichées dans l'entete du resultat
|
236 |
$url = $this->formulerUrl($this->total_resultat, '/langues');
|
256 |
$url = $this->formulerUrl($this->total_resultat, '/langues');
|
- |
|
257 |
if (isset($url['precedent']) && $url['precedent'] != '') {
|
237 |
if ($url['precedent'] != '') { $this->table_retour['href.precedent'] = $url['precedent']; }
|
258 |
$this->table_retour['href.precedent'] = $url['precedent'];
|
- |
|
259 |
}
|
- |
|
260 |
if (isset($url['suivant']) && $url['suivant'] != '') {
|
238 |
if ($url['suivant'] != '') { $this->table_retour['href.suivant'] = $url['suivant']; }
|
261 |
$this->table_retour['href.suivant'] = $url['suivant'];
|
- |
|
262 |
}
|
Line 239... |
Line 263... |
239 |
|
263 |
|
240 |
$table_retour_json['entete'] = $this->table_retour;
|
264 |
$table_retour_json['entete'] = $this->table_retour;
|
241 |
$this->table_retour = array();
|
265 |
$this->table_retour = array();
|
242 |
if ($this->retour_langue == 'fr') {$nom = 'nom'; } else {$nom = 'nom_'.$this->retour_langue;}
|
266 |
if ($this->retour_langue == 'fr') {$nom = 'nom'; } else {$nom = 'nom_'.$this->retour_langue;}
|
243 |
if (isset($this->table_param['masque_nom'])) $resultat = $this->trierRechercheFloue($this->table_param['masque_nom'], $resultat, $nom);
|
267 |
if (isset($this->table_param['masque_nom'])) $resultat = $this->trierRechercheFloue($this->table_param['masque_nom'], $resultat, $nom);
|
244 |
//on remplit la table $table_retour_json['resultat']
|
268 |
//on remplit la table $table_retour_json['resultat']
|
245 |
foreach ($resultat as $tab) {
|
269 |
foreach ($resultat as $tab) {
|
246 |
foreach ($tab as $key => $valeur) {
|
270 |
foreach ($tab as $key => $valeur) {
|
- |
|
271 |
if ($valeur != '') {
|
- |
|
272 |
//TODO : vérifier d'où venez $id
|
247 |
if ($valeur != '') {
|
273 |
if ($key == 'id') {// ATTENTION : au départ valait $id!
|
248 |
if ($key == $id) {
|
274 |
$num = $valeur;
|
- |
|
275 |
$this->table_retour['code'] = $valeur;
|
249 |
$num = $valeur; $this->table_retour['code'] = $valeur; break;
|
276 |
break;
|
250 |
} elseif ($key == 'nom_'.$this->retour_langue || ($this->retour_langue == 'fr' && $key == 'nom')) {
|
277 |
} elseif ($key == 'nom_'.$this->retour_langue || ($this->retour_langue == 'fr' && $key == 'nom')) {
|
- |
|
278 |
$this->table_retour['nom'] = $valeur;
|
251 |
$this->table_retour['nom'] = $valeur; break;
|
279 |
break;
|
252 |
} else {
|
280 |
} else {
|
- |
|
281 |
switch ($key) {
|
253 |
switch ($key) {
|
282 |
case 'id' :
|
- |
|
283 |
$num = $valeur; $this->table_retour['code'] = $valeur;
|
- |
|
284 |
break;
|
254 |
case 'id' : $num = $valeur; $this->table_retour['code'] = $valeur; break;
|
285 |
case 'nom' :
|
255 |
case 'nom' : $this->table_retour['nom'] = $valeur; break;
|
286 |
$this->table_retour['nom'] = $valeur;
|
256 |
default : break;
|
287 |
break;
|
257 |
}
|
288 |
}
|
258 |
}
|
289 |
}
|
259 |
}
|
290 |
}
|
260 |
}
|
291 |
}
|