Subversion Repositories eFlore/Projets.eflore-projets

Rev

Rev 6 | Rev 69 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 6 Rev 16
Line 62... Line 62...
62
	protected $table_retour = array();
62
	protected $table_retour = array();
63
	/** Stocke le nombre total de résultats de la requete principale. Est calculée lors de l'assemblage de la requete */
63
	/** Stocke le nombre total de résultats de la requete principale. Est calculée lors de l'assemblage de la requete */
64
	protected $total_resultat;
64
	protected $total_resultat;
Line 65... Line 65...
65
	
65
 
66
// +-------------------------------------------------------------------------------------------------------------------+	
-
 
67
	public function consulter($ressources, $parametres) {
-
 
68
		$this->traiterParametres($parametres);
-
 
69
		$this->traiterVersionProjet($ressources);
-
 
70
		$this->traiterRessources($ressources);
-
 
71
		$resultat_formate = '';
-
 
72
		
-
 
73
		if ($this->corps_http == '' && $this->entete_http == '') {
-
 
74
			foreach ($this->table_version as $version) {
-
 
75
				$this->table = $version; //on stocke le nom de la table correspondant à la version du projet en cours
-
 
76
				$requete = $this->assemblerLaRequete(); //print_r($requete);
-
 
77
				$resultat = $this->getBdd()->recupererTous($requete);
-
 
78
				$res_version = $this->testerResultat($resultat, $requete);
-
 
79
			}
-
 
80
			if ($this->corps_http == '' && $this->entete_http == '') {
-
 
81
				if (isset($res_version)) {
-
 
82
					$resultat_formate = json_encode($res_version);
-
 
83
				}
-
 
84
			}
-
 
85
		}
-
 
86
		$this->formerReponseHTTP($resultat_formate); 
-
 
87
	}
-
 
88
	
-
 
89
	public function testerResultat($resultat, $requete) {
-
 
90
		if ($resultat == '') { //cas ou la requete comporte des erreurs
-
 
91
			$s = 'La requête SQL formée comporte une erreur !!';
-
 
92
			Debug::printr($requete);
-
 
93
			$this->renvoyerErreur(RestServeur::HTTP_CODE_RESSOURCE_INTROUVABLE, $s);
-
 
94
		} elseif ($resultat) {
-
 
95
			if (count($this->table_version) > 1) {
-
 
96
				$res_version[$version] = $this->retournerResultatFormate($resultat);
-
 
97
			} else {
-
 
98
				$res_version = $this->retournerResultatFormate($resultat);
-
 
99
			}
-
 
100
		} else {
-
 
101
			if ($this->format_reponse == 'zone-geo/id/relations') {
-
 
102
				//si aucune relation n'existe, la valeur null est retournée
-
 
103
				$res_version = null; 
-
 
104
			} else {
-
 
105
				$d = 'Données recherchées introuvables dans la base';
-
 
106
				$this->renvoyerErreur(RestServeur::HTTP_CODE_RESSOURCE_INTROUVABLE, $d);
-
 
107
				Debug::printr($requete);
-
 
108
			}
-
 
109
		}
-
 
110
		return $res_version;
-
 
111
	}
-
 
112
	
-
 
113
// +-------------------------------------------------------------------------------------------------------------------+	
66
// +-------------------------------------------------------------------------------------------------------------------+
114
	public function traiterParametres($parametres) {
67
	public function traiterParametres() {
115
		if (isset($parametres) && !empty($parametres)) {
68
		if (isset($this->parametres) && !empty($this->parametres)) {
Line 116... Line 69...
116
			$this->table_param = $parametres;
69
			$this->table_param = $this->parametres;
117
			
70
 
118
		//   masque : filtre la liste en fonction d'un masque de recherche portant sur le code, le nom ou la region.
71
		//   masque : filtre la liste en fonction d'un masque de recherche portant sur le code, le nom ou la region.
119
        //   masque.code : filtre uniquement sur le code. masque.nom : filtre uniquement sur le nom.
72
        //   masque.code : filtre uniquement sur le code. masque.nom : filtre uniquement sur le nom.
120
        //   masque.region : filtre uniquement sur la region.
73
        //   masque.region : filtre uniquement sur la region.
121
			if (isset($parametres['recherche']) && $parametres['recherche'] != '') {
74
			if (isset($this->parametres['recherche']) && $this->parametres['recherche'] != '') {
Line 122... Line 75...
122
				$this->recherche = $parametres['recherche']; 
75
				$this->recherche = $this->parametres['recherche'];
123
			}
76
			}
124
			
77
 
125
			foreach ($parametres as $param => $valeur) {
78
			foreach ($parametres as $param => $valeur) {
126
				switch ($param) {
79
				switch ($param) {
127
					case 'masque'				: $this->ajouterLeFiltreMasque('masque', $valeur);			break;
80
					case 'masque'				: $this->ajouterLeFiltreMasque('masque', $valeur);			break;
128
					case 'masque_code'			: $this->ajouterLeFiltreMasque('dep', $valeur);				break;
81
					case 'masque.code'			: $this->ajouterLeFiltreMasque('dep', $valeur);				break;
129
					case 'masque_nom'			: $this->ajouterLeFiltreMasque('nccenr', $valeur);			break;
82
					case 'masque.nom'			: $this->ajouterLeFiltreMasque('nccenr', $valeur);			break;
130
					case 'masque_region'		: $this->ajouterLeFiltreMasque('region', $valeur);			break;
83
					case 'masque.region'		: $this->ajouterLeFiltreMasque('region', $valeur);			break;
131
					case 'retour_format'		: $this->retour_format = $valeur;							break;
84
					case 'retour.format'		: $this->retour_format = $valeur;							break;
132
					case 'navigation_depart'	: $this->limite_requete['depart'] = $valeur;				break;
85
					case 'navigation.depart'	: $this->limite_requete['depart'] = $valeur;				break;
133
					case 'navigation_limite'	: $this->limite_requete['limite'] = $valeur;				break;
86
					case 'navigation.limite'	: $this->limite_requete['limite'] = $valeur;				break;
134
					case 'recherche'			:															break;
87
					case 'recherche'			:															break;
135
					default						:  $p = 'Erreur dans les paramètres de recherche de votre requête : '.
88
					default						:  $p = 'Erreur dans les paramètres de recherche de votre requête : '.
Line 172... Line 125...
172
		}	
125
		}
173
	}	
126
	}
Line 174... Line 127...
174
	
127
 
175
 
128
 
176
// +-------------------------------------------------------------------------------------------------------------------+		
129
// +-------------------------------------------------------------------------------------------------------------------+
177
	public function traiterRessources(&$ressources) {
130
	public function traiterRessources() {
178
		if (isset($ressources) && !empty($ressources)) {
131
		if (isset($this->ressources) && !empty($this->ressources)) {
179
			$this->table_ressources = $ressources;
132
			$this->table_ressources = $this->ressources;
180
			if (isset($this->table_ressources[0]) && !empty($this->table_ressources[0])) {
133
			if (isset($this->table_ressources[0]) && !empty($this->table_ressources[0])) {
181
				//requete = /zone-geo/#id
134
				//requete = /zone-geo/#id
182
				$this->traiterRessourceId();
135
				$this->traiterRessourceId();