Subversion Repositories eFlore/Projets.eflore-projets

Rev

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

Rev 784 Rev 1100
Line 193... Line 193...
193
					case 'masque.determination.nt' :
193
					case 'masque.determination.nt' :
194
						$this->requete_condition[] = '`num_tax` = '.$this->getBdd()->proteger($valeur);		break;				case 'masque.observateur'	: $this->ajouterLeFiltreContributeur($valeur);					break;
194
						$this->requete_condition[] = '`num_tax` = '.$this->getBdd()->proteger($valeur);		break;				case 'masque.observateur'	: $this->ajouterLeFiltreContributeur($valeur);					break;
195
					case 'masque.valeur' 		: $this->presenceChorologie = $valeur;							break;
195
					case 'masque.valeur' 		: $this->presenceChorologie = $valeur;							break;
196
					case 'retour.format'		: $this->retour_format = $valeur;								break;
196
					case 'retour.format'		: $this->retour_format = $valeur;								break;
197
					case 'navigation.depart'	: $this->ajouterLimiteDepart($valeur);							break;
197
					case 'navigation.depart'	: $this->ajouterLimiteDepart($valeur);							break;
198
					case 'navigation.limite'	: $this->limite_requete['limite'] = $valeur;					break;
198
					case 'navigation.limite'	: if ($valeur !== '') $this->limite_requete['limite'] = $valeur;	break;
199
					case 'recherche'			: 																break;
199
					case 'recherche'			: 																break;
200
					case 'version.projet'		: 																break;
200
					case 'version.projet'		: 																break;
201
					default						:  $p = 'Erreur dans les paramètres de recherche de votre requête : '.
201
					default						:  $p = 'Erreur dans les paramètres de recherche de votre requête : '.
202
													'</br> Le paramètre " '.$param.' " n\'existe pas.';
202
													'</br> Le paramètre " '.$param.' " n\'existe pas.';
203
												$this->renvoyerErreur(RestServeur::HTTP_CODE_MAUVAISE_REQUETE, $p); break;
203
												$this->renvoyerErreur(RestServeur::HTTP_CODE_MAUVAISE_REQUETE, $p); break;
Line 303... Line 303...
303
		}
303
		}
304
		list($table, $version) = explode('_v',$this->table);
304
		list($table, $version) = explode('_v',$this->table);
305
		$requete_contr = "SELECT * FROM chorodep_contributeurs_v$version WHERE ".$condition;
305
		$requete_contr = "SELECT * FROM chorodep_contributeurs_v$version WHERE ".$condition;
306
	}
306
	}
Line -... Line 307...
-
 
307
 
-
 
308
	/**
-
 
309
	 * @param type $id un offset ou une combinaison de la forme "num_nom:departement"
307
	
310
	 */
-
 
311
	public function ajouterLimiteDepart($id) {
-
 
312
		if ($id !== '') {
-
 
313
			// $id est de la forme nn:dept - wtf ? en plus ça marche pas, le lien
308
	public function ajouterLimiteDepart($id) {
314
			// "href.suivant" génère du caca d'oie
-
 
315
			$d = explode(":", $id);
309
		$d = explode(":", $id);
316
			if (count($d) == 2) {
310
		$this->limite_requete['depart'] = 0;
317
				$this->limite_requete['depart'] = 0;
311
		$this->limite_requete['dept'] = $d[1];
318
				$this->limite_requete['dept'] = $d[1];
312
		if (!isset($this->parametres['masque.determination.nn'])) {
319
				if (!isset($this->parametres['masque.determination.nn'])) {
313
			$requete_condition = (is_numeric($d[0])) ? '`num_nom` = '.$d[0]  : '`nom_sci` like "'.urldecode($d[0]).'%"';
320
					$requete_condition = (is_numeric($d[0])) ? '`num_nom` = '.$d[0]  : '`nom_sci` like "'.urldecode($d[0]).'%"';
Line 322... Line 329...
322
			} else {
329
					} else {
323
				$i = "Les données recherchées sont introuvables";
330
						$i = "Les données recherchées sont introuvables";
324
				$this->renvoyerErreur(RestServeur::HTTP_CODE_RESSOURCE_INTROUVABLE, $i);
331
						$this->renvoyerErreur(RestServeur::HTTP_CODE_RESSOURCE_INTROUVABLE, $i);
325
			}
332
					}
326
		}
333
				}
-
 
334
			} else {
-
 
335
				// $id est un simple offset
-
 
336
				$this->limite_requete['depart'] = $id;
-
 
337
			}
-
 
338
		}
