Subversion Repositories eFlore/Applications.eflore-consultation

Rev

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

Rev 95 Rev 106
Line 11... Line 11...
11
 * @license		http://www.gnu.org/licenses/gpl.html Licence GNU-GPL-v3
11
 * @license		http://www.gnu.org/licenses/gpl.html Licence GNU-GPL-v3
12
 * @license		http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL-v2
12
 * @license		http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL-v2
13
 * @version		$Id$
13
 * @version		$Id$
14
 */
14
 */
15
abstract class aControleur extends Controleur {
15
abstract class aControleur extends Controleur {
16
	
16
 
17
	const META_TITRE = 'titre';
17
	const META_TITRE = 'titre';
18
	const META_DESCRIPTION = 'description';
18
	const META_DESCRIPTION = 'description';
19
	const META_TAGS = 'tags';
19
	const META_TAGS = 'tags';
20
	const RENDU_TETE = 'tete';
20
	const RENDU_TETE = 'tete';
21
	const RENDU_CORPS = 'corps';
21
	const RENDU_CORPS = 'corps';
22
	const RENDU_PIED = 'pied';
22
	const RENDU_PIED = 'pied';
23
	const RENDU_NAVIGATION = 'navigation';
23
	const RENDU_NAVIGATION = 'navigation';
24
	const RENDU_MENU = 'menu';
24
	const RENDU_MENU = 'menu';
25
	
25
 
26
	private $sortie = array();
26
	private $sortie = array();
27
	protected $urlBase = null;
27
	protected $urlBase = null;
28
	protected $urlCourante = null;
28
	protected $urlCourante = null;
29
	
29
 
30
	public function __construct()  {
30
	public function __construct()  {
31
		$chemin = Config::get('chemin_modules').
31
		$chemin = Config::get('chemin_modules').
32
			AppControleur::getNomDossierDepuisClasse(get_class($this)).DS.
32
			AppControleur::getNomDossierDepuisClasse(get_class($this)).DS.
33
			Config::get('dossier_squelettes').DS;
33
			Config::get('dossier_squelettes').DS;
34
		Registre::set('tbf.chemin_squelettes', $chemin);
34
		Registre::set('tbf.chemin_squelettes', $chemin);
35
		
35
 
36
		$this->urlBase = Registre::get('eFlore.urlBase');
36
		$this->urlBase = Registre::get('eFlore.urlBase');
37
		$this->urlCourante = Registre::get('eFlore.urlCourante');
37
		$this->urlCourante = Registre::get('eFlore.urlCourante');
38
		$this->urlRedirection = Registre::get('eFlore.urlRedirection');
38
		$this->urlRedirection = Registre::get('eFlore.urlRedirection');
39
		
39
 
40
		parent::__construct();
40
		parent::__construct();
41
	}
41
	}
42
	
42
 
43
	//+------------------------------------------------------------------------------------------------------+
43
	//+------------------------------------------------------------------------------------------------------+
44
	// GESTION de l'AFFICHAGE en SORTIE
44
	// GESTION de l'AFFICHAGE en SORTIE
45
	
45
 
46
	/**
46
	/**
47
 	* Attribue une position de sortie à un contenu.
47
 	* Attribue une position de sortie à un contenu.
48
 	*/
48
 	*/
49
	protected function setSortie($position, $contenu, $fusionner = false) {
49
	protected function setSortie($position, $contenu, $fusionner = false) {
50
		if ($this->verifierExistenceTypeSortie($position)) {
50
		if ($this->verifierExistenceTypeSortie($position)) {
Line 57... Line 57...
57
			} else {
57
			} else {
58
				$this->sortie[$position] = $contenu;
58
				$this->sortie[$position] = $contenu;
59
			}
59
			}
60
		}
60
		}
61
	}
61
	}
62
	
62
 
63
	/**
63
	/**
64
	 * Vérifie l'existence du type de sortie indiqué pour son utilisation dans le tableau de sortie.
64
	 * Vérifie l'existence du type de sortie indiqué pour son utilisation dans le tableau de sortie.
65
	 * @param string le type de sortie à tester.
65
	 * @param string le type de sortie à tester.
66
	 * @return bool true si le type de sortie est valide, sinon false.
66
	 * @return bool true si le type de sortie est valide, sinon false.
67
	 */
