retourne les syntaxons répondant à ces critères * /syntaxons/cle:#cle --> retourne les informations de ce syntaxon ( peut être un synonyme ) * * Remarque : le code fixe n'est pas tout à fait unique puisque certaines valeurs (ex. 1489) * apparaissent 2 ou 3 fois avec des codes catminat ou des syntaxons sensiblement différents. * C'est pourquoi il n'est pas utilisé. * * * @package eflore-projets * @author mathilde Salthun-Lassalle * @license GPL v3 * @license CECILL v2 * @version 1.0 * @copyright 1999-2012 Tela Botanica (accueil@tela-botanica.org) * */ class SyntaxonsCode extends SyntaxonsCommun { public function consulter($ressources, $parametres) { $this->ressources = $ressources; $this->parametres = $parametres; $this->traiterRessources(); $this->traiterParametres(); $this->definirTables(); $resultats = null; $requete = ''; foreach ($this->table_version as $version) { $this->table = $version; $requete = $this->assemblerLaRequete(); $resultat = $this->Bdd->recupererTous($requete); $versionResultat = $this->traiterResultat($resultat, $version); if (count($this->table_version) > 1) { $resultats[$version] = $versionResultat; } else { $resultats = $versionResultat; } } return $resultats; } function __construct(Conteneur $conteneur) { parent::__construct($conteneur); } //+-------------------------------------traitement des ressources et des paramètres----------------------------------------+// public function traiterRessources() { $catminat=''; if(preg_match("/catminat:(([0-9]{2}\-$)|([0-9]{2}\-[0-9]\.$)|([0-9]{2}\-(?:[0-9]\.){1,5}[0-9]$)|([0-9]{2}\-(?:[0-9]\.){4,5}[0-9]\-[0-9]+(?:bis|ter|quater){0,1}$))/",$this->ressources[0], $retour)) { $this->catminat = str_replace('-', '/',$retour[1]); $this->requete_condition[] = ' code_catminat = \''.$this->catminat.'\' ' ; $this->requete_condition[] = ' niveau NOT LIKE \'syn%\' '; } elseif (preg_match("/cle:([0-9]+)/",$this->ressources[0], $retour)) { $this->champs_recherches = ' * '; $this->requete_condition[] = ' cle = '.$retour[1].' ' ; }elseif ($this->ressources[0]) { $e = 'Erreur dans l\'url de votre requête :
La ressource demandée n\'existe pas.'; throw new Exception($e, RestServeur::HTTP_CODE_MAUVAISE_REQUETE); } return $catminat; } public function traiterParametres() { if (isset($this->parametres) && !empty($this->parametres) ) { foreach ($this->parametres as $param => $valeur) { switch ($param) { case 'version.projet' : $this->traiterVersion($valeur); break; default : $e = 'Erreur dans les parametres de votre requête :
Le paramètre " ' .$param.' " n\'existe pas.'; $this->renvoyerErreur(RestServeur::HTTP_CODE_MAUVAISE_REQUETE, $e); break; } } } } //+--------------------------formatages de resultats -------------------------------------------+ public function retournerResultatFormate($resultat) { $resultat_json = array(); foreach ($resultat as $cle => $res) { $resultat[$cle] = array_merge($resultat[$cle],$this->traiterOntologieNiveau($res['niveau'])); unset($resultat[$cle]['niveau']); $resultat[$cle] = $this->enleverValeursVides($resultat[$cle]); } $resultat_json['resultat'] = $resultat; return $resultat_json; } } ?>