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; |
} |