67
	 */
Line 78... Line 78...
78
			trigger_error("Le type de sortie '$type' n'est pas une valeur prédéfinie.", E_USER_WARNING);
78
			trigger_error("Le type de sortie '$type' n'est pas une valeur prédéfinie.", E_USER_WARNING);
79
			$existe = false;
79
			$existe = false;
80
		}
80
		}
81
		return $existe;
81
		return $existe;
82
	}
82
	}
83
	
83
 
84
	/**
84
	/**
85
	 * Retourne le tableau de sortie à utiliser dans le controleur principal de l'application.
85
	 * Retourne le tableau de sortie à utiliser dans le controleur principal de l'application.
86
	 */
86
	 */
87
	public function getSortie() {
87
	public function getSortie() {
88
		return $this->sortie;
88
		return $this->sortie;
Line 121... Line 121...
121
			$nouvelleSortie = $module->getSortie();
121
			$nouvelleSortie = $module->getSortie();
122
			$this->fusionnerSortie($nouvelleSortie);
122
			$this->fusionnerSortie($nouvelleSortie);
123
		} else {
123
		} else {
124
			$m = "La méthode '$action' du controleur '$ClasseModule' est introuvable.";
124
			$m = "La méthode '$action' du controleur '$ClasseModule' est introuvable.";
125
			trigger_error($m, E_USER_ERROR);
125
			trigger_error($m, E_USER_ERROR);
126
		}		
126
		}
127
	}
127
	}
128
	
128
 
129
	//+------------------------------------------------------------------------------------------------------+
129
	//+------------------------------------------------------------------------------------------------------+
130
	// GESTION du VUES COMMUNES
130
	// GESTION du VUES COMMUNES
131
	/**
131
	/**
132
	 * Charge un squelette de vue depuis l'emplacement commune. 
132
	 * Charge un squelette de vue depuis l'emplacement commune.
133
	 * @param String $tpl le nom du squelette à charger sans l'extenssion de fichier.
133
	 * @param String $tpl le nom du squelette à charger sans l'extenssion de fichier.
134
	 * @param Array $donnees les données à passer au squelette PHP.
134
	 * @param Array $donnees les données à passer au squelette PHP.
135
	 */
135
	 */
136
	private function getVueCommune($tpl, $donnees) {
136
	private function getVueCommune($tpl, $donnees) {
137
		$cheminOrigine = $this->getCheminSquelette();
137
		$cheminOrigine = $this->getCheminSquelette();
138
		$this->setCheminSquelette(Config::get('chemin_squelettes'));
138
		$this->setCheminSquelette(Config::get('chemin_squelettes'));
139
		$vue = $this->getVue($tpl, $donnees);
139
		$vue = $this->getVue($tpl, $donnees);
140
		$this->setCheminSquelette($cheminOrigine);
140
		$this->setCheminSquelette($cheminOrigine);
141
		return $vue;
141
		return $vue;
142
	}
142
	}
143
	
143
 
144
	/**
144
	/**
145
	 * Pour mutualiser la création du pied de page de l'application, sa gestion est gérée dans cette classe.
145
	 * Pour mutualiser la création du pied de page de l'application, sa gestion est gérée dans cette classe.
146
	 */
146
	 */
147
	public function chargerEnteteGeneral() {
147
	public function chargerEnteteGeneral() {
148
		$donnees['appli'] = Framework::getInfoAppli();
148
		$donnees['appli'] = Framework::getInfoAppli();
149
		$donnees['i18n'] = array_merge(I18n::get('Entete'), I18n::get('General'));
149
		$donnees['i18n'] = array_merge(I18n::get('Entete'), I18n::get('General'));
150
		$donnees['referentiel_titre'] = I18n::get('Referentiels-titres.'.Registre::get('parametres.referentiel'));
150
		$donnees['referentiel_titre'] = I18n::get('Referentiels-titres.'.Registre::get('parametres.referentiel'));
151
		
151
 
152
		$this->setSortie(self::RENDU_TETE, $this->getVueCommune('entete_page', $donnees));
152
		$this->setSortie(self::RENDU_TETE, $this->getVueCommune('entete_page', $donnees));
153
	}
153
	}
