Line 36... |
Line 36... |
36 |
|
36 |
|
37 |
public function consulter($ressources, $parametres) {
|
37 |
public function consulter($ressources, $parametres) {
|
38 |
$this->ressources = $ressources;
|
38 |
$this->ressources = $ressources;
|
39 |
$this->parametres = $parametres;
|
39 |
$this->parametres = $parametres;
|
- |
|
40 |
$this->traiterParametres();
|
40 |
$this->traiterParametres();
|
41 |
$this->DefinirTables();
|
41 |
$this->traiterVersionProjet();
|
42 |
$this->traiterRessources();
|
42 |
$resultats = null;
|
43 |
$resultats = null;
|
43 |
foreach ($this->table_version as $version) {
|
44 |
foreach ($this->table_version as $version) {
|
44 |
$this->table = $version;
|
- |
|
45 |
$this->recupererNomChamp($this->table);
|
- |
|
46 |
$this->traiterRessources();
|
45 |
$this->table = $version;
|
47 |
$requete = $this->assemblerLaRequete();
|
46 |
$requete = $this->assemblerLaRequete();
|
48 |
$resultat = $this->getBdd()->recupererTous($requete);
|
47 |
$resultat = $this->getBdd()->recupererTous($requete);
|
49 |
$versionResultat = $this->traiterResultat($resultat, $version, $requete);
|
48 |
$versionResultat = $this->traiterResultat($resultat, $version);
|
50 |
if (count($this->table_version) > 1) {
|
49 |
if (count($this->table_version) > 1) {
|
51 |
$resultats[$version] = $versionResultat;
|
50 |
$resultats[$version] = $versionResultat;
|
52 |
} else {
|
51 |
} else {
|
53 |
$resultats = $versionResultat;
|
52 |
$resultats = $versionResultat;
|
54 |
}
|
53 |
}
|
55 |
}
|
54 |
}
|
56 |
return $resultats;
|
55 |
return $resultats;
|
Line 57... |
Line 56... |
57 |
}
|
56 |
}
|
58 |
|
57 |
|
59 |
public function traiterResultat($resultat, $version, $requete) {
|
58 |
public function traiterResultat($resultat, $version) {
|
60 |
$versionResultat = null;
|
59 |
$versionResultat = null;
|
61 |
if ($resultat == '') {
|
60 |
if ($resultat == '') {
|
62 |
$message = 'La requête SQL formée comporte une erreur!';
|
61 |
$message = 'La requête SQL formée comporte une erreur!';
|
Line 132... |
Line 131... |
132 |
break;
|
131 |
break;
|
133 |
} else {
|
132 |
} else {
|
134 |
$e = "Valeur de paramètre inconnue pour 'retour.format'.";
|
133 |
$e = "Valeur de paramètre inconnue pour 'retour.format'.";
|
135 |
$this->renvoyerErreur(RestServeur::HTTP_CODE_MAUVAISE_REQUETE, $e);
|
134 |
$this->renvoyerErreur(RestServeur::HTTP_CODE_MAUVAISE_REQUETE, $e);
|
136 |
}
|
135 |
}
|
- |
|
136 |
case 'version.projet' :
|
- |
|
137 |
$this->traiterVersion($valeur);
|
- |
|
138 |
break;
|
137 |
default :
|
139 |
default :
|
138 |
$e = 'Erreur dans les parametres de votre requête : </br> Le paramètre " '
|
140 |
$e = 'Erreur dans les parametres de votre requête : </br> Le paramètre " '
|
139 |
.$param.' " n\'existe pas.';
|
141 |
.$param.' " n\'existe pas.';
|
140 |
$this->renvoyerErreur(RestServeur::HTTP_CODE_MAUVAISE_REQUETE, $e); break;
|
142 |
$this->renvoyerErreur(RestServeur::HTTP_CODE_MAUVAISE_REQUETE, $e); break;
|
141 |
}
|
143 |
}
|
Line 173... |
Line 175... |
173 |
} else {
|
175 |
} else {
|
174 |
$this->champs_recherches=" cle, catminat_code, BDNT, num_taxon, num_nomen ";
|
176 |
$this->champs_recherches=" cle, catminat_code, BDNT, num_taxon, num_nomen ";
|
175 |
}
|
177 |
}
|
176 |
}
|
178 |
}
|
Line -... |
Line 179... |
- |
|
179 |
|
- |
|
180 |
//+++------------------------------traitement des versions----------------------------------------++
|
- |
|
181 |
|
- |
|
182 |
public function traiterVersion($valeur) {
|
- |
|
183 |
if (preg_match('/^[0-9]+(?:[._][0-9]+)*$/', $valeur) || $valeur == '*' || $valeur == '+') {
|
- |
|
184 |
$this->version_projet = $valeur;
|
- |
|
185 |
} else {
|
- |
|
186 |
$e = "Erreur : La version est inconnue.";
|
- |
|
187 |
$this->renvoyerErreur(RestServeur::HTTP_CODE_MAUVAISE_REQUETE, $e);
|
- |
|
188 |
}
|
- |
|
189 |
if ($this->version_projet == '*' && $this->ressources == array()) {
|
- |
|
190 |
$message = "L'affichage de plusieurs versions ne fonctionne que pour les ressources de type /ressources/#id";
|
- |
|
191 |
$code = RestServeur::HTTP_CODE_MAUVAISE_REQUETE;
|
- |
|
192 |
throw new Exception($message, $code);
|
- |
|
193 |
}
|
- |
|
194 |
}
|
- |
|
195 |
|
- |
|
196 |
public function DefinirTables() {
|
- |
|
197 |
$table_num_version = $this->recupererVersionDisponible();
|
- |
|
198 |
$prefixe_table = config::get('bdd_table');
|
- |
|
199 |
if ( in_array($this->version_projet,$table_num_version) ) {
|
- |
|
200 |
$this->table_version[] = $prefixe_table.'_v'.$this->version_projet;
|
- |
|
201 |
} elseif ($this->version_projet == '+') {
|
- |
|
202 |
$derniere_version = $table_num_version[count($table_num_version) - 1];
|
- |
|
203 |
$this->table_version[] = $prefixe_table.'_v'.str_replace('.', '_', $derniere_version);
|
- |
|
204 |
} elseif ($this->version_projet == '*') {
|
- |
|
205 |
foreach ($table_num_version as $num_version) {
|
- |
|
206 |
$this->table_version[] = $prefixe_table.'_v'.str_replace('.', '_', $num_version);
|
- |
|
207 |
}
|
- |
|
208 |
} else {
|
- |
|
209 |
$e = "Erreur : La version est inconnue.";
|
- |
|
210 |
$this->renvoyerErreur(RestServeur::HTTP_CODE_MAUVAISE_REQUETE, $e);
|
- |
|
211 |
}
|
- |
|
212 |
}
|
177 |
|
213 |
|
178 |
//+--------------------------formatages de resultats -------------------------------------------+
|
214 |
//+--------------------------formatages de resultats -------------------------------------------+
|
179 |
public function retournerResultatFormate($resultat) {
|
215 |
public function retournerResultatFormate($resultat) {
|
180 |
if ((count($this->ressources)) == 0) {
|
216 |
if ((count($this->ressources)) == 0) {
|
181 |
$table_retour_json = $this->formaterResultatsInformations($resultat);
|
217 |
$table_retour_json = $this->formaterResultatsInformations($resultat);
|
Line 295... |
Line 331... |
295 |
return $entete;
|
331 |
return $entete;
|
296 |
}
|
332 |
}
|
Line 297... |
Line 333... |
297 |
|
333 |
|
- |
|
334 |
|
298 |
|
335 |
//+--------------------------traitement ontologies -------------------------------------------+
|
- |
|
336 |
|
299 |
//+--------------------------traitement ontologies -------------------------------------------+
|
337 |
public function recupererOntologies($valeur, $champs){
|
300 |
public function recupererOntologies($valeur, $champs){
|
338 |
$url = Config::get('url_service_base').Config::get('nom_projet').
|
301 |
$url = $this->ajouterHref('ontologies',$this->champs_ontologiques[$champs].':'.urlencode(urlencode($valeur)));
|
339 |
'/ontologies/'.$this->champs_ontologiques[$champs].':'.urlencode(urlencode($valeur));
|
302 |
$val = $this->consulterHref($url);
|
340 |
$val = $this->consulterHref($url);
|
303 |
$resultat_json[$champs.'.libelle'] = $val->nom;
|
341 |
$resultat_json[$champs.'.libelle'] = $val->nom;
|
304 |
$resultat_json[$champs.'.code'] = $valeur;
|
342 |
$resultat_json[$champs.'.code'] = $valeur;
|
Line 328... |
Line 366... |
328 |
break;
|
366 |
break;
|
329 |
}
|
367 |
}
|
Line 330... |
Line 368... |
330 |
|
368 |
|
331 |
foreach ($types_sstypes as $cle => $tb) {
|
369 |
foreach ($types_sstypes as $cle => $tb) {
|
- |
|
370 |
if (($cle == 'type.principal') || ($cle == 'type.secondaire')) {
|
332 |
if (($cle == 'type.principal') || ($cle == 'type.secondaire')) {
|
371 |
$url = Config::get('url_service_base').Config::get('nom_projet').
|
333 |
$url = $this->ajouterHref('ontologies','TB:'.urlencode(urlencode($tb)));
|
372 |
'/ontologies/TB:'.urlencode(urlencode($tb));
|
334 |
$val = $this->consulterHref($url);
|
373 |
$val = $this->consulterHref($url);
|
335 |
$libelle[$cle]= $val->nom;
|
374 |
$libelle[$cle]= $val->nom;
|
336 |
$detail[$cle]['libelle'] = $val->nom;
|
375 |
$detail[$cle]['libelle'] = $val->nom;
|
337 |
$detail[$cle]['code'] = $val->code;
|
376 |
$detail[$cle]['code'] = $val->code;
|
338 |
$detail[$cle]['href'] = $url;
|
377 |
$detail[$cle]['href'] = $url;
|
339 |
}
|
378 |
}
|
340 |
if ($cle == 'sous_type.principal' || $cle == 'sous_type.secondaire' || $cle == 'sous_type.special') {
|
379 |
if ($cle == 'sous_type.principal' || $cle == 'sous_type.secondaire' || $cle == 'sous_type.special') {
|
341 |
$i = 0;
|
380 |
$i = 0;
|
- |
|
381 |
foreach ($tb as $sstypes) {
|
342 |
foreach ($tb as $sstypes) {
|
382 |
$url = Config::get('url_service_base').Config::get('nom_projet').
|
343 |
$url = $this->ajouterHref('ontologies','ssTT:'.urlencode(urlencode($sstypes)));
|
383 |
'/ontologies/ssTT:'.urlencode(urlencode($sstypes));
|
344 |
$val = $this->consulterHref($url);
|
384 |
$val = $this->consulterHref($url);
|
345 |
$libelle[$cle]=$val->nom;
|
385 |
$libelle[$cle]=$val->nom;
|
346 |
$detail[$cle][$i]['libelle'] = $val->nom;
|
386 |
$detail[$cle][$i]['libelle'] = $val->nom;
|
347 |
$detail[$cle][$i]['code'] = $val->code;
|
387 |
$detail[$cle][$i]['code'] = $val->code;
|