Subversion Repositories eFlore/Projets.eflore-projets

Rev

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

Rev 6 Rev 288
Line 38... Line 38...
38
		$resultat_formate = '';
38
		$resultat_formate = '';
39
		$this->table = array(Config::get("bdd_triples")." t1", Config::get("bdd_triples")." t2", Config::get("bdd_pages")." p");
39
		$this->table = array(Config::get("bdd_triples")." t1", Config::get("bdd_triples")." t2", Config::get("bdd_pages")." p");
40
		$this->traiterParametres($parametres);
40
		$this->traiterParametres($parametres);
41
		$this->traiterRessources($ressources);
41
		$this->traiterRessources($ressources);
42
		if ($this->corps_http == '' && $this->entete_http == '') {
42
		if ($this->corps_http == '' && $this->entete_http == '') {
43
			$requete = $this->assemblerLaRequete(); 
43
			$requete = $this->assemblerLaRequete();
44
			$resultat = $this->getBdd()->recupererTous($requete); 
44
			$resultat = $this->getBdd()->recupererTous($requete); 
45
			$this->testerResultat($resultat, $resultat_formate, $requete);
45
			$this->testerResultat($resultat, $resultat_formate, $requete);
46
		}
46
		}
47
		return $this->formerReponseHTTP($resultat_formate);
47
		return $this->formerReponseHTTP($resultat_formate);
48
	}
48
	}
Line -... Line 49...
-
 
49
	
-
 
50
	public function formerReponseHTTP($resultat_formate, $mime = 'application/json', $encodage= 'utf-8') {
-
 
51
		// Si aucune erreur n'a été établie (donc un tableau de résultat a bien ete renvoyé...)
-
 
52
		if ($this->corps_http == '' && $this->entete_http == '') {
-
 
53
			$this->entete_http = RestServeur::HTTP_CODE_OK;
-
 
54
			$this->corps_http  = $resultat_formate;
-
 
55
		}
-
 
56
		if ($this->entete_http != RestServeur::HTTP_CODE_OK) {
-
 
57
			$mime = 'text/html';
-
 
58
		}
-
 
59
		// Gestion du type de contenu
-
 
60
		if (!is_null($mime) && !is_null($encodage)) {
-
 
61
			header("Content-Type: $mime; charset=$encodage");
-
 
62
		} else if (!is_null($mime) && is_null($encodage)) {
-
 
63
			header("Content-Type: $mime");
-
 
64
		}
-
 
65
		// Envoie de l'entête
-
 
66
		RestServeur::envoyerEnteteStatutHttp($this->entete_http);
-
 
67
		// Envoie du corps
-
 
68
		return $this->corps_http;
-
 
69
	}
Line 49... Line 70...
49
	
70
	
50
	
71
	
