Subversion Repositories eFlore/Projets.eflore-projets

Rev

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

Rev 215 Rev 216
Line 20... Line 20...
20
	public function setListeUrl($url) {
20
	public function setListeUrl($url) {
21
		$this->listeUrl = $url;
21
		$this->listeUrl = $url;
22
	}
22
	}
Line 23... Line 23...
23
 
23
 
24
	public function consulter() {
24
	public function consulter() {
25
		$this->noms = $this->rechercher();
25
		$this->rechercher();
26
		$this->nbreNomsTotal = $this->nomDao->recupererNombreNomsTotal();
26
		if ($this->avoirResultats()) {
27
		$this->trierNoms();
27
			$this->trierNoms();
-
 
28
			$retour = $this->construireTableauRetour();
-
 
29
		} else {
-
 
30
			$message = "Aucun résultat ne correspond a votre requête !";
-
 
31
			$code = RestServeur::HTTP_CODE_RESSOURCE_INTROUVABLE;
-
 
32
			throw new Exception($message, $code);
28
		$retour = $this->construireTableauRetour();
33
		}
29
		return $retour;
34
		return $retour;
Line -... Line 35...
-
 
35
	}
-
 
36
 
-
 
37
	private function avoirResultats() {
-
 
38
		$resultat = ($this->nbreNomsTotal == 0) ? false : true;
-
 
39
		return $resultat;
Line 30... Line 40...
30
	}
40
	}
31
 
41
 
32
 
42
 
Line 33... Line 43...
33
	private function rechercher() {
43
	private function rechercher() {
34
		$resultats = array();
-
 
35
		$recherche = $this->parametres->get('recherche');
-
 
36
 
-
 
37
		if ($recherche == 'stricte') {
-
 
38
			$resultats = $this->nomDao->rechercherStricte();
44
		$resultats = array();
-
 
45
		$recherche = $this->parametres->get('recherche');
-
 
46
 
39
		} else if ($recherche == 'etendue') {
47
		if ($recherche == 'floue') {
40
			$resultats = $this->nomDao->rechercherEtendue();
-
 
41
		} else if ($recherche == 'floue') {
48
			$resultats = $this->nomDao->rechercherFloue();
-
 
49
		} else {
42
			$resultats = $this->nomDao->rechercherFloue();
50
			$resultats = $this->nomDao->rechercher();
Line 43... Line 51...
43
		}
51
		}
44
 
52
		$this->noms = $resultats;
45
		return $resultats;
53
		$this->nbreNomsTotal = $this->nomDao->recupererNombreNomsTotal();
Line 107... Line 115...
107
		}
115
		}
108
		return $entete;
116
		return $entete;
109
	}
117
	}
Line 110... Line 118...
110
 
118
 
-
 
119
	private function formaterEnteteMasque() {
-
 
120
		$masquesStrictes = array('nn', 'rg');
-
 
121
		$paramsMasque = array(
-
 
122
			'' => 'nom_sci',
-
 
123
			'nn' => 'num_nom',
-
 
124
			'rg' => 'rang',
-
 
125
			'sg' => 'nom_supra_generique',
-
 
126
			'gen' => 'genre',
-
 
127
			'sp' => 'epithete_sp',
-
 
128
			'ssp' => 'epithete_infra_sp',
-
 
129
			'au' => 'auteur',
-
 
130
			'an' => 'annee');
-
 
131
		$etendre = ($this->parametres->get('recherche') == 'etendue') ? true : false;
111
	private function formaterEnteteMasque() {
132
 
112
		$masqueComplet = array();
133
		$masqueComplet = array();
113
		if ($this->parametres->exister('masque')) {
-
 
114
			$masque = '';
134
		foreach ($paramsMasque as $masqueType => $champ) {
115
			$masque .= 'nom_sci='.$this->parametres->get('masque');
-
 
116
			if ($this->parametres->get('recherche') == 'etendue') {
-
 
117
				$masque .= '%';
-
 
118
			}
-
 
119
			$masqueComplet[] = $masque;
-
 
120
		}
135
			$masqueParam = 'masque'.($masqueType != '' ? '.'.$masqueType : $masqueType);
121
		if ($this->parametres->exister('masque.sg')) {
-
 
122
			$masque = '';
136
			if ($this->parametres->exister($masqueParam)) {
123
			$masque .= 'nom_supra_generique='.$this->parametres->get('masque.sg');
-
 
124
			if ($this->parametres->get('recherche') == 'etendue') {
-
 
125
				$masque .= '%';
-
 
126
			}
137
				$masqueValeur = $this->parametres->get($masqueParam);
127
			$masqueComplet[] = $masque;
-
 
128
		}
-
 
129
		if ($this->parametres->exister('masque.gen')) {
-
 
130
			$masque = '';
138
				$masque = "$champ=$masqueValeur";
131
			$masque .= 'genre='.$this->parametres->get('masque.gen');
-
 
132
			if ($this->parametres->get('recherche') == 'etendue') {
-
 
133
				$masque .= '%';
139
				$masque .= ($etendre && in_array($masqueType, $masquesStrictes) === false)  ? '%' : '';
134
			}
140
 
135
			$masqueComplet[] = $masque;
-
 
136
		}
-
 
137
		if ($this->parametres->exister('masque.sp')) {
-
 
138
			$masque = '';
-
 
139
			$masque .= 'epithete_sp='.$this->parametres->get('masque.sp');
-
 
140
			if ($this->parametres->get('recherche') == 'etendue') {
-
 
141
				$masque .= '%';
141
				$masqueComplet[] = $masque;
142
			}
-
 
143
			$masqueComplet[] = $masque;
142
			}
144
		}
143
		}
145
		return implode('&', $masqueComplet);
144
		return implode('&', $masqueComplet);
Line 146... Line 145...
146
	}
145
	}