/trunk/services/modules/0.1/chorodep/Observations.php |
---|
24,7 → 24,7 |
class Observations extends Commun { |
protected $service = 'observations'; |
protected $serviceNom = 'observations'; |
/** Stockage des paramétres */ |
protected $table_param = array(); |
76,11 → 76,11 |
} |
if ($this->corps_http == '' && $this->entete_http == '') { |
if (isset($res_version)) { |
$resultat_formate = json_encode($res_version); |
$resultat_formate = $res_version; |
} |
} |
} |
$this->formerReponseHTTP($resultat_formate); |
return $resultat_formate; |
} |
public function testerResultat($resultat) { |
378,7 → 378,7 |
} |
//on remplit la table $table_retour_json['entete'] |
//formuler les urls precedentes et suivantes affichées dans l'entete du resultat |
$url = $this->formulerUrl($id, $num, '/observations'); |
$url = $this->formulerUrlObs($id, $num, '/observations'); |
if ($url['precedent'] != '') { $this->table_entete['href.precedent'] = $url['precedent']; } |
if ($url['suivant'] != '') { $this->table_entete['href.suivant'] = $url['suivant']; } |
$this->table_entete['total'] = $num; |
607,7 → 607,7 |
* @param int : Permet de connaitre le nombre de noms obtenus par la requete |
* @return string Retourne l'url complete des resultats precedents ou suivant sous la forme d'un tableau |
*/ |
public function formulerUrl($suivant, $total, $id = null) { |
public function formulerUrlObs($suivant, $total, $id = null) { |
$debut_url = Config::get('url_service').$id.'?'; |
//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 |
$table_bis = $this->table_param; |
619,8 → 619,8 |
} |
$parametre_url = http_build_query($table_bis); |
//on recupere les limites |
$url['suivant'] = $this->recupererLesLimitesSuivantes($suivant, $total); |
$url['precedent'] = $this->recupererLesLimitesPrecedentes($suivant); |
$url['suivant'] = $this->recupererLesLimitesSuivantesObs($suivant, $total); |
$url['precedent'] = $this->recupererLesLimitesPrecedentesObs($suivant); |
//on reconstitue les deux urls avec leurs limites |
foreach ($url as $key => $limite) { |
if ($limite != '') { |
646,7 → 646,7 |
* @return string : la fin de l'url decrivant les limites des resultats suivants. Si aucun résultats ne suient, |
* une chaine de caractère vide est retournée |
*/ |
public function recupererLesLimitesSuivantes($suivant, $total) { |
public function recupererLesLimitesSuivantesObs($suivant, $total) { |
if ($this->limite_requete['limite'] <= $total) { |
$url_suivante = '&navigation.depart='.$suivant.'&navigation.limite='.$this->limite_requete['limite']; |
} else { |
662,7 → 662,7 |
* @return string : la fin de l'url decrivant les limites des resultats precedents. |
* Si aucun résultats ne precedent, une chaine de caractère vide est retournée |
*/ |
public function recupererLesLimitesPrecedentes($suivant) { |
public function recupererLesLimitesPrecedentesObs($suivant) { |
$url_precedente = ''; |
if (isset($this->table_param['navigation_depart'])) { // si on utilise un parametre de départ |
// si l'adresse d'appel de la page est inférieur au départ |
/trunk/services/modules/0.1/commun/Commun.php |
---|
45,27 → 45,27 |
private static $tri_type = ''; |
public function consulter($ressources, $parametres) { |
$this->ressources = $ressources; |
$this->parametres = $parametres; |
$this->chargerNomDuService(); |
$this->ressources = $ressources; |
$this->parametres = $parametres; |
$this->chargerNomDuService(); |
$this->traiterParametres(); |
$this->traiterVersionProjet(); |
$this->traiterParametres(); |
$this->traiterVersionProjet(); |
$resultats = ''; |
foreach ($this->table_version as $version) { |
$this->table = $version; //on stocke le nom de la table correspondant à la version du projet en cours |
$this->recupererNomChamp($this->table); //on récupère les noms des champs disponibles (Ds Commun.php) |
$this->traiterRessources(); //dans CommunNomsTaxons.php |
$requete = $this->assemblerLaRequete(); |
$resultat = $this->getBdd()->recupererTous($requete); |
$versionResultat = $this->traiterResultat($resultat, $version, $requete); |
if (count($this->table_version) > 1) { |
$resultats[$version] = $versionResultat; |
} else { |
$resultats = $versionResultat; |
} |
$resultats = ''; |
foreach ($this->table_version as $version) { |
$this->table = $version; //on stocke le nom de la table correspondant à la version du projet en cours |
$this->recupererNomChamp($this->table); //on récupère les noms des champs disponibles (Ds Commun.php) |
$this->traiterRessources(); //dans CommunNomsTaxons.php |
$requete = $this->assemblerLaRequete(); |
$resultat = $this->getBdd()->recupererTous($requete); |
$versionResultat = $this->traiterResultat($resultat, $version, $requete); |
if (count($this->table_version) > 1) { |
$resultats[$version] = $versionResultat; |
} else { |
$resultats = $versionResultat; |
} |
} |
return $resultats; |
} |
/trunk/services/modules/0.1/commun/Aide.php |
---|
31,7 → 31,7 |
$this->url_liste_projet = Config::get('url_service_base').'commun/aide/projets'; |
$this->projet = Config::get('nom_projet'); |
$this->traiterRessources($ressources); |
return $this->formerReponseHTTP(json_encode($this->table_retour)); |
return $this->formerReponseHTTP($this->table_retour); |
} |
//-----------------------------------------traiter reponse http------------------------------------------------------------- |
54,7 → 54,7 |
// Envoie de l'entête |
RestServeur::envoyerEnteteStatutHttp($this->entete_http); |
// Envoie du corps |
echo $this->corps_http; |
return $this->corps_http; |
} |
public function renvoyerErreur($e, $c) { |
109,19 → 109,9 |
$url = Config::get('url_service_base').$projet.'/aide'; |
$intitule = 'PROJET '.strtoupper($projet); |
$res = $this->consulterHref($url); |
//$res = $this->rest_client->consulter($url); |
//$entete = $this->rest_client->getReponseEntetes(); |
if ($res) { |
$res_return = $res->$intitule; |
} |
/* if (isset($entete['wrapper_data']) && $res != '') { |
$res = json_decode($res); |
if (!is_object($res)) print_r($res); |
else $res_return = $res->$intitule; |
} else { |
$e = 'Le service aide du projet '.$projet.' ne fonctionne pas et renvoie comme entête : '.$entete.' et comme résultat : '.$res; |
$this->renvoyerErreur(RestServeur::HTTP_CODE_MAUVAISE_REQUETE, $e); |
}*/ |
return $res_return; |
} |
/trunk/services/modules/0.1/commun/MetaDonnees.php |
---|
31,28 → 31,30 |
public function consulter($ressources, $parametres) { |
$this->service = 'meta-donnees'; |
$resultat_formate = ''; |
$this->ressources = $ressources; |
$this->parametres = $parametres; |
$this->serviceNom = 'meta-donnees'; |
$resultats = ''; |
// on traite en premier la version dans le cas ou un langage est demandé pr une version |
$this->traiterRessourceVersion($ressources); |
$this->traiterVersionProjet(); |
$this->traiterParametres($parametres); |
$this->traiterRessources($ressources); |
if ($this->corps_http == '' && $this->entete_http == '') { |
$requete_meta = $this->assemblerLaRequete(); |
$resultat_meta = $this->getBdd()->recupererTous($requete_meta); |
$resultat_formate = $this->testerResultat($resultat_meta, $requete_meta); |
$resultats = $this->formerResultat($resultat_meta, $requete_meta); |
} |
return $this->formerReponseHTTP($resultat_formate); |
return $resultats; |
} |
public function testerResultat($resultat_meta, $requete_meta) { |
public function formerResultat($resultat_meta, $requete_meta) { |
if ($resultat_meta == '') { |
$e = 'La requête formée comporte une erreur!'; |
$this->renvoyerErreur(RestServeur::HTTP_CODE_RESSOURCE_INTROUVABLE,$e); |
Debug::printr($requete); |
} elseif ($resultat_meta) { |
$resultat_formate = $this->formaterResultat($resultat_meta); |
$resultat_formate = $this->retournerResultatFormate($resultat_meta); |
} else { |
$m = "Données introuvables dans la base $this->table"; |
$this->renvoyerErreur(RestServeur::HTTP_CODE_RESSOURCE_INTROUVABLE, $m); |
97,10 → 99,10 |
* - non renseignée : (/#projet/meta-donnees) Renvoi les meta-données de la dernière version du projet |
* Cette info est stockée dans par la classe RestServeur dans la variable $ressources ($ressources[0]) |
*/ |
public function traiterRessourceVersion(&$ressources) { |
if (isset($ressources[0]) && !empty($ressources[0])) { |
if (preg_match('/(?:[0-9]+(?:_|[.])[0-9]+|[*]| )/', $ressources[0])) { |
$this->version_projet = array_shift($ressources); |
public function traiterVersionProjet() { |
if (isset($this->ressources[0]) && !empty($this->ressources[0])) { |
if (preg_match('/(?:[0-9]+(?:_|[.])[0-9]+|[*]| )/', $this->ressources[0])) { |
$this->version_projet = array_shift($this->ressources); |
if ($this->version_projet == ' ') $this->version_projet = '+'; |
} |
switch ($this->version_projet) { |
111,7 → 113,7 |
break; |
default : |
if (is_numeric($this->version_projet)) { |
$res_version = $this->rechercherVersionsDispo($this->version_projet); |
$this->ajouterFiltreVersion(); |
} |
break; |
} |
124,8 → 126,8 |
* Vérifie que le numéro de la version passée en paramètre correspond à une version existante. |
* Si oui remplit la condition de la requete SQL |
*/ |
public function rechercherVersionsDispo($val) { |
$val = str_replace('_', '.', $val); |
public function ajouterFiltreVersion() { |
$val = str_replace('_', '.', $this->version_projet); |
$req_version = 'SELECT version FROM '.Config::get('bdd_table_meta'); |
$res_version = $this->getBdd()->recupererTous($req_version); |
foreach ($res_version as $version) { |
138,7 → 140,6 |
.implode($versions_dispo); |
$this->renvoyerErreur(RestServeur::HTTP_CODE_RESSOURCE_INTROUVABLE, $e); |
} |
return $res_version; |
} |
174,13 → 175,13 |
//--------------------------------------Fonction de formatage des resultats --------------------------------------------- |
public function formaterResultat($resultat) { |
public function retournerResultatFormate($resultat) { |
switch ($this->format_reponse) { |
case 'metaDonnees/champ' : $reponse = $this->formaterMetaDonneesChamp($resultat); break; |
case 'metaDonnees' : $reponse = $this->formaterMetaDonnees($resultat); break; |
default : break; |
} |
return json_encode($reponse); |
return $reponse; |
} |
//--------------------------------------Fonction de formatage des resultats de /metaDonnees/---------------------------- |
194,7 → 195,7 |
} |
if ($this->retour_format == 'max' && $this->version_projet == '*') { |
$this->table_retour['href'] = Config::get('url_service_base').Config::get('nom_projet') |
.'/'.$version['version'].'/'.$this->service; |
.'/'.$version['version'].'/'.$this->serviceNom; |
} |
$table[] = $this->table_retour; |
$this->table_retour = array(); |
/trunk/services/configurations/config_commun.ini |
---|
New file |
0,0 → 1,24 |
; Encodage : UTF-8 |
; Nom du projet |
nom_projet = "commun" |
; Nom de la base utilisée. |
bdd_nom = "tb_eflore" |
; Nom de la table principalement utilisée. |
bdd_table_ontologies= "commun_ontologies" |
; Nom de la table métadonnées utilisée. |
bdd_table_meta = "commun_meta" |
; URL de base des services de ce projet |
url_service="{ref:url_base}service:eflore:0.1/commun" |
; URL de l'ontologie des bdnt |
url_ontologie="{ref:url_base}service:eflore:0.1/commun/ontologies/" |
; +------------------------------------------------------------------------------------------------------+ |
; Config spécifique au projet |
; Noms des services disponibles pour ce projet |
servicesDispo = "meta-donnees,aide,ontologies" |