40,7 → 40,7 |
$this->traiterParametres($parametres); |
$this->traiterRessources($ressources); |
if ($this->corps_http == '' && $this->entete_http == '') { |
$requete = $this->assemblerLaRequete(); |
$requete = $this->assemblerLaRequete(); |
$resultat = $this->getBdd()->recupererTous($requete); |
$this->testerResultat($resultat, $resultat_formate, $requete); |
} |
47,7 → 47,28 |
return $this->formerReponseHTTP($resultat_formate); |
} |
|
public function formerReponseHTTP($resultat_formate, $mime = 'application/json', $encodage= 'utf-8') { |
// Si aucune erreur n'a été établie (donc un tableau de résultat a bien ete renvoyé...) |
if ($this->corps_http == '' && $this->entete_http == '') { |
$this->entete_http = RestServeur::HTTP_CODE_OK; |
$this->corps_http = $resultat_formate; |
} |
if ($this->entete_http != RestServeur::HTTP_CODE_OK) { |
$mime = 'text/html'; |
} |
// Gestion du type de contenu |
if (!is_null($mime) && !is_null($encodage)) { |
header("Content-Type: $mime; charset=$encodage"); |
} else if (!is_null($mime) && is_null($encodage)) { |
header("Content-Type: $mime"); |
} |
// Envoie de l'entête |
RestServeur::envoyerEnteteStatutHttp($this->entete_http); |
// Envoie du corps |
return $this->corps_http; |
} |
|
|
public function testerResultat($resultat, &$resultat_formate, $requete) { |
if ($resultat == '') { //cas ou coste/services/ ou la requete comporte des erreurs |
$e = 'La requête SQL formée comporte une erreur!'; |
99,7 → 120,18 |
if ($this->recherche == 'etendue') { |
$id = '%'.str_replace(' ','%', $id).'%'; |
} |
$this->requete_champ = ' t1.resource AS tag, t1.value AS num_nom, t2.value AS titre, p.body AS texte'; |
|
$this->requete_champ = 'c.id AS num_nom, i.nom_sci AS titre, t1.resource AS tag, p.body AS texte'; |
$this->table = array(Config::get("bdd_correspondance_bdnff").' c', |
Config::get("bdd_triples").' t1', |
Config::get("bdd_index").' i', |
Config::get("bdd_pages").' p'); |
$this->requete_condition[] = 'c.num_nom ='.$this->getBdd()->proteger($id); |
$this->requete_condition[] = 'c.id = i.num_nom'; |
$this->requete_condition[] = 'i.nom_sci = t1.value'; |
$this->requete_condition[] = 't1.resource = p.tag'; |
|
/*$this->requete_champ = ' t1.resource AS tag, t1.value AS num_nom, t2.value AS titre, p.body AS texte'; |
$this->requete_condition[] = 't1.resource LIKE '.$this->getBdd()->proteger($id); |
$this->requete_condition[] = 't1.property = "num_nom"'; |
$this->requete_condition[] = '(t1.resource = t2.resource AND t2.property = "titre")'; |
107,7 → 139,7 |
$this->table = array(Config::get("bdd_triples").' t1', |
Config::get("bdd_triples").' t2', |
Config::get("bdd_pages").' p'); |
$this->ajouterRechercheFloue('t1.resource', $id); |
$this->ajouterRechercheFloue('t1.resource', $id);*/ |
} |
|
public function traiterRessourcesListe() { |
158,16 → 190,16 |
} |
foreach ($parametres as $param => $val) { |
switch ($param) { |
case 'retour_format' : $this->retour_format = $val; break; |
case 'masque_titre' : $this->ajouterLeFiltreMasque('titre', $val); break; |
case 'masque_famille' : $this->ajouterLeFiltreMasque('famille', $val); break; |
case 'masque_ns' : $this->ajouterLeFiltreMasque('nom_sci', $val); break; |
case 'masque_type' : $this->ajouterLeFiltreMasque('type', $val); break; |
case 'masque_txt' : $this->ajouterLeFiltreMasque('texte', $val); break; |
case 'masque_page' : $this->ajouterLeFiltreMasque('page',$val); break; |
case 'masque_tome' : $this->ajouterLeFiltreMasque('tome',$val); break; |
case 'navigation_depart': $this->limite_requete['depart'] = $val; break; |
case 'navigation_limite': $this->limite_requete['limite'] = $val; break; |
case 'retour.format' : $this->retour_format = $val; break; |
case 'masque.titre' : $this->ajouterLeFiltreMasque('titre', $val); break; |
case 'masque.famille' : $this->ajouterLeFiltreMasque('famille', $val); break; |
case 'masque.ns' : $this->ajouterLeFiltreMasque('nom_sci', $val); break; |
case 'masque.type' : $this->ajouterLeFiltreMasque('type', $val); break; |
case 'masque.txt' : $this->ajouterLeFiltreMasque('texte', $val); break; |
case 'masque.page' : $this->ajouterLeFiltreMasque('page',$val); break; |
case 'masque.tome' : $this->ajouterLeFiltreMasque('tome',$val); break; |
case 'navigation.depart': $this->limite_requete['depart'] = $val; break; |
case 'navigation.limite': $this->limite_requete['limite'] = $val; break; |
case 'recherche' : break; |
default : |
$e = "Erreur dans les paramètres de recherche de votre requête : </br> Le parametre $param n\'existe pas."; |
286,7 → 318,6 |
case 'textes/id/champ' : $reponse = $this->formaterTextesIdChamp($resultat[0]); break; |
default : break; |
} |
$reponse = json_encode($reponse); |
return $reponse; |
} |
|