Subversion Repositories eFlore/Applications.eflore-consultation

Compare Revisions

Ignore whitespace Rev 26 → Rev 27

/trunk/controleurs/AppControleur.php
50,26 → 50,18
public static function initialiser() {
self::verifierCreationInstance();
self::gererSession();
if (isset($_GET['module'])) {
self::$parametres['module'] = $_GET['module'];
}
if (isset($_GET['action'])) {
self::$parametres['action'] = $_GET['action'];
}
self::capturerParametres();
self::$parametres['url']->setRequete(array('action' => self::$parametres['action'], 'module' => self::$parametres['module']));
Registre::set('parametres', &self::$parametres);
spl_autoload_register(array(get_class(), 'chargerClasse'));
$ClasseModule = self::$parametres['module'];
$action = self::$parametres['action'];
// Nous vérifions que le module existe
if (class_exists($ClasseModule)) {
$module = new $ClasseModule();
$module->$action();
self::fusionnerSortie($module->getSortie());
} else {
trigger_error("La classe du controleur '$ClasseModule' est introuvable.");
self::executerModule();
}
private static function verifierCreationInstance() {
if (empty(self::$instance)) {
self::$instance = new AppControleur();
}
}
82,6 → 74,39
}
}
private static function capturerParametres() {
if (isset($_GET['module'])) {
self::$parametres['module'] = $_GET['module'];
}
if (isset($_GET['action'])) {
self::$parametres['action'] = $_GET['action'];
}
}
private static function chargerClasse($nom_classe) {
$dossiers_classes = array(Config::get('chemin_modules').strtolower(self::$parametres['module']).DS);
foreach ($dossiers_classes as $chemin) {
$fichier_a_tester = $chemin.$nom_classe.'.php';
if (file_exists($fichier_a_tester)) {
include_once $fichier_a_tester;
return null;
}
}
}
private static function executerModule() {
$classeModule = self::$parametres['module'];
$action = self::$parametres['action'];
// Nous vérifions que le module existe
if (class_exists($classeModule)) {
$module = new $classeModule();
$module->$action();
self::fusionnerSortie($module->getSortie());
} else {
trigger_error("La classe du controleur '$classeModule' est introuvable.");
}
}
/**
* Fusionne un tableau de sortie par défaut avec le tableau renvoyé par l'action du module.
* @param array le tableau à fusionner
90,17 → 115,7
self::$parametres['sortie'] = array_merge(self::$parametres['sortie'], $sortie);
}
/**
* Vérifie si l'instance de classe à été crée, si non la crée.
*/
private static function verifierCreationInstance() {
if (empty(self::$instance)) {
self::$instance = new AppControleur();
}
}
/**
* Retourne le titre du contenu de l'application.
*/
public static function getMetaTitre() {