Subversion Repositories eFlore/Applications.eflore-consultation

Rev

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

Rev 16 Rev 27
Line 48... Line 48...
48
	 * Initialisation du controleur principal en fonction des paramêtres de l'url.
48
	 * Initialisation du controleur principal en fonction des paramêtres de l'url.
49
	 */
49
	 */
50
	public static function initialiser() {
50
	public static function initialiser() {
51
		self::verifierCreationInstance();
51
		self::verifierCreationInstance();
52
		self::gererSession();
52
		self::gererSession();
53
				
53
		
54
		if (isset($_GET['module'])) {
54
		self::capturerParametres();
55
			self::$parametres['module'] = $_GET['module'];
-
 
56
		}
-
 
57
		if (isset($_GET['action'])) {
-
 
58
			self::$parametres['action'] = $_GET['action'];
-
 
59
		}
-
 
60
		self::$parametres['url']->setRequete(array('action' => self::$parametres['action'], 'module' => self::$parametres['module']));
55
		self::$parametres['url']->setRequete(array('action' => self::$parametres['action'], 'module' => self::$parametres['module']));
61
				
-
 
62
		Registre::set('parametres', &self::$parametres);
56
		Registre::set('parametres', &self::$parametres);
-
 
57
		spl_autoload_register(array(get_class(), 'chargerClasse'));
Line 63... Line 58...
63
		
58
		
64
		$ClasseModule = self::$parametres['module'];
-
 
-
 
59
		self::executerModule();	
-
 
60
	}
65
		$action = self::$parametres['action'];
61
	
66
		// Nous vérifions que le module existe
62
	private static function verifierCreationInstance() {
67
		if (class_exists($ClasseModule)) {
63
		if (empty(self::$instance)) {
68
			$module = new $ClasseModule();
-
 
69
			$module->$action();
-
 
70
			self::fusionnerSortie($module->getSortie());
-
 
71
		} else {
-
 
72
			trigger_error("La classe du controleur '$ClasseModule' est introuvable.");
64
			self::$instance = new AppControleur();
73
		}
65
		}
Line 74... Line 66...
74
	}
66
	}
75
	
67
	
Line 80... Line 72...
80
			// Démarrage de la session
72
			// Démarrage de la session
81
			session_start();
73
			session_start();
82
		}
74
		}
83
	}
75
	}
Line -... Line 76...
-
 
76
	
-
 
77
	private static function capturerParametres() {
-
 
78
		if (isset($_GET['module'])) {
-
 
79
			self::$parametres['module'] = $_GET['module'];
-
 
80
		}
-
 
81
		if (isset($_GET['action'])) {
-
 
82
			self::$parametres['action'] = $_GET['action'];
-
 
83
		}
-
 
84
	}
-
 
85
	
-
 
86
	private static function chargerClasse($nom_classe) {
-
 
87
		$dossiers_classes = array(Config::get('chemin_modules').strtolower(self::$parametres['module']).DS);
-
 
88
		foreach ($dossiers_classes as $chemin) {
-
 
89
			$fichier_a_tester = $chemin.$nom_classe.'.php';
-
 
90
			if (file_exists($fichier_a_tester)) {
-
 
91
				include_once $fichier_a_tester;
-
 
92
				return null;
-
 
93
			}
-
 
94
		}
-
 
95
	}
-
 
96
	
-
 
97
	private static function executerModule() {
-
 
98
		$classeModule = self::$parametres['module'];
-
 
99
		$action = self::$parametres['action'];
-
 
100
		// Nous vérifions que le module existe
-
 
101
		if (class_exists($classeModule)) {
-
 
102
			$module = new $classeModule();
-
 
103
			$module->$action();
-
 
104
			self::fusionnerSortie($module->getSortie());
-
 
105
		} else {
-
 
106
			trigger_error("La classe du controleur '$classeModule' est introuvable.");
-
 
107
		}
-
 
108
	}
84
	
109
	
85
	/**
110
	/**
86
	 * Fusionne un tableau de sortie par défaut avec le tableau renvoyé par l'action du module.
111
	 * Fusionne un tableau de sortie par défaut avec le tableau renvoyé par l'action du module.
87
	 * @param array le tableau à fusionner
112
	 * @param array le tableau à fusionner
88
	 */
113
	 */
89
	private static function fusionnerSortie($sortie) {
114
	private static function fusionnerSortie($sortie) {
90
		self::$parametres['sortie'] = array_merge(self::$parametres['sortie'], $sortie);
115
		self::$parametres['sortie'] = array_merge(self::$parametres['sortie'], $sortie);
Line 91... Line -...
91
	}
-
 
92
	
-
 
93
	
-
 
94
	/**
-
 
95
	 * Vérifie si l'instance de classe à été crée, si non la crée.
-
 
96
	 */
-
 
97
	private static function verifierCreationInstance() {
-
 
98
		if (empty(self::$instance)) {
-
 
99
			self::$instance = new AppControleur();
-
 
100
		}
-
 
101
	}
116
	}
102
	
117
	
103
	/**
118
	/**
104
	 * Retourne le titre du contenu de l'application. 
119
	 * Retourne le titre du contenu de l'application. 
105
	 */
120
	 */