Subversion Repositories Sites.obs-saisons.fr

Rev

Rev 206 | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

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