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 |
?>
|