154
	
154
 
155
	/**
155
	/**
156
	 * Pour mutualiser la création du menu de l'application, sa gestion est gérée dans cette classe.
156
	 * Pour mutualiser la création du menu de l'application, sa gestion est gérée dans cette classe.
157
	 */
157
	 */
158
	public function chargerMenuGeneral() {
158
	public function chargerMenuGeneral() {
159
		$donnees['appli'] = Framework::getInfoAppli();
159
		$donnees['appli'] = Framework::getInfoAppli();
160
		$donnees['i18n'] = array_merge(I18n::get('Pied'), I18n::get('General'));
160
		$donnees['i18n'] = array_merge(I18n::get('Pied'), I18n::get('General'));
161
		$donnees['courrielContact'] = Config::get('courriel_contact');
161
		$donnees['courrielContact'] = Config::get('courriel_contact');
162
		
162
 
163
		$this->setSortie(self::RENDU_MENU, $this->getVueCommune('menu', $donnees));
163
		$this->setSortie(self::RENDU_MENU, $this->getVueCommune('menu', $donnees));
164
	}
164
	}
165
	
165
 
166
	/**
166
	/**
167
	 * Pour mutualiser la création du pied de page de l'application, sa gestion est gérée dans cette classe.
167
	 * Pour mutualiser la création du pied de page de l'application, sa gestion est gérée dans cette classe.
168
	 */
168
	 */
169
	public function chargerPiedGeneral() {
169
	public function chargerPiedGeneral() {
170
		$donnees['appli'] = Framework::getInfoAppli();
170
		$donnees['appli'] = Framework::getInfoAppli();
171
		$donnees['i18n'] = array_merge(I18n::get('Pied'), I18n::get('General'));
171
		$donnees['i18n'] = array_merge(I18n::get('Pied'), I18n::get('General'));
172
		$donnees['courrielContact'] = Config::get('courriel_contact');
172
		$donnees['courrielContact'] = Config::get('courriel_contact');
173
		
173
 
174
		$this->setSortie(self::RENDU_PIED, $this->getVueCommune('pied_page', $donnees));
174
		$this->setSortie(self::RENDU_PIED, $this->getVueCommune('pied_page', $donnees));
175
	}
175
	}
176
	
176
 
177
	//+------------------------------------------------------------------------------------------------------+
177
	//+------------------------------------------------------------------------------------------------------+
178
	// GESTION du CHARGEMENT des CLASSES MÉTIERS
178
	// GESTION du CHARGEMENT des CLASSES MÉTIERS
179
	protected function getEfloreNoms() {
179
	protected function getEfloreNoms() {
180
		if (! isset($this->EfloreNoms)) {
180
		if (! isset($this->EfloreNoms)) {
181
			$this->EfloreNoms = new Noms();
181
			$this->EfloreNoms = new Noms();
182
		}
182
		}
183
		return $this->EfloreNoms;
183
		return $this->EfloreNoms;
184
	}
184
	}
185
	
185
 
186
	protected function getEfloreTaxons() {
186
	protected function getEfloreTaxons() {
187
		if (! isset($this->EfloreTaxons)) {
187
		if (! isset($this->EfloreTaxons)) {
188
			$this->EfloreTaxons = new Taxons();
188
			$this->EfloreTaxons = new Taxons();
189
		}
189
		}
190
		return $this->EfloreTaxons;
190
		return $this->EfloreTaxons;
191
	}
191
	}
192
	
192
 
193
	//+------------------------------------------------------------------------------------------------------+
193
	//+------------------------------------------------------------------------------------------------------+
194
	// GESTION des URLs
194
	// GESTION des URLs
195
	protected function obtenirUrlBase() {
195
	protected function obtenirUrlBase() {
196
		$url = $this->urlBase->getURL();
196
		$url = $this->urlBase->getURL();
197
		return $url;
197
		return $url;
198
	}
198
	}
