Rev 766 | Blame | Compare with Previous | Last modification | View Log | RSS feed
<?php/**** /syntaxons?masque.catminat=#catminat&masque.niveau=#niveau etc.--> 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 <http://www.gnu.org/licenses/gpl.txt>* @license CECILL v2 <http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt>* @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 : </br> 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 : </br> 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;}}?>