Subversion Repositories Applications.gtt

Compare Revisions

Ignore whitespace Rev 9 → Rev 10

/trunk/classes/Controlleur.class.php
New file
0,0 → 1,61
<?php
 
class Controlleur {
public function executer($action)
{
if (preg_match('/^(.+?)(?:_(.+)|)$/', $action, $match)) {
$classe_action = 'GttAction'.ucfirst($match[1]);
}
$tab_actions = array();
if (isset($match[2])) {
preg_match_all('/(.+)(?:_|$)/', $match[2], $match_actions);
$tab_actions = $match_actions[1];
}
$fichier_action = GTT_CHEMIN_ACTION.$classe_action.'.class.php';
if (file_exists($fichier_action)) {
require_once $fichier_action;
$Action = new $classe_action;
foreach ($tab_actions as $action) {
// Vérification des données POST ou GET avant l'appel de l'action
if (isset($_POST) || isset($_GET)) {
$methode_verif = 'verifier'.ucfirst($action);
if (method_exists($Action, $methode_verif)) {
// Méthode "vérifier" spécifique à une action
$Action->$methode_verif($Action->getResultat());
}
}
// Execution de l'action
$Action->setSuivant(ucfirst($action));
}
$Action->demarrer();
$aso_principal['principal']['contenu_principal'] = $this->rendre($Action->getResultat());
$Resultats = $Action->getResultat();
$aso_principal['principal']['titre'] = $Resultats->getTitre();
$Resultats->setEspaces(array());
$Resultats->setSquelettes(array());
$Resultats->setDonnees(array());
$Resultats->ajouterEspace('Principal', 'principal');
$Resultats->ajouterSquelette('principal', 'principal.tpl.html');
$Resultats->ajouterDonnee('principal', $aso_principal['principal']);
return $this->rendre($Resultats);
}
}
public function rendre(Resultat $Resultats)
{
$contenu = '';
foreach ($Resultats->getEspaces() as $espace_de_nom) {
ob_start();
extract($GLOBALS['_GTT_']['i18n']['general'], EXTR_PREFIX_ALL, 'i18n_general');
extract($Resultats->getDonnees($espace_de_nom));
include_once GTT_CHEMIN_PRESENTATION.$Resultats->getSquelettes($espace_de_nom);
$contenu .= ob_get_contents();
ob_end_clean();
}
return $contenu;
}
}
?>