51
	public function testerResultat($resultat, &$resultat_formate, $requete) {
72
	public function testerResultat($resultat, &$resultat_formate, $requete) {
52
		if ($resultat == '') { //cas ou coste/services/ ou la requete comporte des erreurs
73
		if ($resultat == '') { //cas ou coste/services/ ou la requete comporte des erreurs
Line 97... Line 118...
97
	public function traiterRessourceId($id) {
118
	public function traiterRessourceId($id) {
98
		$this->format_reponse .= '/id';
119
		$this->format_reponse .= '/id';
99
		if ($this->recherche == 'etendue') {
120
		if ($this->recherche == 'etendue') {
100
			$id = '%'.str_replace(' ','%', $id).'%';
121
			$id = '%'.str_replace(' ','%', $id).'%';
101
		} 
122
		} 
-
 
123
		
-
 
124
		$this->requete_champ = 'c.id AS num_nom, i.nom_sci AS titre, t1.resource AS tag, p.body AS texte';
-
 
125
		$this->table = array(Config::get("bdd_correspondance_bdnff").' c',
-
 
126
			Config::get("bdd_triples").' t1',
-
 
127
			Config::get("bdd_index").' i',
-
 
128
			Config::get("bdd_pages").' p');
-
 
129
		$this->requete_condition[] = 'c.num_nom ='.$this->getBdd()->proteger($id);
-
 
130
		$this->requete_condition[] = 'c.id = i.num_nom';
-
 
131
		$this->requete_condition[] = 'i.nom_sci = t1.value';
-
 
132
		$this->requete_condition[] = 't1.resource = p.tag';
-
 
133
		
102
		$this->requete_champ = ' t1.resource AS tag, t1.value AS num_nom, t2.value AS titre, p.body AS texte';
134
		/*$this->requete_champ = ' t1.resource AS tag, t1.value AS num_nom, t2.value AS titre, p.body AS texte';
103
		$this->requete_condition[] = 't1.resource LIKE '.$this->getBdd()->proteger($id);
135
		$this->requete_condition[] = 't1.resource LIKE '.$this->getBdd()->proteger($id);
104
		$this->requete_condition[] = 't1.property = "num_nom"';
136
		$this->requete_condition[] = 't1.property = "num_nom"';
105
		$this->requete_condition[] = '(t1.resource = t2.resource AND t2.property = "titre")';
137
		$this->requete_condition[] = '(t1.resource = t2.resource AND t2.property = "titre")';
106
		$this->requete_condition[] = 't1.resource = p.tag';
138
		$this->requete_condition[] = 't1.resource = p.tag';
107
		$this->table = array(Config::get("bdd_triples").' t1', 
139
		$this->table = array(Config::get("bdd_triples").' t1', 
108
							Config::get("bdd_triples").' t2', 
140
							Config::get("bdd_triples").' t2', 
109
							Config::get("bdd_pages").' p');
141
							Config::get("bdd_pages").' p');
110
		$this->ajouterRechercheFloue('t1.resource', $id);
142
		$this->ajouterRechercheFloue('t1.resource', $id);*/
111
	}
143
	}
Line 112... Line 144...
112
	
144
	
113
	public function traiterRessourcesListe() {
145
	public function traiterRessourcesListe() {
114
		$this->requete_condition[] = "t1.property = 'num_nom'";
146
		$this->requete_condition[] = "t1.property = 'num_nom'";
Line 156... Line 188...
156
			if (isset($parametres['recherche']) && $parametres['recherche'] != '') {
188
			if (isset($parametres['recherche']) && $parametres['recherche'] != '') {
157
				$this->recherche = $parametres['recherche'];
189
				$this->recherche = $parametres['recherche'];
158
			}
190
			}
159
			foreach ($parametres as $param => $val) {
191
			foreach ($parametres as $param => $val) {
160
				switch ($param) {
192
				switch ($param) {
161
					case 'retour_format'	: $this->retour_format = $val;										break;
193
					case 'retour.format'	: $this->retour_format = $val;										break;
162
					case 'masque_titre' 	: $this->ajouterLeFiltreMasque('titre', $val);						break;
194
					case 'masque.titre' 	: $this->ajouterLeFiltreMasque('titre', $val);						break;
163
					case 'masque_famille'	: $this->ajouterLeFiltreMasque('famille', $val);					break;
195
					case 'masque.famille'	: $this->ajouterLeFiltreMasque('famille', $val);					break;
164
					case 'masque_ns'		: $this->ajouterLeFiltreMasque('nom_sci', $val);					break;
196
					case 'masque.ns'		: $this->ajouterLeFiltreMasque('nom_sci', $val);					break;
165
					case 'masque_type'		: $this->ajouterLeFiltreMasque('type', $val);						break;
197
					case 'masque.type'		: $this->ajouterLeFiltreMasque('type', $val);						break;
166
					case 'masque_txt'		: $this->ajouterLeFiltreMasque('texte', $val);						break;
198
					case 'masque.txt'		: $this->ajouterLeFiltreMasque('texte', $val);						break;
167
					case 'masque_page'		: $this->ajouterLeFiltreMasque('page',$val);						break;
199
					case 'masque.page'		: $this->ajouterLeFiltreMasque('page',$val);						break;
168
					case 'masque_tome'		: $this->ajouterLeFiltreMasque('tome',$val);						break;
200
					case 'masque.tome'		: $this->ajouterLeFiltreMasque('tome',$val);						break;
169
					case 'navigation_depart': $this->limite_requete['depart'] = $val;							break;
201
					case 'navigation.depart': $this->limite_requete['depart'] = $val;							break;
170
					case 'navigation_limite': $this->limite_requete['limite'] = $val;							break;
202
					case 'navigation.limite': $this->limite_requete['limite'] = $val;							break;
171
					case 'recherche'		: 																	break;
203
					case 'recherche'		: 																	break;
172
					default					: 
204
					default					: 
173
						$e = "Erreur dans les paramètres de recherche de votre requête : </br> Le parametre	$param n\'existe pas.";
205
						$e = "Erreur dans les paramètres de recherche de votre requête : </br> Le parametre	$param n\'existe pas.";
174
						$this->renvoyerErreur(RestServeur::HTTP_CODE_MAUVAISE_REQUETE,$e);
206
						$this->renvoyerErreur(RestServeur::HTTP_CODE_MAUVAISE_REQUETE,$e);
175
						break;
207
						break;
Line 284... Line 316...
284
			case 'textes/relations'		: $reponse = $this->formaterTextesRelations($resultat); break;
316
			case 'textes/relations'		: $reponse = $this->formaterTextesRelations($resultat); break;
285
			case 'textes/id' 			: $reponse = $this->formaterTextesId($resultat[0]); 	 break;
317
			case 'textes/id' 			: $reponse = $this->formaterTextesId($resultat[0]); 	 break;
286
			case 'textes/id/champ' 		: $reponse = $this->formaterTextesIdChamp($resultat[0]); break;
318
			case 'textes/id/champ' 		: $reponse = $this->formaterTextesIdChamp($resultat[0]); break;
287
			default : break;
319
			default : break;
288
		}
320
		}
289
		$reponse = json_encode($reponse);
-
 
290
		return $reponse;
321
		return $reponse;
291
	}
322
	}
Line 292... Line 323...
292
	
323