327
	}
339
	}
Line 328... Line 340...
328
	
340
	
329
// +-------------------------------------------------------------------------------------------------------------------+
341
// +-------------------------------------------------------------------------------------------------------------------+
330
	public function retournerResultatFormate($resultat) {
342
	public function retournerResultatFormate($resultat) {
Line 387... Line 399...
387
				break;
399
				break;
388
			}
400
			}
389
			$this->table_retour = array();
401
			$this->table_retour = array();
390
		}
402
		}
391
		//on remplit la table $table_retour_json['entete']	
403
		//on remplit la table $table_retour_json['entete']	
-
 
404
		// Mode moderne rétrocompatible : les départ sont toujours de simples offsets
-
 
405
		if (strpos($this->limite_requete['depart'], ':') === false) {
-
 
406
			$id = $this->limite_requete['depart'] + $this->limite_requete['limite'];
-
 
407
		}
392
		//formuler les urls precedentes et suivantes affichées dans l'entete du resultat
408
		//formuler les urls precedentes et suivantes affichées dans l'entete du resultat
393
		$url = $this->formulerUrlObs($id, $num, '/observations');
409
		$url = $this->formulerUrlObs($id, $num, '/observations');
394
		if ($url['precedent'] != '') { $this->table_entete['href.precedent'] = $url['precedent']; }
410
		if ($url['precedent'] != '') { $this->table_entete['href.precedent'] = $url['precedent']; }
395
		if ($url['suivant']   != '') { $this->table_entete['href.suivant']   = $url['suivant']; }
411
		if ($url['suivant']   != '') { $this->table_entete['href.suivant']   = $url['suivant']; }
396
		$this->table_entete['total']  = $num;
412
		$this->table_entete['total']  = $num;
Line 690... Line 706...
690
	 * @return string : la fin de l'url decrivant les limites des resultats precedents. 
706
	 * @return string : la fin de l'url decrivant les limites des resultats precedents. 
691
	 * Si aucun résultats ne precedent, une chaine de caractère vide est retournée
707
	 * Si aucun résultats ne precedent, une chaine de caractère vide est retournée
692
	 */
708
	 */
693
	public function recupererLesLimitesPrecedentesObs($suivant) {
709
	public function recupererLesLimitesPrecedentesObs($suivant) {
694
		$url_precedente = '';
710
		$url_precedente = '';
-
 
711
		// tentative de fonctionnement normal
-
 
712
		if (strpos($this->limite_requete['depart'], ':') === false && $this->limite_requete['depart'] != 0) {
-
 
713
			$departPrec = max(0, $this->limite_requete['depart'] - $this->limite_requete['limite']);
-
 
714
			$url_precedente = "&navigation.depart=$departPrec&navigation.limite=" . $this->limite_requete['limite'];
-
 
715
		}
695
		if (isset($this->table_param['navigation_depart'])) { // si on utilise un parametre de départ
716
		if (isset($this->table_param['navigation_depart'])) { // si on utilise un parametre de départ
696
			// si l'adresse d'appel de la page est inférieur au départ
717
			// si l'adresse d'appel de la page est inférieur au départ
697
			$regex = '/http:\/\/.*\/service:eflore:0.1\/chorodep\/observations\?.*navigation.depart=(.*\:[0-9]*).*/';
718
			$regex = '/http:\/\/.*\/service:eflore:0.1\/chorodep\/observations\?.*navigation.depart=(.*\:[0-9]*).*/';
698
			if (isset($_SERVER['HTTP_REFERER']) && preg_match($regex, $_SERVER['HTTP_REFERER'], $match)) {
719
			if (isset($_SERVER['HTTP_REFERER']) && preg_match($regex, $_SERVER['HTTP_REFERER'], $match)) {
699
				if ($match[1] != $this->table_param['navigation_depart'] && $match[1] != $suivant) {
720
				if ($match[1] != $this->table_param['navigation_depart'] && $match[1] != $suivant) {