199
	
199
 
200
	protected function redirigerVers($url) {
200
	protected function redirigerVers($url) {
201
		$url = str_replace('&', '&', $url);
201
		$url = str_replace('&', '&', $url);
202
		header("Location: $url");
202
		header("Location: $url");
203
	}
203
	}
204
	
204
 
205
	private function getParametresUrlListe() {
205
	private function getParametresUrlListe() {
206
		$parametres = array(
206
		$parametres = array(
207
			'referentiel' => Registre::get('parametres.referentiel'),
207
			'referentiel' => Registre::get('parametres.referentiel'),
208
			'module' => 'liste',
208
			'module' => 'liste',
209
			'action' => 'liste',
209
			'action' => 'liste',
210
			'rang' => $this->rang,
210
			'rang' => $this->rang,
211
			'lettre' => $this->lettre
211
			'lettre' => $this->lettre
212
		);
212
		);
213
		return $parametres;
213
		return $parametres;
214
	}
214
	}
215
	
215
 
216
	protected function obtenirUrlListeFamille() {
216
	protected function obtenirUrlListeFamille() {
217
		$parametres = $this->getParametresUrlListe();
217
		$parametres = $this->getParametresUrlListe();
218
		$parametres['rang'] = 'F';
218
		$parametres['rang'] = 'F';
219
		$this->urlBase->setRequete($parametres);
219
		$this->urlBase->setRequete($parametres);
220
		$url = $this->urlBase->getURL();
220
		$url = $this->urlBase->getURL();
221
		return $url;
221
		return $url;
222
	}
222
	}
223
	
223
 
224
	protected function obtenirUrlListeGenre() {
224
	protected function obtenirUrlListeGenre() {
225
		$parametres = $this->getParametresUrlListe();
225
		$parametres = $this->getParametresUrlListe();
226
		$parametres['rang'] = 'G';
226
		$parametres['rang'] = 'G';
227
		$this->urlBase->setRequete($parametres);
227
		$this->urlBase->setRequete($parametres);
228
		$url = $this->urlBase->getURL();
228
		$url = $this->urlBase->getURL();
229
		return $url;
229
		return $url;
230
	}
230
	}
231
	
231
 
232
	private function getParametresUrlRecherche() {
232
	private function getParametresUrlRecherche() {
233
		$parametres = array(
233
		$parametres = array(
234
			'referentiel' => Registre::get('parametres.referentiel'),
234
			'referentiel' => Registre::get('parametres.referentiel'),
235
			'module' => 'recherche',
235
			'module' => 'recherche',
236
			'action' => 'rechercheSimple',
236
			'action' => 'rechercheSimple',
237
			'submit' => 'Rechercher'
237
			'submit' => 'Rechercher'
238
		);
238
		);
239
		return $parametres;
239
		return $parametres;
240
	}
240
	}
241
	
241
 
242
	protected function obtenirUrlRechercheSimple($nom = null, $type = 'nom_scientifique') {
242
	protected function obtenirUrlRechercheSimple($nom = null, $type = 'nom_scientifique') {
243
		$parametres = $this->getParametresUrlRecherche();
243
		$parametres = $this->getParametresUrlRecherche();
244
		$parametres['type_nom'] = $type;
244
		$parametres['type_nom'] = $type;
245
		$parametres['nom'] = $nom;
245
		$parametres['nom'] = $nom;
246
		$this->urlBase->setRequete($parametres);
246
		$this->urlBase->setRequete($parametres);
247
		$url = $this->urlBase->getURL();
247
		$url = $this->urlBase->getURL();
248
		return $url;
248
		return $url;
249
	}
249
	}
250
	
250
 
