Subversion Repositories eFlore/Applications.coel-consultation

Rev

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

Rev 213 Rev 246
Line 7... Line 7...
7
 * @category	Php5
7
 * @category	Php5
8
 * @author		Jean-Pascal MILCENT <jpm@tela-botanica.org>
8
 * @author		Jean-Pascal MILCENT <jpm@tela-botanica.org>
9
 * @copyright	2010 Tela-Botanica
9
 * @copyright	2010 Tela-Botanica
10
 * @license		http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL
10
 * @license		http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL
11
 * @license		http://www.gnu.org/licenses/gpl.html Licence GNU-GPL
11
 * @license		http://www.gnu.org/licenses/gpl.html Licence GNU-GPL
12
 * @version		SVN: $Id: Recherche.php 213 2014-04-25 13:12:08Z aurelien $
12
 * @version		SVN: $Id: Recherche.php 246 2015-03-03 09:13:36Z mathias $
13
 */
13
 */
14
class Recherche extends aControleur {
14
class Recherche extends aControleur {
Line 15... Line 15...
15
	
15
	
16
	//private $chaine_recherche = null;
16
	//protected $chaine_recherche = null;
17
	private $masque = null;
17
	protected $masque = null;
Line 18... Line 18...
18
	private static $url_exemple = null;
18
	protected static $url_exemple = null;
19
	
19
	
20
	//+----------------------------------------------------------------------------------------------------------------+
20
	//+----------------------------------------------------------------------------------------------------------------+
21
	// Méthodes
21
	// Méthodes
Line 50... Line 50...
50
		
50
		
51
		// Gestion du squelette et de la sortie
51
		// Gestion du squelette et de la sortie
52
		$this->setSortie(self::RENDU_TETE, $this->getVue('moteur', $donnees));
52
		$this->setSortie(self::RENDU_TETE, $this->getVue('moteur', $donnees));
Line 53... Line 53...
53
	}
53
	}
54
 
54
 
