Line 22... |
Line 22... |
22 |
* @copyright 1999-${year} Tela Botanica (accueil@tela-botanica.org)
|
22 |
* @copyright 1999-${year} Tela Botanica (accueil@tela-botanica.org)
|
23 |
*/
|
23 |
*/
|
Line 24... |
Line 24... |
24 |
|
24 |
|
Line 25... |
Line 25... |
25 |
class Observations extends Commun {
|
25 |
class Observations extends Commun {
|
Line 26... |
Line 26... |
26 |
|
26 |
|
27 |
protected $service = 'observations';
|
27 |
protected $serviceNom = 'observations';
|
28 |
|
28 |
|
29 |
/** Stockage des paramétres */
|
29 |
/** Stockage des paramétres */
|
Line 74... |
Line 74... |
74 |
$resultat = $this->getBdd()->recupererTous($requete);
|
74 |
$resultat = $this->getBdd()->recupererTous($requete);
|
75 |
$res_version = $this->testerResultat($resultat);
|
75 |
$res_version = $this->testerResultat($resultat);
|
76 |
}
|
76 |
}
|
77 |
if ($this->corps_http == '' && $this->entete_http == '') {
|
77 |
if ($this->corps_http == '' && $this->entete_http == '') {
|
78 |
if (isset($res_version)) {
|
78 |
if (isset($res_version)) {
|
79 |
$resultat_formate = json_encode($res_version);
|
79 |
$resultat_formate = $res_version;
|
80 |
}
|
80 |
}
|
81 |
}
|
81 |
}
|
82 |
}
|
82 |
}
|
83 |
$this->formerReponseHTTP($resultat_formate);
|
83 |
return $resultat_formate;
|
84 |
}
|
84 |
}
|
Line 85... |
Line 85... |
85 |
|
85 |
|
86 |
public function testerResultat($resultat) {
|
86 |
public function testerResultat($resultat) {
|
87 |
if ($resultat == '') { //cas ou la requete comporte des erreurs
|
87 |
if ($resultat == '') { //cas ou la requete comporte des erreurs
|
Line 376... |
Line 376... |
376 |
}
|
376 |
}
|
377 |
$this->table_retour = array();
|
377 |
$this->table_retour = array();
|
378 |
}
|
378 |
}
|
379 |
//on remplit la table $table_retour_json['entete']
|
379 |
//on remplit la table $table_retour_json['entete']
|
380 |
//formuler les urls precedentes et suivantes affichées dans l'entete du resultat
|
380 |
//formuler les urls precedentes et suivantes affichées dans l'entete du resultat
|
381 |
$url = $this->formulerUrl($id, $num, '/observations');
|
381 |
$url = $this->formulerUrlObs($id, $num, '/observations');
|
382 |
if ($url['precedent'] != '') { $this->table_entete['href.precedent'] = $url['precedent']; }
|
382 |
if ($url['precedent'] != '') { $this->table_entete['href.precedent'] = $url['precedent']; }
|
383 |
if ($url['suivant'] != '') { $this->table_entete['href.suivant'] = $url['suivant']; }
|
383 |
if ($url['suivant'] != '') { $this->table_entete['href.suivant'] = $url['suivant']; }
|
384 |
$this->table_entete['total'] = $num;
|
384 |
$this->table_entete['total'] = $num;
|
385 |
$table_retour_json['entete'] = $this->table_entete;
|
385 |
$table_retour_json['entete'] = $this->table_entete;
|
386 |
$table_retour_json['resultat'] = $resultat_json;
|
386 |
$table_retour_json['resultat'] = $resultat_json;
|
Line 605... |
Line 605... |
605 |
* Description :
|
605 |
* Description :
|
606 |
* Est appelée pour former l'url complete des resultats precedants ou suivants.
|
606 |
* Est appelée pour former l'url complete des resultats precedants ou suivants.
|
607 |
* @param int : Permet de connaitre le nombre de noms obtenus par la requete
|
607 |
* @param int : Permet de connaitre le nombre de noms obtenus par la requete
|
608 |
* @return string Retourne l'url complete des resultats precedents ou suivant sous la forme d'un tableau
|
608 |
* @return string Retourne l'url complete des resultats precedents ou suivant sous la forme d'un tableau
|
609 |
*/
|
609 |
*/
|
610 |
public function formulerUrl($suivant, $total, $id = null) {
|
610 |
public function formulerUrlObs($suivant, $total, $id = null) {
|
611 |
$debut_url = Config::get('url_service').$id.'?';
|
611 |
$debut_url = Config::get('url_service').$id.'?';
|
612 |
//on recrée l'url sans les parametres de navigation qui seront rajouter ci-apres. On les enlève dc de la table des parametres
|
612 |
//on recrée l'url sans les parametres de navigation qui seront rajouter ci-apres. On les enlève dc de la table des parametres
|
613 |
$table_bis = $this->table_param;
|
613 |
$table_bis = $this->table_param;
|
614 |
if (isset($table_bis['navigation_depart'] )) {
|
614 |
if (isset($table_bis['navigation_depart'] )) {
|
615 |
unset($table_bis['navigation_depart']);
|
615 |
unset($table_bis['navigation_depart']);
|
Line 617... |
Line 617... |
617 |
if (isset($table_bis['navigation_limite'])) {
|
617 |
if (isset($table_bis['navigation_limite'])) {
|
618 |
unset($table_bis['navigation_limite']);
|
618 |
unset($table_bis['navigation_limite']);
|
619 |
}
|
619 |
}
|
620 |
$parametre_url = http_build_query($table_bis);
|
620 |
$parametre_url = http_build_query($table_bis);
|
621 |
//on recupere les limites
|
621 |
//on recupere les limites
|
622 |
$url['suivant'] = $this->recupererLesLimitesSuivantes($suivant, $total);
|
622 |
$url['suivant'] = $this->recupererLesLimitesSuivantesObs($suivant, $total);
|
623 |
$url['precedent'] = $this->recupererLesLimitesPrecedentes($suivant);
|
623 |
$url['precedent'] = $this->recupererLesLimitesPrecedentesObs($suivant);
|
624 |
//on reconstitue les deux urls avec leurs limites
|
624 |
//on reconstitue les deux urls avec leurs limites
|
625 |
foreach ($url as $key => $limite) {
|
625 |
foreach ($url as $key => $limite) {
|
626 |
if ($limite != '') {
|
626 |
if ($limite != '') {
|
627 |
if ($parametre_url == '') {
|
627 |
if ($parametre_url == '') {
|
628 |
//si il n'y a aucun parametres, seules les limites sont à ajouter.On enleve dc le signe & du début
|
628 |
//si il n'y a aucun parametres, seules les limites sont à ajouter.On enleve dc le signe & du début
|
Line 644... |
Line 644... |
644 |
* Cette url sera afficher dans l'entete de la reponse retournée en format JSON (retour.format=defaut).
|
644 |
* Cette url sera afficher dans l'entete de la reponse retournée en format JSON (retour.format=defaut).
|
645 |
* @param int : $nb_resultat : Permet de connaitre le nombre de résultats obtenus par la requete
|
645 |
* @param int : $nb_resultat : Permet de connaitre le nombre de résultats obtenus par la requete
|
646 |
* @return string : la fin de l'url decrivant les limites des resultats suivants. Si aucun résultats ne suient,
|
646 |
* @return string : la fin de l'url decrivant les limites des resultats suivants. Si aucun résultats ne suient,
|
647 |
* une chaine de caractère vide est retournée
|
647 |
* une chaine de caractère vide est retournée
|
648 |
*/
|
648 |
*/
|
649 |
public function recupererLesLimitesSuivantes($suivant, $total) {
|
649 |
public function recupererLesLimitesSuivantesObs($suivant, $total) {
|
650 |
if ($this->limite_requete['limite'] <= $total) {
|
650 |
if ($this->limite_requete['limite'] <= $total) {
|
651 |
$url_suivante = '&navigation.depart='.$suivant.'&navigation.limite='.$this->limite_requete['limite'];
|
651 |
$url_suivante = '&navigation.depart='.$suivant.'&navigation.limite='.$this->limite_requete['limite'];
|
652 |
} else {
|
652 |
} else {
|
653 |
$url_suivante = '';
|
653 |
$url_suivante = '';
|
654 |
}
|
654 |
}
|
Line 660... |
Line 660... |
660 |
* Permet de former les limites de la requete retournant les résultats precedents.
|
660 |
* Permet de former les limites de la requete retournant les résultats precedents.
|
661 |
* Cette url sera afficher dans l'entete de la taxons/105reponse retournée en format JSON (retour.format=defaut)
|
661 |
* Cette url sera afficher dans l'entete de la taxons/105reponse retournée en format JSON (retour.format=defaut)
|
662 |
* @return string : la fin de l'url decrivant les limites des resultats precedents.
|
662 |
* @return string : la fin de l'url decrivant les limites des resultats precedents.
|
663 |
* Si aucun résultats ne precedent, une chaine de caractère vide est retournée
|
663 |
* Si aucun résultats ne precedent, une chaine de caractère vide est retournée
|
664 |
*/
|
664 |
*/
|
665 |
public function recupererLesLimitesPrecedentes($suivant) {
|
665 |
public function recupererLesLimitesPrecedentesObs($suivant) {
|
666 |
$url_precedente = '';
|
666 |
$url_precedente = '';
|
667 |
if (isset($this->table_param['navigation_depart'])) { // si on utilise un parametre de départ
|
667 |
if (isset($this->table_param['navigation_depart'])) { // si on utilise un parametre de départ
|
668 |
// si l'adresse d'appel de la page est inférieur au départ
|
668 |
// si l'adresse d'appel de la page est inférieur au départ
|
669 |
$regex = '/http:\/\/.*\/service:eflore:0.1\/chorodep\/observations\?.*navigation.depart=(.*\:[0-9]*).*/';
|
669 |
$regex = '/http:\/\/.*\/service:eflore:0.1\/chorodep\/observations\?.*navigation.depart=(.*\:[0-9]*).*/';
|
670 |
if (isset($_SERVER['HTTP_REFERER']) && preg_match($regex, $_SERVER['HTTP_REFERER'], $match)) {
|
670 |
if (isset($_SERVER['HTTP_REFERER']) && preg_match($regex, $_SERVER['HTTP_REFERER'], $match)) {
|