Subversion Repositories eFlore/Applications.cel-consultation

Rev

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

Rev Author Line No. Line
2 aurelien 1
<?php
2
// declare(encoding='UTF-8');
3
/**
4
 * Classe mère des controleurs de l'application.
5
 * Elle repartie les demandes utilisateurs dans les différents modules, executent les actions et redistribue le code
6
 * html dans les différentes fonctions d'affichage.
7
 * C'est une Singleton.
8
 *
9
 * @category    PHP 5.2
10
 * @package     saisie
11
 * @author      Aurélien Peronnet <aurelien@tela-botanica.org>
12
 * @copyright   2010 Tela-Botanica
13
 * @license     GPL-v3 et CECILL-v2
14
 * @version     $Id: AppControleur.php 160 2010-09-13 13:10:41Z aurelien $
15
 */
16
 
17
class AppControleur extends Controleur {
18
 
19
    /**
20
     * Instance de la classe pointant sur elle même (pour le pattern singleton)
21
     */
22
    private static $instance = null;
23
 
24
    /**
25
     * Instance de l'utilisateur en cours
26
     */
27
   private static $utilisateur = null;
28
 
29
    /**
30
     * Paramètres
31
     */
32
    private static $parametres = array();
33
 
34
    /**
35
     * Constructeur vide
36
     */
37
    public function __construct() {
38
        $sortie = array('titre' => '', 'description' => '', 'tags' => '',
39
            'corps' => '', 'tete' => '', 'pied' => '', 'navigation' => '');
40
        $url = new Url(Config::get('url_base_index'));
41
        self::$parametres = array(  'module' => 'Image',
42
            'action' => 'executerActionParDefaut',
43
            'sortie' => $sortie,
44
            'url' => $url);
45
        parent::__construct();
46
    }
47
 
48
    /**
49
     * Initialisation du controleur principal en fonction des paramètres de l'url.
50
     */
51
    public static function initialiser() {
52
 
53
        self::verifierCreationInstance();
54
        //self::gererSession();
18 aurelien 55
        date_default_timezone_set('Europe/Paris');
2 aurelien 56
 
57
        if (isset($_GET['module'])) {
58
            self::$parametres['module'] = $_GET['module'];
59
        }
60
 
61
        self::$parametres['url']->setVariableRequete('module', self::$parametres['module']);
62
 
63
        if (isset($_GET['action'])) {
64
            self::$parametres['action'] = $_GET['action'];
65
        }
66
        self::$parametres['url']->setVariableRequete('action', self::$parametres['action']);
67
 
68
        $registre = Registre::getInstance();
69
        $registre->set('parametres', &self::$parametres);
70
 
71
        $ClasseModule = self::$parametres['module'];
72
        $action = self::$parametres['action'];
73
        $module = new $ClasseModule();
74
 
75
        $module->$action();
76
        self::fusionnerSortie($module->getSortie());
77
    }
78
 
79
    private static function gererSession() {
80
        if (Config::get('session_demarrage')) {
81
            // Attribution d'un nom à la session
82
            session_name(Config::get('session_nom'));
83
            // Démarrage de la session
84
            session_start();
85
        }
86
    }
87
 
88
    /**
89
     * Fusionne un tableau de sortie par défaut avec le tableau renvoyé par l'action du module.
90
     * @param array le tableauàfusionner
91
     */
92
    private static function fusionnerSortie($sortie) {
93
        self::$parametres['sortie'] = array_merge(self::$parametres['sortie'], $sortie);
94
    }
95
 
96
 
97
    /**
98
     * Vérifie si l'instance de classe été crée, si non la crée.
99
     */
100
    private static function verifierCreationInstance() {
101
        if (empty(self::$instance)) {
102
            self::$instance = new AppControleur();
103
        }
104
    }
105
 
106
    public static function getInstance() {
107
    	self::verifierCreationInstance();
108
    	return self::$instance;
109
    }
110
 
111
    /**
112
     * Retourne le titre du contenu de l'application.
113
     */
114
    public static function getMetaTitre() {
115
 
116
        $sortie = self::$parametres['sortie']['titre'];
117
        if (Config::get('sortie_encodage') != Config::get('appli_encodage')) {
118
            $sortie = mb_convert_encoding($sortie, Config::get('sortie_encodage'), Config::get('appli_encodage'));
119
        }
120
        return $sortie;
121
    }
122
 
123
    /**
124
     * Retourne la description du contenu de l'application.
125
     */
126
    public static function getMetaDescription() {
127
 
128
        $sortie = self::$parametres['sortie']['description'];
129
        if (Config::get('sortie_encodage') != Config::get('appli_encodage')) {
130
            $sortie = mb_convert_encoding($sortie, Config::get('sortie_encodage'), Config::get('appli_encodage'));
131
        }
132
        return $sortie;
133
    }
134
 
135
    /**
136
     * Retourne les mots-clés (tags) du contenu de l'application.
137
     */
138
    public static function getMetaTags() {
139
        $sortie = self::$parametres['sortie']['tags'];
140
        if (Config::get('sortie_encodage') != Config::get('appli_encodage')) {
141
            $sortie = mb_convert_encoding($sortie, Config::get('sortie_encodage'), Config::get('appli_encodage'));
142
        }
143
        return $sortie;
144
    }
145
 
146
    /**
147
     * Retourne le contenu du corps de l'application.
148
     */
149
    public static function getContenuCorps() {
150
        $sortie = self::$parametres['sortie']['corps'];
151
        if (Config::get('sortie_encodage') != Config::get('appli_encodage')) {
152
            $sortie = mb_convert_encoding($sortie, Config::get('sortie_encodage'), Config::get('appli_encodage'));
153
        }
154
        return $sortie;
155
    }
156
 
157
    /**
158
     * Retourne le contenu de la tête de l'application.
159
     */
160
    public static function getContenuTete() {
161
        $sortie = self::$parametres['sortie']['tete'];
162
        if (Config::get('sortie_encodage') != Config::get('appli_encodage')) {
163
            $sortie = mb_convert_encoding($sortie, Config::get('sortie_encodage'), Config::get('appli_encodage'));
164
        }
165
        return $sortie;
166
    }
167
 
168
    /**
169
     * Retourne le contenu du pied de l'application.
170
     */
171
    public static function getContenuPied() {
172
        $sortie = self::$parametres['sortie']['pied'];
173
        if (Config::get('sortie_encodage') != Config::get('appli_encodage')) {
174
            $sortie = mb_convert_encoding($sortie, Config::get('sortie_encodage'), Config::get('appli_encodage'));
175
        }
176
        return $sortie;
177
    }
178
 
179
    /**
180
     * Retourne les éléments de navigation de l'application.
181
     */
182
    public static function getContenuNavigation() {
183
 
184
        $sortie = self::$parametres['sortie']['navigation'];
185
        if (Config::get('sortie_encodage') != Config::get('appli_encodage')) {
186
            $sortie = mb_convert_encoding($sortie, Config::get('sortie_encodage'), Config::get('appli_encodage'));
187
        }
188
        return $sortie;
189
    }
190
 
191
    /**
192
     * Retourne les chronos pris dans l'appli
193
     */
194
    public static function getChrono() {
195
        $sortie = '';
196
        if (Config::get('chronometrage')) {
197
            $chrono = Chronometre::afficherChrono();
198
            $sortie = mb_convert_encoding($chrono, Config::get('sortie_encodage'), Config::get('appli_encodage'));
199
        }
200
        return $sortie;
201
    }
202
 
203
    /**
204
     * Retourne les messages d'exceptions et d'erreurs.
205
     */
206
    public static function getExceptions() {
207
        $sortie = (Config::get('fw_debogage')) ? GestionnaireException::getExceptions() : '';
208
        if (Config::get('sortie_encodage') != Config::get('appli_encodage')) {
209
            $sortie = mb_convert_encoding($sortie, Config::get('sortie_encodage'), Config::get('appli_encodage'));
210
        }
211
        return $sortie;
212
    }
213
}
214
?>