55
	private function obtenirMasqueRecherche() {
55
	protected function obtenirMasqueRecherche() {
56
		$masque = array();
56
		$masque = array();
57
		if (!is_null($this->masque)) {
57
		if (!is_null($this->masque)) {
58
			$masque = $this->masque;
58
			$masque = $this->masque;
Line 94... Line 94...
94
 
94
 
95
		$this->remplacerAbreviationParId($parametres);
95
		$this->remplacerAbreviationParId($parametres);
Line 96... Line 96...
96
		//echo "PARAM 2: <pre>" . print_r($parametres, true) . "</pre><br/>";
96
		//echo "PARAM 2: <pre>" . print_r($parametres, true) . "</pre><br/>";
-
 
97
		
-
 
98
		// Gestion du nombre de résultats
97
		
99
		$donnees_total = null;
98
		// Gestion du nombre de résultats
100
		if (isset($masque['cible'])) {
99
		switch ($masque['cible']) {
101
			switch ($masque['cible']) {
100
			case 'collections':
102
				case 'collections':
101
				$donnees_total = $rechercheDao->chercherCollectionsNbre($parametres);
103
					$donnees_total = $rechercheDao->chercherCollectionsNbre($parametres);
102
				break;
104
					break;
103
			case 'personnes':
105
				case 'personnes':
104
				$donnees_total = $rechercheDao->chercherPersonnesNbre($parametres);
106
					$donnees_total = $rechercheDao->chercherPersonnesNbre($parametres);
105
				break;
107
					break;
-
 
108
				default:
106
			default:
109
					// @TODO qu'est-ce qui se passe ?
Line 107... Line 110...
107
				// @TODO qu'est-ce qui se passe ?
110
			}
108
		}
111
		}
109
 
112
 
Line 122... Line 125...
122
		// Gestion de l'accès aux données
125
		// Gestion de l'accès aux données
123
		$rechercheDao->setLimitation(($de - 1), $fragmenteur->getDonneesParPage());
126
		$rechercheDao->setLimitation(($de - 1), $fragmenteur->getDonneesParPage());
124
		$rechercheDao->setDistinction(1);
127
		$rechercheDao->setDistinction(1);
Line 125... Line 128...
125
		
128
		
-
 
129
		// Récupération des résultats
126
		// Récupération des résultats
130
		if (isset($masque['cible'])) {
127
		switch ($masque['cible']) {
131
			switch ($masque['cible']) {
128
			case 'collections':
132
				case 'collections':
129
				$resultats = $rechercheDao->chercherCollections($parametres);
133
					$resultats = $rechercheDao->chercherCollections($parametres);
130
				break;
134
					break;
131
			case 'personnes':
135
				case 'personnes':
132
				$resultats = $rechercheDao->chercherPersonnes($parametres);
136
					$resultats = $rechercheDao->chercherPersonnes($parametres);
133
				break;
137
					break;
-
 
138
				default:
134
			default:
139
			}
Line 135... Line 140...
135
		}
140
		}
-
 
141
 
136
 
142
		// Affichage de la liste de résultats
137
		// Affichage de la liste de résultats
143
		if (isset($masque['cible'])) {
138
		switch ($masque['cible']) {
144
			switch ($masque['cible']) {
139
			case 'collections':
145
				case 'collections':
140
				foreach ($resultats as $resultat) {
146
					foreach ($resultats as $resultat) {
141
					// Ajout des données concernant la structure si ce n'est pas déjà fait
147
						// Ajout des données concernant la structure si ce n'est pas déjà fait
142
					$structure_id = $resultat['cs_id_structure'];
148
						$structure_id = $resultat['cs_id_structure'];
143
					if (!isset($donnees['infos'][$structure_id])) {
149
						if (!isset($donnees['infos'][$structure_id])) {
144
						$structure = array(
150
							$structure = array(
145
							'nom' => $resultat['cs_nom'],
151
								'nom' => $resultat['cs_nom'],
146
							'ville' => $resultat['cs_ville'],
152
								'ville' => $resultat['cs_ville'],
147
							'url' => $this->obtenirUrlFicheStructure($resultat['cs_id_structure'])
153
								'url' => $this->obtenirUrlFicheStructure($resultat['cs_id_structure'])
148
						);
154
							);
149
						$donnees['infos'][$structure_id]['structure'] = $structure;
155
							$donnees['infos'][$structure_id]['structure'] = $structure;
150
					}
156
						}
151
					
157
						
152
					// Si la structure possède des collections
158
						// Si la structure possède des collections
153
					if (!empty($resultat['cc_id_collection'])) {
159
						if (!empty($resultat['cc_id_collection'])) {
154
						$collection = array(
160
							$collection = array(
155
							'nom' => $resultat['cc_nom'],
161
								'nom' => $resultat['cc_nom'],
156
							'url' => $this->obtenirUrlFicheCollection($resultat['cc_id_collection'])
162
								'url' => $this->obtenirUrlFicheCollection($resultat['cc_id_collection'])
-
 
163
							);
157
						);
164
							$donnees['infos'][$structure_id]['collections'][] = $collection;
158
						$donnees['infos'][$structure_id]['collections'][] = $collection;
-
 
159
					}
165
						}
160
				}
166
					}
161
			break;
167
				break;
162
 
168
	
163
			case 'personnes':
169
				case 'personnes':
164
				foreach ($resultats as $resultat) {
170
					foreach ($resultats as $resultat) {
165
					//echo "<pre>".print_r($resultat,true)."</pre>";
171
						//echo "<pre>".print_r($resultat,true)."</pre>";
166
					if (!empty($resultat['cp_id_personne'])) {
172
						if (!empty($resultat['cp_id_personne'])) {
167
						$personne = array(
173
							$personne = array(
168
							'nomcomplet' => $resultat['cp_fmt_nom_complet'],
174
								'nomcomplet' => $resultat['cp_fmt_nom_complet'],
169
							'nom' => $resultat['cp_nom'],
175
								'nom' => $resultat['cp_nom'],
170
							'prenom' => $resultat['cp_prenom'],
176
								'prenom' => $resultat['cp_prenom'],
171
							'url' => $this->obtenirUrlFichePersonne($resultat['cp_id_personne'])
177
								'url' => $this->obtenirUrlFichePersonne($resultat['cp_id_personne'])
-
 
178
							);
172
						);
179
							$donnees['infos']['personnes'][] = $personne;
173
						$donnees['infos']['personnes'][] = $personne;
-
 
174
					}
180
						}
175
				}
181
					}
176
			break;
182
				break;
-
 
183
	
177
 
184
				default:
Line 178... Line 185...
178
			default:
185
			}
179
		}
186
		}
Line 186... Line 193...
186
		$resultat = $this->getVue('resultat', $donnees);
193
		$resultat = $this->getVue('resultat', $donnees);
187
		$this->setSortie(self::RENDU_CORPS, $resultat);
194
		$this->setSortie(self::RENDU_CORPS, $resultat);
188
		$this->chargerPiedDePage();
195
		$this->chargerPiedDePage();
189
	}
196
	}
Line 190... Line 197...
190
	
197
	
191
	private function initialiserMasquesVides($masque) {
198
	protected function initialiserMasquesVides($masque) {
192
		$masques_possibles = array('lieu-stockage',
199
		$masques_possibles = array('lieu-stockage',
193
		'veg','zg','bot','p','pr','nom-famille','date-vivant','date-deces','adresse');
200
		'veg','zg','bot','p','pr','nom-famille','date-vivant','date-deces','adresse');
194
		foreach($masques_possibles as $masque_possible) {
201
		foreach($masques_possibles as $masque_possible) {
195
			if(!isset($masque[$masque_possible])) {
202
			if(!isset($masque[$masque_possible])) {
196
				$masque[$masque_possible] = '';
203
				$masque[$masque_possible] = '';
197
			}
204
			}
198
		}
205
		}
199
		return $masque;
206
		return $masque;
Line 200... Line 207...
200
	}
207
	}
201
 
208
 
202
	private function remplacerAbreviationParId(&$parametres) {
209
	protected function remplacerAbreviationParId(&$parametres) {
203
		// liste 27 : Liste des relations entre une collection et une personne (id:1030)
210
		// liste 27 : Liste des relations entre une collection et une personne (id:1030)
204
		// liste 80 : Liste des types de collection botanique (id:1083)
211
		// liste 80 : Liste des types de collection botanique (id:1083)
205
		$params_a_remplacer = array('veg' => 1043, 'bot' => 1083, 'pr' => 1030);
212
		$params_a_remplacer = array('veg' => 1043, 'bot' => 1083, 'pr' => 1030);