Subversion Repositories eFlore/Projets.eflore-projets

Rev

Rev 950 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
584 mathilde 1
<?php
2
/**
3
 *
950 raphael 4
 *	syntaxons/relations -> retourne toutes les relations d'un syntaxon en fonction du numéro catminat
5
 *
584 mathilde 6
 * * @package eflore-projets
7
* @author mathilde Salthun-Lassalle
8
* @license GPL v3 <http://www.gnu.org/licenses/gpl.txt>
9
* @license CECILL v2 <http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt>
10
* @version 1.0
11
* @copyright 1999-2012 Tela Botanica (accueil@tela-botanica.org)
12
 *
13
 */
14
 
15
 
16
 
950 raphael 17
class SyntaxonsRelationsToutes	extends SyntaxonsCommun {
584 mathilde 18
 
19
 
20
	public function consulter($ressources, $parametres) {
21
		$this->ressources = $ressources;
22
		$this->parametres = $parametres;
23
		$this->traiterParametres();
24
		$resultats = null;
950 raphael 25
		$resultat =	 $this->retournerResultatRelations();
26
		// puisque notre implémentation de retournerResultatFormate() n'utilise pas NULL
27
		// et que le prototype de Commun::traiterResultat() doit être respecté, nous passons
28
		// NULL comme second paramètre.
29
		$versionResultat = $this->traiterResultat($resultat, NULL);
584 mathilde 30
		$resultats = $versionResultat;
31
		return $resultats;
32
	}
33
 
34
 
35
	// si je ne réinstancie pas la classe entre les appels à la méthode consulter, çà ne marche pas !
36
	private function retournerResultatRelations () {
37
		$resultat_relation = array();
38
 
39
		$classe = new SyntaxonsRelation(new Conteneur());
40
		$ressources_syn = array_merge($this->ressources, array('synonymie') );
41
		$synonymie = $classe->consulter($ressources_syn,$this->parametres);
42
		if ($synonymie != 'Les données recherchées sont introuvables') {
43
			$resultat_relation['synonymie'] =  $synonymie['resultat'];
44
		}
45
 
46
		$ressources_niv = array_merge($this->ressources, array('niveaux-sup') );
47
		$classe = new SyntaxonsRelation(new Conteneur());
48
		$niveaux = $classe->consulter($ressources_niv,$this->parametres);
49
		if ($niveaux != 'Les données recherchées sont introuvables') {
950 raphael 50
			$resultat_relation['niveaux_superieurs'] =	$niveaux['resultat'];
584 mathilde 51
		}
52
 
950 raphael 53
		return	$resultat_relation;
584 mathilde 54
	}
55
 
56
 
57
 
58
	//+-------------------------------------traitement des ressources et des paramètres----------------------------------------+//
59
 
60
 
61
	public function traiterParametres() {
62
		if (isset($this->parametres) && !empty($this->parametres) ) {
63
			foreach ($this->parametres as $param => $valeur) {
64
					if ($param != 'version.projet' || $param != 'retour.champs' ) {
65
						$e = 'Erreur dans les parametres de votre requête : </br> Le paramètre " '
66
						.$param.' " n\'existe pas.';
67
						$this->renvoyerErreur(RestServeur::HTTP_CODE_MAUVAISE_REQUETE, $e);
68
					}
69
			}
70
		}
71
 
72
	}
73
 
74
 
75
 
76
	//+--------------------------formatages de resultats  -------------------------------------------+
77
 
78
	public function retournerResultatFormate($resultat) {
79
		$resultat_json = array();
80
		$resultat_json['entete']['catminat'] = str_replace('-','/',$this->ressources[0]);
81
		$resultat_json['resultat'] = $resultat;
82
		return $resultat_json;
83
	}
84
 
85
 
86
 
87
 
88
}
89
?>