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;
}
}
?>