Subversion Repositories eFlore/Projets.eflore-projets

Rev

Rev 584 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed

<?php
/**
 * 
 *      syntaxons/relations -> retourne toutes les relations d'un syntaxon en fonction du numéro catminat
 *      
 * * @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 SyntaxonsRelationsToutes  extends SyntaxonsCommun {
        

        public function consulter($ressources, $parametres) {
                $this->ressources = $ressources;
                $this->parametres = $parametres;
                $this->traiterParametres();     
                $resultats = null;
                $resultat =      $this->retournerResultatRelations();
                // puisque notre implémentation de retournerResultatFormate() n'utilise pas NULL
                // et que le prototype de Commun::traiterResultat() doit être respecté, nous passons
                // NULL comme second paramètre.
                $versionResultat = $this->traiterResultat($resultat, NULL);
                $resultats = $versionResultat;
                return $resultats;
        }       
        

        // si je ne réinstancie pas la classe entre les appels à la méthode consulter, çà ne marche pas !
        private function retournerResultatRelations () {                
                $resultat_relation = array();
                
                $classe = new SyntaxonsRelation(new Conteneur());
                $ressources_syn = array_merge($this->ressources, array('synonymie') );
                $synonymie = $classe->consulter($ressources_syn,$this->parametres);
                if ($synonymie != 'Les données recherchées sont introuvables') {
                        $resultat_relation['synonymie'] =  $synonymie['resultat'];
                }
                
                $ressources_niv = array_merge($this->ressources, array('niveaux-sup') );
                $classe = new SyntaxonsRelation(new Conteneur());
                $niveaux = $classe->consulter($ressources_niv,$this->parametres);
                if ($niveaux != 'Les données recherchées sont introuvables') {
                        $resultat_relation['niveaux_superieurs'] =      $niveaux['resultat'];
                }
                
                return  $resultat_relation;
        }
        
        
        
        //+-------------------------------------traitement des ressources et des paramètres----------------------------------------+//
        

        public function traiterParametres() {
                if (isset($this->parametres) && !empty($this->parametres) ) {
                        foreach ($this->parametres as $param => $valeur) {
                                        if ($param != 'version.projet' || $param != 'retour.champs' ) {
                                                $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);     
                                        }
                        }
                }
                        
        }
        

        
        //+--------------------------formatages de resultats  -------------------------------------------+
        
        public function retournerResultatFormate($resultat) {
                $resultat_json = array();
                $resultat_json['entete']['catminat'] = str_replace('-','/',$this->ressources[0]);
                $resultat_json['resultat'] = $resultat;
                return $resultat_json;
        }
        

        
        
}
?>