| Line 72... |
Line 72... |
| 72 |
public function traiterParametres() {
|
72 |
public function traiterParametres() {
|
| 73 |
if (isset($this->parametres) && !empty($this->parametres)) {
|
73 |
if (isset($this->parametres) && !empty($this->parametres)) {
|
| 74 |
foreach ($this->parametres as $param => $valeur) {
|
74 |
foreach ($this->parametres as $param => $valeur) {
|
| 75 |
switch ($param) {
|
75 |
switch ($param) {
|
| 76 |
case 'navigation.depart' :
|
76 |
case 'navigation.depart' :
|
| - |
|
77 |
if (isset($this->parametres['navigation.limite'])) {
|
| - |
|
78 |
if(preg_match('/^([0-9]+)$/', $valeur)){
|
| 77 |
$this->limite_requete['depart'] = $valeur; break;
|
79 |
$this->limite_requete['depart'] = $valeur;
|
| - |
|
80 |
break;
|
| - |
|
81 |
} else {
|
| - |
|
82 |
$e = "Erreur : valeur erronnée pour le paramètre navigation.depart.";
|
| - |
|
83 |
$this->renvoyerErreur(RestServeur::HTTP_CODE_MAUVAISE_REQUETE, $e);
|
| - |
|
84 |
}
|
| - |
|
85 |
} else {
|
| - |
|
86 |
$e = "indiquez également la valeur pour le paramètre navigation.limite.";
|
| - |
|
87 |
$this->renvoyerErreur(RestServeur::HTTP_CODE_MAUVAISE_REQUETE, $e);
|
| - |
|
88 |
}
|
| - |
|
89 |
case 'navigation.limite' :
|
| - |
|
90 |
if (isset($this->parametres['navigation.depart'])) {
|
| - |
|
91 |
if(preg_match('/^([0-9]+)$/', $valeur) && $valeur != 0){
|
| 78 |
case 'navigation.limite' : $this->limite_requete['limite'] = $valeur; break;
|
92 |
$this->limite_requete['limite'] = $valeur;
|
| - |
|
93 |
break;
|
| - |
|
94 |
} else {
|
| - |
|
95 |
$e = "Erreur : valeur erronnée pour le paramètre navigation.limite.";
|
| - |
|
96 |
$this->renvoyerErreur(RestServeur::HTTP_CODE_MAUVAISE_REQUETE, $e);
|
| - |
|
97 |
}
|
| - |
|
98 |
|
| - |
|
99 |
} else {
|
| - |
|
100 |
$e = "indiquez également la valeur pour le paramètre navigation.depart.";
|
| - |
|
101 |
$this->renvoyerErreur(RestServeur::HTTP_CODE_MAUVAISE_REQUETE, $e);
|
| - |
|
102 |
}
|
| 79 |
case 'categorie' :
|
103 |
case 'categorie' :
|
| 80 |
if ($valeur == "description") {
|
104 |
if ($valeur == "description") {
|
| 81 |
$this->champs_recherches = "num_nomen, BDNT, chorologie, inflorescence,"
|
105 |
$this->champs_recherches = "num_nomen, BDNT, chorologie, inflorescence,"
|
| 82 |
." sexualite, ordre_maturation, "
|
106 |
." sexualite, ordre_maturation, "
|
| 83 |
."pollinisation, fruit, dissemination, couleur_fleur, macule, floraison, type_bio, "
|
107 |
."pollinisation, fruit, dissemination, couleur_fleur, macule, floraison, type_bio, "
|
| Line 87... |
Line 111... |
| 87 |
"OR fruit != '' OR dissemination != '' OR couleur_fleur != '' OR macule != '' ".
|
111 |
"OR fruit != '' OR dissemination != '' OR couleur_fleur != '' OR macule != '' ".
|
| 88 |
"OR floraison != '' OR type_bio != '' OR form_vegetale != '' )";
|
112 |
"OR floraison != '' OR type_bio != '' OR form_vegetale != '' )";
|
| 89 |
}elseif ($valeur == "ecologie") {
|
113 |
}elseif ($valeur == "ecologie") {
|
| 90 |
$this->champs_recherches = " num_nomen, BDNT, ve_lumiere , ve_temperature,"
|
114 |
$this->champs_recherches = " num_nomen, BDNT, ve_lumiere , ve_temperature,"
|
| 91 |
." ve_continentalite, ve_humidite_atmos, ve_humidite_edaph, ve_reaction_sol,"
|
115 |
." ve_continentalite, ve_humidite_atmos, ve_humidite_edaph, ve_reaction_sol,"
|
| 92 |
." ve_nutriments_sol, ve_salinite, ve_texture_sol, ve_mat_org_sol ";
|
116 |
." ve_nutriments_sol, ve_salinite, ve_texture_sol, ve_mat_org_sol, "
|
| - |
|
117 |
." vi_lumiere, vi_temperature, vi_continentalite, vi_humidite_edaph,"
|
| - |
|
118 |
." vi_reaction_sol, vi_nutriments_sol, vi_salinite ";
|
| 93 |
$this->requete_condition[] = "( ve_lumiere != '' OR ve_temperature != '' ".
|
119 |
$this->requete_condition[] = "( ve_lumiere != '' OR ve_temperature != '' ".
|
| 94 |
"OR ve_continentalite != '' OR ve_humidite_atmos != '' ".
|
120 |
"OR ve_continentalite != '' OR ve_humidite_atmos != '' ".
|
| 95 |
"OR ve_humidite_edaph != '' OR ve_reaction_sol != '' ".
|
121 |
"OR ve_humidite_edaph != '' OR ve_reaction_sol != '' ".
|
| 96 |
"OR ve_nutriments_sol != '' OR ve_salinite != '' ".
|
122 |
"OR ve_nutriments_sol != '' OR ve_salinite != '' ".
|
| 97 |
"OR ve_texture_sol != '' OR ve_mat_org_sol != '' )";
|
123 |
"OR ve_texture_sol != '' OR ve_mat_org_sol != '' )";
|
| 98 |
} else {
|
124 |
} else {
|
| 99 |
$e = "Valeur de paramètre inconnue pour 'test'.";
|
125 |
$e = "Valeur de paramètre inconnue pour 'categorie'.";
|
| 100 |
$this->renvoyerErreur(RestServeur::HTTP_CODE_MAUVAISE_REQUETE, $e);
|
126 |
$this->renvoyerErreur(RestServeur::HTTP_CODE_MAUVAISE_REQUETE, $e);
|
| 101 |
}
|
127 |
}
|
| 102 |
break;
|
128 |
break;
|
| 103 |
case 'retour.format' :
|
129 |
case 'retour.format' :
|
| - |
|
130 |
if ($valeur == 'min' || $valeur == 'max') {
|
| 104 |
$this->retour_format = $valeur;
|
131 |
$this->retour_format = $valeur;
|
| 105 |
break;
|
132 |
break;
|
| - |
|
133 |
} else {
|
| - |
|
134 |
$e = "Valeur de paramètre inconnue pour 'retour.format'.";
|
| - |
|
135 |
$this->renvoyerErreur(RestServeur::HTTP_CODE_MAUVAISE_REQUETE, $e);
|
| - |
|
136 |
}
|
| 106 |
default :
|
137 |
default :
|
| 107 |
$e = 'Erreur dans les parametres de votre requête : </br> Le paramètre " '
|
138 |
$e = 'Erreur dans les parametres de votre requête : </br> Le paramètre " '
|
| 108 |
.$param.' " n\'existe pas.';
|
139 |
.$param.' " n\'existe pas.';
|
| 109 |
$this->renvoyerErreur(RestServeur::HTTP_CODE_MAUVAISE_REQUETE, $e); break;
|
140 |
$this->renvoyerErreur(RestServeur::HTTP_CODE_MAUVAISE_REQUETE, $e); break;
|
| 110 |
}
|
141 |
}
|
| 111 |
}
|
142 |
}
|
| 112 |
}
|
143 |
}
|
| 113 |
}
|
144 |
}
|
| - |
|
145 |
|
| - |
|
146 |
|
| Line 114... |
Line 147... |
| 114 |
|
147 |
|
| 115 |
public function traiterRessources() {
|
148 |
public function traiterRessources() {
|
| 116 |
if (isset($this->ressources) && !empty($this->ressources[0])) {
|
149 |
if (isset($this->ressources) && !empty($this->ressources[0])) {
|
| 117 |
if(preg_match('/^(.+)\.nn:([0-9]+)$/', $this->ressources[0], $retour)==1){
|
150 |
if(preg_match('/^(.+)\.nn:([0-9]+)$/', $this->ressources[0], $retour)==1){
|
| Line 143... |
Line 176... |
| 143 |
}
|
176 |
}
|
| Line 144... |
Line 177... |
| 144 |
|
177 |
|
| 145 |
//+--------------------------formatages de resultats -------------------------------------------+
|
178 |
//+--------------------------formatages de resultats -------------------------------------------+
|
| 146 |
public function retournerResultatFormate($resultat) {
|
179 |
public function retournerResultatFormate($resultat) {
|
| 147 |
if ((count($this->ressources)) == 0) {
|
180 |
if ((count($this->ressources)) == 0) {
|
| 148 |
$table_retour_json['resultat'] = $this->formaterResultatsInformations($resultat);
|
181 |
$table_retour_json = $this->formaterResultatsInformations($resultat);
|
| 149 |
} else {
|
182 |
} else {
|
| 150 |
$table_retour_json = $this->formaterResultatsInformationsBDNTnn($resultat);
|
183 |
$table_retour_json = $this->formaterResultatsInformationsBDNTnn($resultat);
|
| 151 |
}
|
184 |
}
|
| 152 |
return $table_retour_json;
|
185 |
return $table_retour_json;
|
| Line 167... |
Line 200... |
| 167 |
}
|
200 |
}
|
| Line 168... |
Line 201... |
| 168 |
|
201 |
|
| 169 |
|
202 |
|
| 170 |
public function formaterResultatsTousChamps($resultat) {
|
- |
|
| 171 |
$resultat_json = $resultat;
|
203 |
public function formaterResultatsTousChamps($resultat) {
|
| 172 |
|
204 |
$resultat_json = $resultat;
|
| 173 |
if ($resultat_json['type_bio'] != ""){
|
205 |
if ($resultat_json['type_bio'] != ""){
|
| 174 |
$tab_ontologie = $this->recupererOntologiePrTypeBio($resultat_json['type_bio']);
|
206 |
$tab_ontologie = $this->recupererOntologiePrTypeBio($resultat_json['type_bio']);
|
| 175 |
unset($resultat_json['type_bio']);
|
207 |
unset($resultat_json['type_bio']);
|
| 176 |
$resultat_json= array_merge($resultat_json,$tab_ontologie);
|
208 |
$resultat_json= array_merge($resultat_json,$tab_ontologie);
|
| 177 |
}
|
- |
|
| - |
|
209 |
}
|
| 178 |
$this->champs_ontologiques = $this->recupererTableauConfig('champs_ontologiques');
|
210 |
$this->champs_ontologiques = $this->recupererTableauConfig('champs_ontologiques');
|
| 179 |
|
211 |
$Graphique_presence = false;
|
| - |
|
212 |
foreach ($this->champs_ontologiques as $cle => $valeur){
|
| 180 |
foreach ($this->champs_ontologiques as $cle => $valeur){
|
213 |
if ($resultat_json[$cle] != ""){
|
| 181 |
if ($resultat_json[$cle] != ""){
|
214 |
$Graphique_presence = true;
|
| 182 |
$tab_ontologie = $this->recupererOntologies($resultat_json[$cle], $cle);
|
215 |
$tab_ontologie = $this->recupererOntologies($resultat_json[$cle], $cle);
|
| 183 |
unset($resultat_json[$cle]);
|
216 |
unset($resultat_json[$cle]);
|
| 184 |
$resultat_json = array_merge($resultat_json,$tab_ontologie);
|
217 |
$resultat_json = array_merge($resultat_json,$tab_ontologie);
|
| - |
|
218 |
}
|
| 185 |
}
|
219 |
}
|
| 186 |
}
|
220 |
if ($Graphique_presence) {
|
| 187 |
$resultat_json['graphique_climat']['libelle'] = 'climat';
|
221 |
$resultat_json['graphique_climat']['libelle'] = 'climat';
|
| 188 |
$resultat_json['graphique_climat']['href'] = $this->ajouterHref('graphiques/climat', strtolower($resultat_json['BDNT']).'.nn:'.$resultat_json['num_nomen']);
|
222 |
$resultat_json['graphique_climat']['href'] = $this->ajouterHref('graphiques/climat', strtolower($resultat_json['BDNT']).'.nn:'.$resultat_json['num_nomen']);
|
| 189 |
$resultat_json['graphique_sol']['libelle'] = 'sol';
|
223 |
$resultat_json['graphique_sol']['libelle'] = 'sol';
|
| 190 |
$resultat_json['graphique_sol']['href'] = $this->ajouterHref('graphiques/sol', strtolower($resultat_json['BDNT']).'.nn:'.$resultat_json['num_nomen']);
|
224 |
$resultat_json['graphique_sol']['href'] = $this->ajouterHref('graphiques/sol', strtolower($resultat_json['BDNT']).'.nn:'.$resultat_json['num_nomen']);
|
| 191 |
|
225 |
}
|
| Line 192... |
Line 226... |
| 192 |
return $resultat_json ;
|
226 |
return $resultat_json ;
|
| 193 |
}
|
227 |
}
|
| 194 |
|
228 |
|
| - |
|
229 |
public function formaterResultatsChampsEcologie($resultat) {
|
| 195 |
public function formaterResultatsChampsEcologie($resultat) {
|
230 |
$resultat_json = $resultat;
|
| 196 |
$resultat_json = $resultat;
|
231 |
$this->champs_ontologiques = $this->recupererTableauConfig('champs_ontologiques');
|
| - |
|
232 |
$Graphique_presence = false;
|
| 197 |
$this->champs_ontologiques = $this->recupererTableauConfig('champs_ontologiques');
|
233 |
foreach ($this->champs_ontologiques as $cle => $valeur){
|
| 198 |
foreach ($this->champs_ontologiques as $cle => $valeur){
|
234 |
if ($resultat_json[$cle] != ""){
|
| 199 |
if ($resultat_json[$cle] != ""){
|
235 |
$Graphique_presence = true;
|
| 200 |
$tab_ontologie = $this->recupererOntologies($resultat_json[$cle], $cle);
|
236 |
$tab_ontologie = $this->recupererOntologies($resultat_json[$cle], $cle);
|
| 201 |
unset($resultat_json[$cle]);
|
237 |
unset($resultat_json[$cle]);
|
| - |
|
238 |
$resultat_json = array_merge($resultat_json,$tab_ontologie);
|
| 202 |
$resultat_json= array_merge($resultat_json,$tab_ontologie);
|
239 |
}
|
| 203 |
}
|
240 |
}
|
| 204 |
}
|
241 |
if ($Graphique_presence) {
|
| 205 |
$resultat_json['graphique_climat']['libelle'] = 'climat';
|
242 |
$resultat_json['graphique_climat']['libelle'] = 'climat';
|
| - |
|
243 |
$resultat_json['graphique_climat']['href'] = $this->ajouterHref('graphiques/climat', strtolower($resultat_json['BDNT']).'.nn:'.$resultat_json['num_nomen']);
|
| 206 |
$resultat_json['graphique_climat']['href'] = $this->ajouterHref('graphiques/climat', strtolower($resultat_json['BDNT']).'.nn:'.$resultat_json['num_nomen']);
|
244 |
$resultat_json['graphique_sol']['libelle'] = 'sol';
|
| 207 |
$resultat_json['graphique_sol']['libelle'] = 'sol';
|
245 |
$resultat_json['graphique_sol']['href'] = $this->ajouterHref('graphiques/sol', strtolower($resultat_json['BDNT']).'.nn:'.$resultat_json['num_nomen']);
|
| Line 208... |
Line 246... |
| 208 |
$resultat_json['graphique_sol']['href'] = $this->ajouterHref('graphiques/sol', strtolower($resultat_json['BDNT']).'.nn:'.$resultat_json['num_nomen']);
|
246 |
}
|
| 209 |
return $resultat_json ;
|
247 |
return $resultat_json ;
|
| Line 216... |
Line 254... |
| 216 |
unset($resultat_json['type_bio']);
|
254 |
unset($resultat_json['type_bio']);
|
| 217 |
$resultat_json = array_merge($resultat_json,$tab_ontologie);
|
255 |
$resultat_json = array_merge($resultat_json,$tab_ontologie);
|
| 218 |
}
|
256 |
}
|
| 219 |
return $resultat_json ;
|
257 |
return $resultat_json ;
|
| 220 |
}
|
258 |
}
|
| - |
|
259 |
|
| - |
|
260 |
|
| 221 |
public function formaterResultatsInformations($resultat) {
|
261 |
public function formaterResultatsInformations($resultat) {
|
| 222 |
$resultat_json = array();
|
262 |
$resultat_json = array();
|
| 223 |
$resultat_json['entete'] = $this->ajouterEnteteResultat();
|
263 |
$resultat_json['entete'] = $this->ajouterEnteteResultat();
|
| 224 |
foreach ($resultat as $tab) {
|
264 |
foreach ($resultat as $tab) {
|
| 225 |
if ($tab['BDNT'] != 'nc'){
|
265 |
if ($tab['BDNT'] != 'nc'){
|
| 226 |
$num = $tab['cle'];
|
266 |
$num = $tab['cle'];
|
| 227 |
unset($tab['cle']);
|
267 |
unset($tab['cle']);
|
| 228 |
foreach ($tab as $param => $valeur) {
|
268 |
foreach ($tab as $param => $valeur) {
|
| 229 |
$resultat_json[$num][$param] = $valeur;
|
269 |
$resultat_json['resultats'][$num][$param] = $valeur;
|
| - |
|
270 |
}
|
| - |
|
271 |
if ($tab['num_nomen'] != 0) {
|
| - |
|
272 |
$resultat_json['resultats'][$num]['href'] =
|
| - |
|
273 |
$this->ajouterHref('informations',strtolower($tab['BDNT']).".nn:".$tab['num_nomen']);
|
| 230 |
}
|
274 |
}
|
| 231 |
$resultat_json[$num]['href'] = $this->ajouterHref('informations',strtolower($tab['BDNT']).".nn:".$tab['num_nomen']);
|
- |
|
| 232 |
}
|
275 |
}
|
| 233 |
}
|
276 |
}
|
| - |
|
277 |
|
| 234 |
return $resultat_json;
|
278 |
return $resultat_json;
|
| 235 |
}
|
279 |
}
|
| Line 391... |
Line 435... |
| 391 |
|
435 |
|
| 392 |
public function delimiterResultatsRequete() {
|
436 |
public function delimiterResultatsRequete() {
|
| 393 |
$this->calculerTotalResultat();
|
437 |
$this->calculerTotalResultat();
|
| 394 |
$this->requete_limite = '';
|
438 |
$this->requete_limite = '';
|
| 395 |
if ((count($this->ressources)) == 0) {
|
439 |
if ((count($this->ressources)) == 0) {
|
| - |
|
440 |
if ($this->limite_requete['depart'] < $this->total_resultat) {
|
| - |
|
441 |
if (($this->limite_requete['limite']
|
| - |
|
442 |
+ $this->limite_requete['depart'])
|
| 396 |
if (($this->limite_requete['depart'] < $this->total_resultat) &&
|
443 |
>= $this->total_resultat ){
|
| 397 |
(($this->limite_requete['limite'] + $this->limite_requete['depart'] )
|
444 |
$this->requete_limite = 'LIMIT '.$this->limite_requete['depart'].', '
|
| - |
|
445 |
.$this->total_resultat;
|
| 398 |
< $this->total_resultat )) {
|
446 |
} else {
|
| 399 |
$this->requete_limite = 'LIMIT '.$this->limite_requete['depart'].', '
|
447 |
$this->requete_limite = 'LIMIT '.$this->limite_requete['depart'].', '
|
| - |
|
448 |
.$this->limite_requete['limite'];
|
| - |
|
449 |
}
|
| - |
|
450 |
} else {
|
| - |
|
451 |
$e = "Erreur : la valeur pour le paramètre navigation.départ est supérieure au"
|
| - |
|
452 |
." nombre total de résultats.";
|
| 400 |
.$this->limite_requete['limite'];
|
453 |
$this->renvoyerErreur(RestServeur::HTTP_CODE_MAUVAISE_REQUETE, $e);
|
| - |
|
454 |
}
|
| 401 |
}
|
455 |
|
| 402 |
}
|
456 |
}
|
| 403 |
return $this->requete_limite;
|
457 |
return $this->requete_limite;
|
| 404 |
}
|
458 |
}
|
| 405 |
}
|
459 |
}
|
| 406 |
?>
|
460 |
?>
|