Subversion Repositories eFlore/Projets.eflore-projets

Compare Revisions

Ignore whitespace Rev 516 → Rev 517

/trunk/services/modules/0.1/baseflor/InformationsTaxonsSup.php
28,6 → 28,7
private $format_reponse = 'informations';
private $champs_recherches = '*';
protected $serviceNom = 'informations';
private $retour_format = 'max';
public function consulter($ressources, $parametres) {
$this->ressources = $ressources;
82,10 → 83,18
.' ve_salinite_min, ve_salinite_max, ve_texture_sol_min,ve_texture_sol_max,'
.' ve_mat_org_sol_min, ve_mat_org_sol_max ';
} else {
$e = 'Les données recherchées sont introuvables pour ce numero nomenclatural. ';
$e = "Valeur de paramètre inconnue pour 'categorie'.";
$this->renvoyerErreur(RestServeur::HTTP_CODE_MAUVAISE_REQUETE, $e);
}
break;
case 'retour.format' :
if ($valeur == 'min' || $valeur == 'max') {
$this->retour_format = $valeur;
break;
} else {
$e = "Valeur de paramètre inconnue pour 'retour.format'.";
$this->renvoyerErreur(RestServeur::HTTP_CODE_MAUVAISE_REQUETE, $e);
}
default :
$e = 'Erreur dans les parametres de votre requête : </br> Le paramètre " '
.$param.' " n\'existe pas.';
122,23 → 131,29
public function retournerResultatFormate($resultat) {
$resultat_json = $resultat[0];
$this->champs_ontologiques = $this->recupererTableauConfig('champs_ontologiques');
foreach ($this->champs_ontologiques as $cle => $valeur){
if ($resultat_json[$cle.'_min'] != ""){
$tab_ontologie = $this->recupererOntologies($resultat_json[$cle.'_min'], $cle.'_min');
unset($resultat_json[$cle.'_min']);
$resultat_json= array_merge($resultat_json,$tab_ontologie);
if ($this->retour_format == 'max') {
$this->champs_ontologiques = $this->recupererTableauConfig('champs_ontologiques');
$graphique_presence = false;
foreach ($this->champs_ontologiques as $cle => $valeur){
if ($resultat_json[$cle.'_min'] != ""){
$graphique_presence = true;
$tab_ontologie = $this->recupererOntologies($resultat_json[$cle.'_min'], $cle.'_min');
unset($resultat_json[$cle.'_min']);
$resultat_json= array_merge($resultat_json,$tab_ontologie);
}
if ($resultat_json[$cle.'_max'] != ""){
$tab_ontologie = $this->recupererOntologies($resultat_json[$cle.'_max'], $cle.'_max');
unset($resultat_json[$cle.'_max']);
$resultat_json= array_merge($resultat_json,$tab_ontologie);
}
}
if ($resultat_json[$cle.'_max'] != ""){
$tab_ontologie = $this->recupererOntologies($resultat_json[$cle.'_max'], $cle.'_max');
unset($resultat_json[$cle.'_max']);
$resultat_json= array_merge($resultat_json,$tab_ontologie);
if ($graphique_presence) {
$resultat_json['graphique_climat']['libelle'] = 'climat';
$resultat_json['graphique_climat']['href'] = $this->ajouterHref('graphiques/climat', strtolower($resultat_json['bdnt']).'.nn:'.$resultat_json['num_nomen']);
$resultat_json['graphique_sol']['libelle'] = 'sol';
$resultat_json['graphique_sol']['href'] = $this->ajouterHref('graphiques/sol', strtolower($resultat_json['bdnt']).'.nn:'.$resultat_json['num_nomen']);
}
}
$resultat_json['graphique_climat']['libelle'] = 'climat';
$resultat_json['graphique_climat']['href'] = $this->ajouterHref('graphiques/climat', strtolower($resultat_json['bdnt']).'.nn:'.$resultat_json['num_nomen']);
$resultat_json['graphique_sol']['libelle'] = 'sol';
$resultat_json['graphique_sol']['href'] = $this->ajouterHref('graphiques/sol', strtolower($resultat_json['bdnt']).'.nn:'.$resultat_json['num_nomen']);
return $resultat_json ;
}
/trunk/services/modules/0.1/baseflor/InformationsBaseflor.php
74,8 → 74,32
foreach ($this->parametres as $param => $valeur) {
switch ($param) {
case 'navigation.depart' :
$this->limite_requete['depart'] = $valeur; break;
case 'navigation.limite' : $this->limite_requete['limite'] = $valeur; break;
if (isset($this->parametres['navigation.limite'])) {
if(preg_match('/^([0-9]+)$/', $valeur)){
$this->limite_requete['depart'] = $valeur;
break;
} else {
$e = "Erreur : valeur erronnée pour le paramètre navigation.depart.";
$this->renvoyerErreur(RestServeur::HTTP_CODE_MAUVAISE_REQUETE, $e);
}
} else {
$e = "indiquez également la valeur pour le paramètre navigation.limite.";
$this->renvoyerErreur(RestServeur::HTTP_CODE_MAUVAISE_REQUETE, $e);
}
case 'navigation.limite' :
if (isset($this->parametres['navigation.depart'])) {
if(preg_match('/^([0-9]+)$/', $valeur) && $valeur != 0){
$this->limite_requete['limite'] = $valeur;
break;
} else {
$e = "Erreur : valeur erronnée pour le paramètre navigation.limite.";
$this->renvoyerErreur(RestServeur::HTTP_CODE_MAUVAISE_REQUETE, $e);
}
} else {
$e = "indiquez également la valeur pour le paramètre navigation.depart.";
$this->renvoyerErreur(RestServeur::HTTP_CODE_MAUVAISE_REQUETE, $e);
}
case 'categorie' :
if ($valeur == "description") {
$this->champs_recherches = "num_nomen, BDNT, chorologie, inflorescence,"
89,7 → 113,9
}elseif ($valeur == "ecologie") {
$this->champs_recherches = " num_nomen, BDNT, ve_lumiere , ve_temperature,"
." ve_continentalite, ve_humidite_atmos, ve_humidite_edaph, ve_reaction_sol,"
." ve_nutriments_sol, ve_salinite, ve_texture_sol, ve_mat_org_sol ";
." ve_nutriments_sol, ve_salinite, ve_texture_sol, ve_mat_org_sol, "
." vi_lumiere, vi_temperature, vi_continentalite, vi_humidite_edaph,"
." vi_reaction_sol, vi_nutriments_sol, vi_salinite ";
$this->requete_condition[] = "( ve_lumiere != '' OR ve_temperature != '' ".
"OR ve_continentalite != '' OR ve_humidite_atmos != '' ".
"OR ve_humidite_edaph != '' OR ve_reaction_sol != '' ".
96,13 → 122,18
"OR ve_nutriments_sol != '' OR ve_salinite != '' ".
"OR ve_texture_sol != '' OR ve_mat_org_sol != '' )";
} else {
$e = "Valeur de paramètre inconnue pour 'test'.";
$e = "Valeur de paramètre inconnue pour 'categorie'.";
$this->renvoyerErreur(RestServeur::HTTP_CODE_MAUVAISE_REQUETE, $e);
}
break;
case 'retour.format' :
$this->retour_format = $valeur;
break;
if ($valeur == 'min' || $valeur == 'max') {
$this->retour_format = $valeur;
break;
} else {
$e = "Valeur de paramètre inconnue pour 'retour.format'.";
$this->renvoyerErreur(RestServeur::HTTP_CODE_MAUVAISE_REQUETE, $e);
}
default :
$e = 'Erreur dans les parametres de votre requête : </br> Le paramètre " '
.$param.' " n\'existe pas.';
111,6 → 142,8
}
}
}
 
public function traiterRessources() {
if (isset($this->ressources) && !empty($this->ressources[0])) {
145,7 → 178,7
//+--------------------------formatages de resultats -------------------------------------------+
public function retournerResultatFormate($resultat) {
if ((count($this->ressources)) == 0) {
$table_retour_json['resultat'] = $this->formaterResultatsInformations($resultat);
$table_retour_json = $this->formaterResultatsInformations($resultat);
} else {
$table_retour_json = $this->formaterResultatsInformationsBDNTnn($resultat);
}
169,7 → 202,6
 
public function formaterResultatsTousChamps($resultat) {
$resultat_json = $resultat;
 
if ($resultat_json['type_bio'] != ""){
$tab_ontologie = $this->recupererOntologiePrTypeBio($resultat_json['type_bio']);
unset($resultat_json['type_bio']);
176,19 → 208,21
$resultat_json= array_merge($resultat_json,$tab_ontologie);
}
$this->champs_ontologiques = $this->recupererTableauConfig('champs_ontologiques');
 
$Graphique_presence = false;
foreach ($this->champs_ontologiques as $cle => $valeur){
if ($resultat_json[$cle] != ""){
$Graphique_presence = true;
$tab_ontologie = $this->recupererOntologies($resultat_json[$cle], $cle);
unset($resultat_json[$cle]);
$resultat_json = array_merge($resultat_json,$tab_ontologie);
}
}
$resultat_json['graphique_climat']['libelle'] = 'climat';
$resultat_json['graphique_climat']['href'] = $this->ajouterHref('graphiques/climat', strtolower($resultat_json['BDNT']).'.nn:'.$resultat_json['num_nomen']);
$resultat_json['graphique_sol']['libelle'] = 'sol';
$resultat_json['graphique_sol']['href'] = $this->ajouterHref('graphiques/sol', strtolower($resultat_json['BDNT']).'.nn:'.$resultat_json['num_nomen']);
 
if ($Graphique_presence) {
$resultat_json['graphique_climat']['libelle'] = 'climat';
$resultat_json['graphique_climat']['href'] = $this->ajouterHref('graphiques/climat', strtolower($resultat_json['BDNT']).'.nn:'.$resultat_json['num_nomen']);
$resultat_json['graphique_sol']['libelle'] = 'sol';
$resultat_json['graphique_sol']['href'] = $this->ajouterHref('graphiques/sol', strtolower($resultat_json['BDNT']).'.nn:'.$resultat_json['num_nomen']);
}
return $resultat_json ;
}
 
195,17 → 229,21
public function formaterResultatsChampsEcologie($resultat) {
$resultat_json = $resultat;
$this->champs_ontologiques = $this->recupererTableauConfig('champs_ontologiques');
$Graphique_presence = false;
foreach ($this->champs_ontologiques as $cle => $valeur){
if ($resultat_json[$cle] != ""){
$Graphique_presence = true;
$tab_ontologie = $this->recupererOntologies($resultat_json[$cle], $cle);
unset($resultat_json[$cle]);
$resultat_json= array_merge($resultat_json,$tab_ontologie);
$resultat_json = array_merge($resultat_json,$tab_ontologie);
}
}
$resultat_json['graphique_climat']['libelle'] = 'climat';
$resultat_json['graphique_climat']['href'] = $this->ajouterHref('graphiques/climat', strtolower($resultat_json['BDNT']).'.nn:'.$resultat_json['num_nomen']);
$resultat_json['graphique_sol']['libelle'] = 'sol';
$resultat_json['graphique_sol']['href'] = $this->ajouterHref('graphiques/sol', strtolower($resultat_json['BDNT']).'.nn:'.$resultat_json['num_nomen']);
if ($Graphique_presence) {
$resultat_json['graphique_climat']['libelle'] = 'climat';
$resultat_json['graphique_climat']['href'] = $this->ajouterHref('graphiques/climat', strtolower($resultat_json['BDNT']).'.nn:'.$resultat_json['num_nomen']);
$resultat_json['graphique_sol']['libelle'] = 'sol';
$resultat_json['graphique_sol']['href'] = $this->ajouterHref('graphiques/sol', strtolower($resultat_json['BDNT']).'.nn:'.$resultat_json['num_nomen']);
}
return $resultat_json ;
}
 
218,6 → 256,8
}
return $resultat_json ;
}
public function formaterResultatsInformations($resultat) {
$resultat_json = array();
$resultat_json['entete'] = $this->ajouterEnteteResultat();
226,11 → 266,15
$num = $tab['cle'];
unset($tab['cle']);
foreach ($tab as $param => $valeur) {
$resultat_json[$num][$param] = $valeur;
$resultat_json['resultats'][$num][$param] = $valeur;
}
$resultat_json[$num]['href'] = $this->ajouterHref('informations',strtolower($tab['BDNT']).".nn:".$tab['num_nomen']);
if ($tab['num_nomen'] != 0) {
$resultat_json['resultats'][$num]['href'] =
$this->ajouterHref('informations',strtolower($tab['BDNT']).".nn:".$tab['num_nomen']);
}
}
}
return $resultat_json;
}
 
393,12 → 437,22
$this->calculerTotalResultat();
$this->requete_limite = '';
if ((count($this->ressources)) == 0) {
if (($this->limite_requete['depart'] < $this->total_resultat) &&
(($this->limite_requete['limite'] + $this->limite_requete['depart'] )
< $this->total_resultat )) {
if ($this->limite_requete['depart'] < $this->total_resultat) {
if (($this->limite_requete['limite']
+ $this->limite_requete['depart'])
>= $this->total_resultat ){
$this->requete_limite = 'LIMIT '.$this->limite_requete['depart'].', '
.$this->total_resultat;
} else {
$this->requete_limite = 'LIMIT '.$this->limite_requete['depart'].', '
.$this->limite_requete['limite'];
}
} else {
$e = "Erreur : la valeur pour le paramètre navigation.départ est supérieure au"
." nombre total de résultats.";
$this->renvoyerErreur(RestServeur::HTTP_CODE_MAUVAISE_REQUETE, $e);
}
}
return $this->requete_limite;
}
/trunk/services/modules/0.1/baseflor/Informations.php
19,23 → 19,26
private $info_tables = array('InformationsBaseflor', 'InformationsTaxonsSup');
public function consulter($ressources, $parametres) {
$versionResultat = null;
foreach ($this->info_tables as $info_tab) {
$info = new $info_tab();
$versionResultat = $info->consulter($ressources, $parametres);
if($versionResultat != null) {
break;
$versionResultat = null;
foreach ($this->info_tables as $info_tab) {
$info = new $info_tab();
$versionResultat = $info->consulter($ressources, $parametres);
if($versionResultat != null) {
break;
}
}
}
if ($versionResultat == null) {
$message = 'Les données recherchées sont introuvables.';
$code = RestServeur::HTTP_CODE_RESSOURCE_INTROUVABLE;
throw new Exception($message, $code);
}
if ($versionResultat == null) {
$message = 'Les données recherchées sont introuvables.';
$code = RestServeur::HTTP_CODE_RESSOURCE_INTROUVABLE;
throw new Exception($message, $code);
}
 
return $versionResultat;
}
}