Subversion Repositories eFlore/Projets.eflore-projets

Compare Revisions

Ignore whitespace Rev 517 → Rev 516

/trunk/services/modules/0.1/baseflor/InformationsBaseflor.php
74,32 → 74,8
foreach ($this->parametres as $param => $valeur) {
switch ($param) {
case 'navigation.depart' :
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);
}
$this->limite_requete['depart'] = $valeur; break;
case 'navigation.limite' : $this->limite_requete['limite'] = $valeur; break;
case 'categorie' :
if ($valeur == "description") {
$this->champs_recherches = "num_nomen, BDNT, chorologie, inflorescence,"
113,9 → 89,7
}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, "
." vi_lumiere, vi_temperature, vi_continentalite, vi_humidite_edaph,"
." vi_reaction_sol, vi_nutriments_sol, vi_salinite ";
." ve_nutriments_sol, ve_salinite, ve_texture_sol, ve_mat_org_sol ";
$this->requete_condition[] = "( ve_lumiere != '' OR ve_temperature != '' ".
"OR ve_continentalite != '' OR ve_humidite_atmos != '' ".
"OR ve_humidite_edaph != '' OR ve_reaction_sol != '' ".
122,18 → 96,13
"OR ve_nutriments_sol != '' OR ve_salinite != '' ".
"OR ve_texture_sol != '' OR ve_mat_org_sol != '' )";
} else {
$e = "Valeur de paramètre inconnue pour 'categorie'.";
$e = "Valeur de paramètre inconnue pour 'test'.";
$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);
}
$this->retour_format = $valeur;
break;
default :
$e = 'Erreur dans les parametres de votre requête : </br> Le paramètre " '
.$param.' " n\'existe pas.';
142,8 → 111,6
}
}
}
 
public function traiterRessources() {
if (isset($this->ressources) && !empty($this->ressources[0])) {
178,7 → 145,7
//+--------------------------formatages de resultats -------------------------------------------+
public function retournerResultatFormate($resultat) {
if ((count($this->ressources)) == 0) {
$table_retour_json = $this->formaterResultatsInformations($resultat);
$table_retour_json['resultat'] = $this->formaterResultatsInformations($resultat);
} else {
$table_retour_json = $this->formaterResultatsInformationsBDNTnn($resultat);
}
202,6 → 169,7
 
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']);
208,21 → 176,19
$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);
}
}
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 ;
}
 
229,21 → 195,17
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);
}
}
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 ;
}
 
256,8 → 218,6
}
return $resultat_json ;
}
public function formaterResultatsInformations($resultat) {
$resultat_json = array();
$resultat_json['entete'] = $this->ajouterEnteteResultat();
266,15 → 226,11
$num = $tab['cle'];
unset($tab['cle']);
foreach ($tab as $param => $valeur) {
$resultat_json['resultats'][$num][$param] = $valeur;
$resultat_json[$num][$param] = $valeur;
}
if ($tab['num_nomen'] != 0) {
$resultat_json['resultats'][$num]['href'] =
$this->ajouterHref('informations',strtolower($tab['BDNT']).".nn:".$tab['num_nomen']);
}
$resultat_json[$num]['href'] = $this->ajouterHref('informations',strtolower($tab['BDNT']).".nn:".$tab['num_nomen']);
}
}
return $resultat_json;
}
 
437,22 → 393,12
$this->calculerTotalResultat();
$this->requete_limite = '';
if ((count($this->ressources)) == 0) {
if ($this->limite_requete['depart'] < $this->total_resultat) {
if (($this->limite_requete['limite']
+ $this->limite_requete['depart'])
>= $this->total_resultat ){
if (($this->limite_requete['depart'] < $this->total_resultat) &&
(($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;
}