Subversion Repositories eFlore/Applications.eflore-consultation

Rev

Rev 257 | Rev 269 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
71 delphine 1
<?php
2
// declare(encoding='UTF-8');
3
/**
4
 * Classe mère du module Liste.
5
 *
6
 * @category	PHP 5.2
7
 * @package		eflore-consultation
8
 * @author		Jean-Pascal MILCENT <jpm@tela-botanica.org>
9
 * @author		Delphine CAUQUIL <delphine@tela-botanica.org>
10
 * @copyright	2011 Tela-Botanica
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
13
 * @version		$Id$
14
 */
15
class Fiche extends aControleur {
230 delphine 16
	private $onglet = 'synthese';
238 delphine 17
	private $num_nom = 0;
230 delphine 18
 
238 delphine 19
 
216 delphine 20
	public function initialiser() {
21
		$this->capturerParametres();
238 delphine 22
		spl_autoload_register(array($this, 'chargerClassesOnglets'));
216 delphine 23
	}
71 delphine 24
 
238 delphine 25
	private function chargerClassesOnglets($classe) {
26
		$base = dirname(__FILE__).DS;
27
		$cheminFormateurs = $base.'formateurs'.DS;
28
		$dossiers = array($base, $cheminFormateurs);
29
		foreach ($dossiers as $chemin) {
30
			$fichierATester = $chemin.$classe.'.php';
31
			if (file_exists($fichierATester)) {
32
				include_once $fichierATester;
33
				return null;
34
			}
35
		}
36
	}
37
 
71 delphine 38
	public function executerActionParDefaut() {
39
		$this->executerFiche();
40
	}
41
 
141 delphine 42
	public function executerFiche(){
238 delphine 43
		$donnees = array('type_nom' => $this->type_nom, 'nom' => $this->nom);
44
		$this->executerAction('Recherche', 'executerAccueil', $donnees);
45
		$donnees['num_nom'] = $this->num_nom;
219 delphine 46
		$blocs_niveaux = $this->recupererTableauConfig('blocs_fiche_defaut');
47
		$donnees['blocs'] = '"'.str_replace('|', '","', $blocs_niveaux[Registre::get('parametres.niveau')]).'"';
238 delphine 48
		$donnees = $this->obtenirDonnees($donnees);
49
		$donnees['onglet'] = $this->onglet;
50
		$donnees['contenu_onglet'] = $this->getVue('fiche_'.$this->onglet, $donnees);
244 delphine 51
		$donnees['nom_retenu'] = $this->nom_retenu;
231 aurelien 52
		$this->setSortie(self::RENDU_CORPS, $this->getVue('fiche_accueil', $donnees), true);
71 delphine 53
	}
216 delphine 54
 
230 delphine 55
	public function executerOnglet(){
238 delphine 56
		$donnees = $this->obtenirDonnees();
231 aurelien 57
		header('Content-type: text/html');
230 delphine 58
		echo $this->getVue('fiche_'.$this->onglet, $donnees);
231 aurelien 59
		exit;
230 delphine 60
	}
61
 
238 delphine 62
	private function obtenirDonnees($donnees = array()) {
63
		if ($this->onglet == 'illustrations') {
64
			$ill = new Illustrations();
65
			$donnees['img'] = $ill->obtenirDonnees($this->num_nom);
253 gduche 66
		} else if ($this->onglet == 'repartition') {
67
			$repartition = new Repartition($this->num_nom);
263 gduche 68
			$donnees['svg'] = $repartition->getUrlDataSvg();
69
			$donnees['png'] = $repartition->getUrlPng();
253 gduche 70
			$donnees['legende'] = $repartition->getLegende();
257 delphine 71
			$donnees['metadonnees'] = $repartition->getMetaDonnees();
238 delphine 72
		}
73
		return $donnees;
74
	}
75
 
216 delphine 76
	private function capturerParametres() {
238 delphine 77
		if (isset($_GET['num_nom'])) {
78
			$this->num_nom = $_GET['num_nom'];
79
		}
244 delphine 80
 
249 delphine 81
		if (isset($_GET['nom_retenu'])) {
244 delphine 82
			$this->nom_retenu = $_GET['nom_retenu'];
83
		}
84
 
216 delphine 85
		if (isset($_GET['nom'])) {
86
			$this->nom = $_GET['nom'];
87
		}
88
		if (isset($_GET['type_nom'])) {
89
			$this->type_nom = $_GET['type_nom'];
90
		}
91
 
92
		if (isset($_GET['niveau'])) {
93
			Registre::set('parametres.niveau', $_GET['niveau']);
94
		}
230 delphine 95
		if (isset($_GET['onglet'])) {
96
			$this->onglet = $_GET['onglet'];
97
		}
216 delphine 98
	}
219 delphine 99
 
100
	protected function recupererTableauConfig($param) {
101
		$tableau = array();
102
		$tableauPartiel = explode(',', Config::get($param));
103
		$tableauPartiel = array_map('trim', $tableauPartiel);
104
		foreach ($tableauPartiel as $champ) {
105
			if (strpos($champ, '=') === false) {
106
				$tableau[] = $champ;
107
			} else {
108
				list($cle, $val) = explode('=', $champ);
109
				$tableau[$cle] = $val;
110
			}
111
		}
112
		return $tableau;
113
	}
71 delphine 114
}
115
?>