Subversion Repositories eFlore/Projets.eflore-projets

Compare Revisions

Ignore whitespace Rev 517 → Rev 518

/trunk/services/modules/0.1/baseflor/InformationsBaseflor.php
38,15 → 38,14
$this->ressources = $ressources;
$this->parametres = $parametres;
$this->traiterParametres();
$this->traiterVersionProjet();
$this->DefinirTables();
$this->traiterRessources();
$resultats = null;
foreach ($this->table_version as $version) {
$this->table = $version;
$this->recupererNomChamp($this->table);
$this->traiterRessources();
$requete = $this->assemblerLaRequete();
$resultat = $this->getBdd()->recupererTous($requete);
$versionResultat = $this->traiterResultat($resultat, $version, $requete);
$versionResultat = $this->traiterResultat($resultat, $version);
if (count($this->table_version) > 1) {
$resultats[$version] = $versionResultat;
} else {
56,7 → 55,7
return $resultats;
}
 
public function traiterResultat($resultat, $version, $requete) {
public function traiterResultat($resultat, $version) {
$versionResultat = null;
if ($resultat == '') {
$message = 'La requête SQL formée comporte une erreur!';
134,6 → 133,9
$e = "Valeur de paramètre inconnue pour 'retour.format'.";
$this->renvoyerErreur(RestServeur::HTTP_CODE_MAUVAISE_REQUETE, $e);
}
case 'version.projet' :
$this->traiterVersion($valeur);
break;
default :
$e = 'Erreur dans les parametres de votre requête : </br> Le paramètre " '
.$param.' " n\'existe pas.';
174,7 → 176,41
$this->champs_recherches=" cle, catminat_code, BDNT, num_taxon, num_nomen ";
}
}
 
//+++------------------------------traitement des versions----------------------------------------++
public function traiterVersion($valeur) {
if (preg_match('/^[0-9]+(?:[._][0-9]+)*$/', $valeur) || $valeur == '*' || $valeur == '+') {
$this->version_projet = $valeur;
} else {
$e = "Erreur : La version est inconnue.";
$this->renvoyerErreur(RestServeur::HTTP_CODE_MAUVAISE_REQUETE, $e);
}
if ($this->version_projet == '*' && $this->ressources == array()) {
$message = "L'affichage de plusieurs versions ne fonctionne que pour les ressources de type /ressources/#id";
$code = RestServeur::HTTP_CODE_MAUVAISE_REQUETE;
throw new Exception($message, $code);
}
}
public function DefinirTables() {
$table_num_version = $this->recupererVersionDisponible();
$prefixe_table = config::get('bdd_table');
if ( in_array($this->version_projet,$table_num_version) ) {
$this->table_version[] = $prefixe_table.'_v'.$this->version_projet;
} elseif ($this->version_projet == '+') {
$derniere_version = $table_num_version[count($table_num_version) - 1];
$this->table_version[] = $prefixe_table.'_v'.str_replace('.', '_', $derniere_version);
} elseif ($this->version_projet == '*') {
foreach ($table_num_version as $num_version) {
$this->table_version[] = $prefixe_table.'_v'.str_replace('.', '_', $num_version);
}
} else {
$e = "Erreur : La version est inconnue.";
$this->renvoyerErreur(RestServeur::HTTP_CODE_MAUVAISE_REQUETE, $e);
}
}
//+--------------------------formatages de resultats -------------------------------------------+
public function retournerResultatFormate($resultat) {
if ((count($this->ressources)) == 0) {
297,8 → 333,10
 
 
//+--------------------------traitement ontologies -------------------------------------------+
 
public function recupererOntologies($valeur, $champs){
$url = $this->ajouterHref('ontologies',$this->champs_ontologiques[$champs].':'.urlencode(urlencode($valeur)));
$url = Config::get('url_service_base').Config::get('nom_projet').
'/ontologies/'.$this->champs_ontologiques[$champs].':'.urlencode(urlencode($valeur));
$val = $this->consulterHref($url);
$resultat_json[$champs.'.libelle'] = $val->nom;
$resultat_json[$champs.'.code'] = $valeur;
330,7 → 368,8
 
foreach ($types_sstypes as $cle => $tb) {
if (($cle == 'type.principal') || ($cle == 'type.secondaire')) {
$url = $this->ajouterHref('ontologies','TB:'.urlencode(urlencode($tb)));
$url = Config::get('url_service_base').Config::get('nom_projet').
'/ontologies/TB:'.urlencode(urlencode($tb));
$val = $this->consulterHref($url);
$libelle[$cle]= $val->nom;
$detail[$cle]['libelle'] = $val->nom;
340,7 → 379,8
if ($cle == 'sous_type.principal' || $cle == 'sous_type.secondaire' || $cle == 'sous_type.special') {
$i = 0;
foreach ($tb as $sstypes) {
$url = $this->ajouterHref('ontologies','ssTT:'.urlencode(urlencode($sstypes)));
$url = Config::get('url_service_base').Config::get('nom_projet').
'/ontologies/ssTT:'.urlencode(urlencode($sstypes));
$val = $this->consulterHref($url);
$libelle[$cle]=$val->nom;
$detail[$cle][$i]['libelle'] = $val->nom;