| Line 38... |
Line 38... |
| 38 |
$resultat_formate = '';
|
38 |
$resultat_formate = '';
|
| 39 |
$this->table = array(Config::get("bdd_triples")." t1", Config::get("bdd_triples")." t2", Config::get("bdd_pages")." p");
|
39 |
$this->table = array(Config::get("bdd_triples")." t1", Config::get("bdd_triples")." t2", Config::get("bdd_pages")." p");
|
| 40 |
$this->traiterParametres($parametres);
|
40 |
$this->traiterParametres($parametres);
|
| 41 |
$this->traiterRessources($ressources);
|
41 |
$this->traiterRessources($ressources);
|
| 42 |
if ($this->corps_http == '' && $this->entete_http == '') {
|
42 |
if ($this->corps_http == '' && $this->entete_http == '') {
|
| 43 |
$requete = $this->assemblerLaRequete();
|
43 |
$requete = $this->assemblerLaRequete();
|
| 44 |
$resultat = $this->getBdd()->recupererTous($requete);
|
44 |
$resultat = $this->getBdd()->recupererTous($requete);
|
| 45 |
$this->testerResultat($resultat, $resultat_formate, $requete);
|
45 |
$this->testerResultat($resultat, $resultat_formate, $requete);
|
| 46 |
}
|
46 |
}
|
| 47 |
return $this->formerReponseHTTP($resultat_formate);
|
47 |
return $this->formerReponseHTTP($resultat_formate);
|
| 48 |
}
|
48 |
}
|
| Line -... |
Line 49... |
| - |
|
49 |
|
| - |
|
50 |
public function formerReponseHTTP($resultat_formate, $mime = 'application/json', $encodage= 'utf-8') {
|
| - |
|
51 |
// Si aucune erreur n'a été établie (donc un tableau de résultat a bien ete renvoyé...)
|
| - |
|
52 |
if ($this->corps_http == '' && $this->entete_http == '') {
|
| - |
|
53 |
$this->entete_http = RestServeur::HTTP_CODE_OK;
|
| - |
|
54 |
$this->corps_http = $resultat_formate;
|
| - |
|
55 |
}
|
| - |
|
56 |
if ($this->entete_http != RestServeur::HTTP_CODE_OK) {
|
| - |
|
57 |
$mime = 'text/html';
|
| - |
|
58 |
}
|
| - |
|
59 |
// Gestion du type de contenu
|
| - |
|
60 |
if (!is_null($mime) && !is_null($encodage)) {
|
| - |
|
61 |
header("Content-Type: $mime; charset=$encodage");
|
| - |
|
62 |
} else if (!is_null($mime) && is_null($encodage)) {
|
| - |
|
63 |
header("Content-Type: $mime");
|
| - |
|
64 |
}
|
| - |
|
65 |
// Envoie de l'entête
|
| - |
|
66 |
RestServeur::envoyerEnteteStatutHttp($this->entete_http);
|
| - |
|
67 |
// Envoie du corps
|
| - |
|
68 |
return $this->corps_http;
|
| - |
|
69 |
}
|
| Line 49... |
Line 70... |
| 49 |
|
70 |
|
| 50 |
|
71 |
|
| 51 |
public function testerResultat($resultat, &$resultat_formate, $requete) {
|
72 |
public function testerResultat($resultat, &$resultat_formate, $requete) {
|
| 52 |
if ($resultat == '') { //cas ou coste/services/ ou la requete comporte des erreurs
|
73 |
if ($resultat == '') { //cas ou coste/services/ ou la requete comporte des erreurs
|
| Line 97... |
Line 118... |
| 97 |
public function traiterRessourceId($id) {
|
118 |
public function traiterRessourceId($id) {
|
| 98 |
$this->format_reponse .= '/id';
|
119 |
$this->format_reponse .= '/id';
|
| 99 |
if ($this->recherche == 'etendue') {
|
120 |
if ($this->recherche == 'etendue') {
|
| 100 |
$id = '%'.str_replace(' ','%', $id).'%';
|
121 |
$id = '%'.str_replace(' ','%', $id).'%';
|
| 101 |
}
|
122 |
}
|
| - |
|
123 |
|
| - |
|
124 |
$this->requete_champ = 'c.id AS num_nom, i.nom_sci AS titre, t1.resource AS tag, p.body AS texte';
|
| - |
|
125 |
$this->table = array(Config::get("bdd_correspondance_bdnff").' c',
|
| - |
|
126 |
Config::get("bdd_triples").' t1',
|
| - |
|
127 |
Config::get("bdd_index").' i',
|
| - |
|
128 |
Config::get("bdd_pages").' p');
|
| - |
|
129 |
$this->requete_condition[] = 'c.num_nom ='.$this->getBdd()->proteger($id);
|
| - |
|
130 |
$this->requete_condition[] = 'c.id = i.num_nom';
|
| - |
|
131 |
$this->requete_condition[] = 'i.nom_sci = t1.value';
|
| - |
|
132 |
$this->requete_condition[] = 't1.resource = p.tag';
|
| - |
|
133 |
|
| 102 |
$this->requete_champ = ' t1.resource AS tag, t1.value AS num_nom, t2.value AS titre, p.body AS texte';
|
134 |
/*$this->requete_champ = ' t1.resource AS tag, t1.value AS num_nom, t2.value AS titre, p.body AS texte';
|
| 103 |
$this->requete_condition[] = 't1.resource LIKE '.$this->getBdd()->proteger($id);
|
135 |
$this->requete_condition[] = 't1.resource LIKE '.$this->getBdd()->proteger($id);
|
| 104 |
$this->requete_condition[] = 't1.property = "num_nom"';
|
136 |
$this->requete_condition[] = 't1.property = "num_nom"';
|
| 105 |
$this->requete_condition[] = '(t1.resource = t2.resource AND t2.property = "titre")';
|
137 |
$this->requete_condition[] = '(t1.resource = t2.resource AND t2.property = "titre")';
|
| 106 |
$this->requete_condition[] = 't1.resource = p.tag';
|
138 |
$this->requete_condition[] = 't1.resource = p.tag';
|
| 107 |
$this->table = array(Config::get("bdd_triples").' t1',
|
139 |
$this->table = array(Config::get("bdd_triples").' t1',
|
| 108 |
Config::get("bdd_triples").' t2',
|
140 |
Config::get("bdd_triples").' t2',
|
| 109 |
Config::get("bdd_pages").' p');
|
141 |
Config::get("bdd_pages").' p');
|
| 110 |
$this->ajouterRechercheFloue('t1.resource', $id);
|
142 |
$this->ajouterRechercheFloue('t1.resource', $id);*/
|
| 111 |
}
|
143 |
}
|
| Line 112... |
Line 144... |
| 112 |
|
144 |
|
| 113 |
public function traiterRessourcesListe() {
|
145 |
public function traiterRessourcesListe() {
|
| 114 |
$this->requete_condition[] = "t1.property = 'num_nom'";
|
146 |
$this->requete_condition[] = "t1.property = 'num_nom'";
|
| Line 156... |
Line 188... |
| 156 |
if (isset($parametres['recherche']) && $parametres['recherche'] != '') {
|
188 |
if (isset($parametres['recherche']) && $parametres['recherche'] != '') {
|
| 157 |
$this->recherche = $parametres['recherche'];
|
189 |
$this->recherche = $parametres['recherche'];
|
| 158 |
}
|
190 |
}
|
| 159 |
foreach ($parametres as $param => $val) {
|
191 |
foreach ($parametres as $param => $val) {
|
| 160 |
switch ($param) {
|
192 |
switch ($param) {
|
| 161 |
case 'retour_format' : $this->retour_format = $val; break;
|
193 |
case 'retour.format' : $this->retour_format = $val; break;
|
| 162 |
case 'masque_titre' : $this->ajouterLeFiltreMasque('titre', $val); break;
|
194 |
case 'masque.titre' : $this->ajouterLeFiltreMasque('titre', $val); break;
|
| 163 |
case 'masque_famille' : $this->ajouterLeFiltreMasque('famille', $val); break;
|
195 |
case 'masque.famille' : $this->ajouterLeFiltreMasque('famille', $val); break;
|
| 164 |
case 'masque_ns' : $this->ajouterLeFiltreMasque('nom_sci', $val); break;
|
196 |
case 'masque.ns' : $this->ajouterLeFiltreMasque('nom_sci', $val); break;
|
| 165 |
case 'masque_type' : $this->ajouterLeFiltreMasque('type', $val); break;
|
197 |
case 'masque.type' : $this->ajouterLeFiltreMasque('type', $val); break;
|
| 166 |
case 'masque_txt' : $this->ajouterLeFiltreMasque('texte', $val); break;
|
198 |
case 'masque.txt' : $this->ajouterLeFiltreMasque('texte', $val); break;
|
| 167 |
case 'masque_page' : $this->ajouterLeFiltreMasque('page',$val); break;
|
199 |
case 'masque.page' : $this->ajouterLeFiltreMasque('page',$val); break;
|
| 168 |
case 'masque_tome' : $this->ajouterLeFiltreMasque('tome',$val); break;
|
200 |
case 'masque.tome' : $this->ajouterLeFiltreMasque('tome',$val); break;
|
| 169 |
case 'navigation_depart': $this->limite_requete['depart'] = $val; break;
|
201 |
case 'navigation.depart': $this->limite_requete['depart'] = $val; break;
|
| 170 |
case 'navigation_limite': $this->limite_requete['limite'] = $val; break;
|
202 |
case 'navigation.limite': $this->limite_requete['limite'] = $val; break;
|
| 171 |
case 'recherche' : break;
|
203 |
case 'recherche' : break;
|
| 172 |
default :
|
204 |
default :
|
| 173 |
$e = "Erreur dans les paramètres de recherche de votre requête : </br> Le parametre $param n\'existe pas.";
|
205 |
$e = "Erreur dans les paramètres de recherche de votre requête : </br> Le parametre $param n\'existe pas.";
|
| 174 |
$this->renvoyerErreur(RestServeur::HTTP_CODE_MAUVAISE_REQUETE,$e);
|
206 |
$this->renvoyerErreur(RestServeur::HTTP_CODE_MAUVAISE_REQUETE,$e);
|
| 175 |
break;
|
207 |
break;
|
| Line 284... |
Line 316... |
| 284 |
case 'textes/relations' : $reponse = $this->formaterTextesRelations($resultat); break;
|
316 |
case 'textes/relations' : $reponse = $this->formaterTextesRelations($resultat); break;
|
| 285 |
case 'textes/id' : $reponse = $this->formaterTextesId($resultat[0]); break;
|
317 |
case 'textes/id' : $reponse = $this->formaterTextesId($resultat[0]); break;
|
| 286 |
case 'textes/id/champ' : $reponse = $this->formaterTextesIdChamp($resultat[0]); break;
|
318 |
case 'textes/id/champ' : $reponse = $this->formaterTextesIdChamp($resultat[0]); break;
|
| 287 |
default : break;
|
319 |
default : break;
|
| 288 |
}
|
320 |
}
|
| 289 |
$reponse = json_encode($reponse);
|
- |
|
| 290 |
return $reponse;
|
321 |
return $reponse;
|
| 291 |
}
|
322 |
}
|
| Line 292... |
Line 323... |
| 292 |
|
323 |
|