251
	private function getParametresUrlResultat() {
251
	private function getParametresUrlResultat() {
252
		$parametres = array(
252
		$parametres = array(
253
			'referentiel' => Registre::get('parametres.referentiel'),
253
			'referentiel' => Registre::get('parametres.referentiel'),
254
			'module' => 'recherche',
254
			'module' => 'recherche',
255
			'action' => Registre::get('parametres.action'),
255
			'action' => Registre::get('parametres.action'),
Line 257... Line 257...
257
			'type_nom' => isset($_GET['type_nom']) ? $_GET['type_nom'] : 'nom_scientifique',
257
			'type_nom' => isset($_GET['type_nom']) ? $_GET['type_nom'] : 'nom_scientifique',
258
			'nom' => isset($_GET['nom']) ? $_GET['nom'] : ''
258
			'nom' => isset($_GET['nom']) ? $_GET['nom'] : ''
259
		);
259
		);
260
		return $parametres;
260
		return $parametres;
261
	}
261
	}
262
	
262
 
-
 
263
	protected function obtenirUrlResultatDetermination() {
-
 
264
		$parametres = $this->getParametresUrlResultat();
-
 
265
		$parametres['resultat'] = 'determination';
-
 
266
		$this->urlBase->setRequete($parametres);
-
 
267
		$url = $this->urlBase->getURL();
-
 
268
		return $url;
-
 
269
	}
-
 
270
 
263
	protected function obtenirUrlResultatClassique() {
271
	protected function obtenirUrlResultatAlphab() {
264
		$parametres = $this->getParametresUrlResultat();
272
		$parametres = $this->getParametresUrlResultat();
265
		$parametres['resultat'] = 'classique';
273
		$parametres['resultat'] = 'alphab';
266
		$this->urlBase->setRequete($parametres);
274
		$this->urlBase->setRequete($parametres);
267
		$url = $this->urlBase->getURL();
275
		$url = $this->urlBase->getURL();
268
		return $url;
276
		return $url;
269
	}
277
	}
270
	
278
 
271
	protected function obtenirUrlResultatRetenu() {
279
	protected function obtenirUrlResultatRetenu() {
272
		$parametres = $this->getParametresUrlResultat();
280
		$parametres = $this->getParametresUrlResultat();
273
		$parametres['resultat'] = 'retenu';
281
		$parametres['resultat'] = 'retenu';
274
		$this->urlBase->setRequete($parametres);
282
		$this->urlBase->setRequete($parametres);
275
		$url = $this->urlBase->getURL();
283
		$url = $this->urlBase->getURL();
276
		return $url;
284
		return $url;
277
	}
285
	}
278
	
286
 
279
	protected function obtenirUrlResultatDetermination() {
287
	protected function obtenirUrlResultatDecompo() {
280
		$parametres = $this->getParametresUrlResultat();
288
		$parametres = $this->getParametresUrlResultat();
281
		$parametres['resultat'] = 'determination';
289
		$parametres['resultat'] = 'decompo';
282
		$this->urlBase->setRequete($parametres);
290
		$this->urlBase->setRequete($parametres);
283
		$url = $this->urlBase->getURL();
291
		$url = $this->urlBase->getURL();
284
		return $url;
292
		return $url;
285
	}
293
	}
-
 
294
 
286
	
295
 
-
 
296
 
287
	private function getParametresUrlFiche() {
297
	private function getParametresUrlFiche() {
288
		$parametres = array(
298
		$parametres = array(
289
			'referentiel' => Registre::get('parametres.referentiel'),
299
			'referentiel' => Registre::get('parametres.referentiel'),
290
			'module' => 'fiche',
300
			'module' => 'fiche',
291
			'action' => 'fiche'
301
			'action' => 'fiche'
292
		);
302
		);
293
		return $parametres;
303
		return $parametres;
294
	}
304
	}
295
	
305
 
296
	protected function obtenirUrlFiche($numNom) {
306
	protected function obtenirUrlFiche($numNom) {
297
		$parametres = $this->getParametresUrlFiche();
307
		$parametres = $this->getParametresUrlFiche();
298
		$parametres['nn'] = $numNom;
308
		$parametres['nn'] = $numNom;
299
		$this->urlBase->setRequete($parametres);
309
		$this->urlBase->setRequete($parametres);
300
		$url = $this->urlBase->getURL();
310
		$url = $this->urlBase->getURL();