Subversion Repositories Sites.obs-saisons.fr

Rev

Rev 64 | Rev 207 | Go to most recent revision | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 64 Rev 73
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' => 'Station',
41
        self::$parametres = array(  'module' => 'Station',
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
        self::gererUtilisateur();
55
        self::gererUtilisateur();
56
               
56
               
57
        if (isset($_GET['module'])) {
57
        if (isset($_GET['module'])) {
58
            self::$parametres['module'] = $_GET['module'];
58
            self::$parametres['module'] = $_GET['module'];
59
        }
59
        }
60
        self::$parametres['url']->setVariableRequete('module', self::$parametres['module']);
60
        self::$parametres['url']->setVariableRequete('module', self::$parametres['module']);
61
        if (isset($_GET['action'])) {
61
        if (isset($_GET['action'])) {
62
            self::$parametres['action'] = $_GET['action'];
62
            self::$parametres['action'] = $_GET['action'];
63
        }
63
        }
64
        self::$parametres['url']->setVariableRequete('action', self::$parametres['action']);
64
        self::$parametres['url']->setVariableRequete('action', self::$parametres['action']);
65
                       
65
                       
66
        $registre = Registre::getInstance();
66
        $registre = Registre::getInstance();
67
        $registre->set('parametres', &self::$parametres);
67
        $registre->set('parametres', &self::$parametres);
68
               
68
               
69
        $ClasseModule = self::$parametres['module'];
69
        $ClasseModule = self::$parametres['module'];
70
        $action = self::$parametres['action'];
70
        $action = self::$parametres['action'];
71
        
71
        
72
        $module = new $ClasseModule();        
72
        $module = new $ClasseModule();        
73
        $module->$action();
73
        $module->$action();
-
 
74
        
-
 
75
    	if(!self::utilisateurEstIdentifie()) {
-
 
76
	    	self::afficherFormulaireIdentification();
-
 
77
	    	return;
-
 
78
	    }
74
        
79
        
75
        self::fusionnerSortie($module->getSortie());
80
        self::fusionnerSortie($module->getSortie());
76
    }
81
    }
77
   
82
   
78
    private static function gererSession() {
83
    private static function gererSession() {
79
        if (Config::get('session_demarrage')) {
84
        if (Config::get('session_demarrage')) {
80
            // Attribution d'un nom à la session
85
            // Attribution d'un nom à la session
81
            session_name(Config::get('session_nom'));
86
            session_name(Config::get('session_nom'));
82
            // Démarrage de la session
87
            // Démarrage de la session
83
            session_start();
88
            session_start();
84
        }
89
        }
85
    }
90
    }
86
    
91
    
87
    private static function gererUtilisateur() {
92
    private static function gererUtilisateur() {
88
    	
93
    	
89
    	if(Config::get('identification') == true) {
94
    	if(Config::get('identification') == true) {
90
	    	$classe_utilisateur = Config::get('objet_utilisateur');
95
	    	$classe_utilisateur = Config::get('objet_utilisateur');
91
	    	
96
	    	
92
	    	if(!class_exists($classe_utilisateur)) {
97
	    	if(!class_exists($classe_utilisateur)) {
93
	    		trigger_error('Aucune classe n\'a été définie pour gérer les utilisateurs', E_USER_ERROR);
98
	    		trigger_error('Aucune classe n\'a été définie pour gérer les utilisateurs', E_USER_ERROR);
94
	    	}
99
	    	}
95
	    	
100
	    	
96
	    	self::$utilisateur = new $classe_utilisateur();
101
	    	self::$utilisateur = new $classe_utilisateur();
97
    	}
102
    	}
98
    }
103
    }
99
    
104
    
100
    public static function getUtilisateur() {
105
    public static function getUtilisateur() {
101
    	
106
    	
102
    	if(self::$utilisateur == null) {
107
    	if(self::$utilisateur == null) {
103
    		self::gererUtilisateur();
108
    		self::gererUtilisateur();
104
    	}
109
    	}
105
    	
110
    	
106
    	return self::$utilisateur;
111
    	return self::$utilisateur;
107
    }
112
    }
-
 
113
    
-
 
114
	public static function utilisateurEstIdentifie() {
-
 
115
    	
-
 
116
    	return self::getUtilisateur()->estIdentifie();
-
 
117
    }
-
 
118
    
-
 
119
    private static function afficherFormulaireIdentification() {
-
 
120
    	
-
 
121
    	$donnees['formulaire_identification'] = self::getUtilisateur()->getFormulaireidentification();
-
 
122
    	$donnees['formulaire_inscription'] = self::getUtilisateur()->getFormulaireInscription();
-
 
123
    	$formulaire = self::$instance->getVue('formulaires/identification', $donnees);
-
 
124
    	self::$parametres['sortie']['corps'] = $formulaire;
-
 
125
    }
108
    
126
    
109
    public static function getIdUtilisateur() {
127
    public static function getIdUtilisateur() {
110
    	return self::getUtilisateur()->getIdentifiantNumerique();
128
    	return self::getUtilisateur()->getIdentifiantNumerique();
111
    }
129
    }
112
   
130
   
113
    /**
131
    /**
114
     * Fusionne un tableau de sortie par défaut avec le tableau renvoyé par l'action du module.
132
     * Fusionne un tableau de sortie par défaut avec le tableau renvoyé par l'action du module.
115
     * @param array le tableauàfusionner
133
     * @param array le tableauàfusionner
116
     */
134
     */
117
    private static function fusionnerSortie($sortie) {
135
    private static function fusionnerSortie($sortie) {
118
        self::$parametres['sortie'] = array_merge(self::$parametres['sortie'], $sortie);
136
        self::$parametres['sortie'] = array_merge(self::$parametres['sortie'], $sortie);
119
    }
137
    }
120
   
138
   
121
   
139
   
122
    /**
140
    /**
123
     * Vérifie si l'instance de classe été crée, si non la crée.
141
     * Vérifie si l'instance de classe été crée, si non la crée.
124
     */
142
     */
125
    private static function verifierCreationInstance() {
143
    private static function verifierCreationInstance() {
126
        if (empty(self::$instance)) {
144
        if (empty(self::$instance)) {
127
            self::$instance = new AppControleur();
145
            self::$instance = new AppControleur();
128
        }
146
        }
129
    }
147
    }
130
    
148
    
131
    public static function getInstance() {
149
    public static function getInstance() {
132
    	self::verifierCreationInstance();
150
    	self::verifierCreationInstance();
133
    	return self::$instance;
151
    	return self::$instance;
134
    }
152
    }
135
   
153
   
136
    /**
154
    /**
137
     * Retourne le titre du contenu de l'application.
155
     * Retourne le titre du contenu de l'application.
138
     */
156
     */
139
    public static function getMetaTitre() {
157
    public static function getMetaTitre() {
140
        $sortie = self::$parametres['sortie']['titre'];
158
        $sortie = self::$parametres['sortie']['titre'];
141
        if (Config::get('sortie_encodage') != Config::get('appli_encodage')) {
159
        if (Config::get('sortie_encodage') != Config::get('appli_encodage')) {
142
            $sortie = mb_convert_encoding($sortie, Config::get('sortie_encodage'), Config::get('appli_encodage'));
160
            $sortie = mb_convert_encoding($sortie, Config::get('sortie_encodage'), Config::get('appli_encodage'));
143
        }
161
        }
144
        return $sortie;
162
        return $sortie;
145
    }
163
    }
146
   
164
   
147
    /**
165
    /**
148
     * Retourne la description du contenu de l'application.
166
     * Retourne la description du contenu de l'application.
149
     */
167
     */
150
    public static function getMetaDescription() {
168
    public static function getMetaDescription() {
151
        $sortie = self::$parametres['sortie']['description'];
169
        $sortie = self::$parametres['sortie']['description'];
152
        if (Config::get('sortie_encodage') != Config::get('appli_encodage')) {
170
        if (Config::get('sortie_encodage') != Config::get('appli_encodage')) {
153
            $sortie = mb_convert_encoding($sortie, Config::get('sortie_encodage'), Config::get('appli_encodage'));
171
            $sortie = mb_convert_encoding($sortie, Config::get('sortie_encodage'), Config::get('appli_encodage'));
154
        }
172
        }
155
        return $sortie;
173
        return $sortie;
156
    }
174
    }
157
   
175
   
158
    /**
176
    /**
159
     * Retourne les mots-clés (tags) du contenu de l'application.
177
     * Retourne les mots-clés (tags) du contenu de l'application.
160
     */
178
     */
161
    public static function getMetaTags() {
179
    public static function getMetaTags() {
162
        $sortie = self::$parametres['sortie']['tags'];
180
        $sortie = self::$parametres['sortie']['tags'];
163
        if (Config::get('sortie_encodage') != Config::get('appli_encodage')) {
181
        if (Config::get('sortie_encodage') != Config::get('appli_encodage')) {
164
            $sortie = mb_convert_encoding($sortie, Config::get('sortie_encodage'), Config::get('appli_encodage'));
182
            $sortie = mb_convert_encoding($sortie, Config::get('sortie_encodage'), Config::get('appli_encodage'));
165
        }
183
        }
166
        return $sortie;
184
        return $sortie;
167
    }
185
    }
168
   
186
   
169
    /**
187
    /**
170
     * Retourne le contenu du corps de l'application.
188
     * Retourne le contenu du corps de l'application.
171
     */
189
     */
172
    public static function getContenuCorps() {
190
    public static function getContenuCorps() {
173
        $sortie = self::$parametres['sortie']['corps'];
191
        $sortie = self::$parametres['sortie']['corps'];
174
        if (Config::get('sortie_encodage') != Config::get('appli_encodage')) {
192
        if (Config::get('sortie_encodage') != Config::get('appli_encodage')) {
175
            $sortie = mb_convert_encoding($sortie, Config::get('sortie_encodage'), Config::get('appli_encodage'));
193
            $sortie = mb_convert_encoding($sortie, Config::get('sortie_encodage'), Config::get('appli_encodage'));
176
        }
194
        }
177
        return $sortie;
195
        return $sortie;
178
    }
196
    }
179
   
197
   
180
    /**
198
    /**
181
     * Retourne le contenu de la tête de l'application.
199
     * Retourne le contenu de la tête de l'application.
182
     */
200
     */
183
    public static function getContenuTete() {
201
    public static function getContenuTete() {
184
        $sortie = self::$parametres['sortie']['tete'];
202
        $sortie = self::$parametres['sortie']['tete'];
185
        if (Config::get('sortie_encodage') != Config::get('appli_encodage')) {
203
        if (Config::get('sortie_encodage') != Config::get('appli_encodage')) {
186
            $sortie = mb_convert_encoding($sortie, Config::get('sortie_encodage'), Config::get('appli_encodage'));
204
            $sortie = mb_convert_encoding($sortie, Config::get('sortie_encodage'), Config::get('appli_encodage'));
187
        }
205
        }
188
        return $sortie;
206
        return $sortie;
189
    }
207
    }
190
    
208
    
191
    /**
209
    /**
192
     * Retourne le contenu des styles de l'application.
210
     * Retourne le contenu des styles de l'application.
193
     */
211
     */
194
    public static function getContenuStyle() {
212
    public static function getContenuStyle() {
195
        $sortie = self::$parametres['sortie']['tete'];
213
        $sortie = self::$parametres['sortie']['tete'];
196
        if (Config::get('sortie_encodage') != Config::get('appli_encodage')) {
214
        if (Config::get('sortie_encodage') != Config::get('appli_encodage')) {
197
            $sortie = mb_convert_encoding($sortie, Config::get('sortie_encodage'), Config::get('appli_encodage'));
215
            $sortie = mb_convert_encoding($sortie, Config::get('sortie_encodage'), Config::get('appli_encodage'));
198
        }
216
        }
199
        return $sortie;
217
        return $sortie;
200
    }
218
    }
201
    
219
    
202
    /**
220
    /**
203
     * Retourne le contenu des script de l'application.
221
     * Retourne le contenu des script de l'application.
204
     */
222
     */
205
	public static function getContenuScript() {
223
	public static function getContenuScript() {
206
        $sortie = self::$parametres['sortie']['script'];
224
        $sortie = self::$parametres['sortie']['script'];
207
        if (Config::get('sortie_encodage') != Config::get('appli_encodage')) {
225
        if (Config::get('sortie_encodage') != Config::get('appli_encodage')) {
208
            $sortie = mb_convert_encoding($sortie, Config::get('sortie_encodage'), Config::get('appli_encodage'));
226
            $sortie = mb_convert_encoding($sortie, Config::get('sortie_encodage'), Config::get('appli_encodage'));
209
        }
227
        }
210
        return $sortie;
228
        return $sortie;
211
    }
229
    }
212
   
230
   
213
    /**
231
    /**
214
     * Retourne le contenu du pied de l'application.
232
     * Retourne le contenu du pied de l'application.
215
     */
233
     */
216
    public static function getContenuPied() {
234
    public static function getContenuPied() {
217
        $sortie = self::$parametres['sortie']['pied'];
235
        $sortie = self::$parametres['sortie']['pied'];
218
        if (Config::get('sortie_encodage') != Config::get('appli_encodage')) {
236
        if (Config::get('sortie_encodage') != Config::get('appli_encodage')) {
219
            $sortie = mb_convert_encoding($sortie, Config::get('sortie_encodage'), Config::get('appli_encodage'));
237
            $sortie = mb_convert_encoding($sortie, Config::get('sortie_encodage'), Config::get('appli_encodage'));
220
        }
238
        }
221
        return $sortie;
239
        return $sortie;
222
    }
240
    }
223
   
241
   
224
    /**
242
    /**
225
     * Retourne les éléments de navigation de l'application.
243
     * Retourne les éléments de navigation de l'application.
226
     */
244
     */
227
    public static function getContenuNavigation() {
245
    public static function getContenuNavigation() {
228
        	
246
        	
229
        $sortie = self::$parametres['sortie']['navigation'];
247
        $sortie = self::$parametres['sortie']['navigation'];
230
        if (Config::get('sortie_encodage') != Config::get('appli_encodage')) {
248
        if (Config::get('sortie_encodage') != Config::get('appli_encodage')) {
231
            $sortie = mb_convert_encoding($sortie, Config::get('sortie_encodage'), Config::get('appli_encodage'));
249
            $sortie = mb_convert_encoding($sortie, Config::get('sortie_encodage'), Config::get('appli_encodage'));
232
        }
250
        }
233
        return $sortie;
251
        return $sortie;
234
    }
252
    }
235
   
253
   
236
    /**
254
    /**
237
     * Retourne les chronos pris dans l'appli
255
     * Retourne les chronos pris dans l'appli
238
     */
256
     */
239
    public static function getChrono() {
257
    public static function getChrono() {
240
        $sortie = '';
258
        $sortie = '';
241
        if (Config::get('chronometrage')) {
259
        if (Config::get('chronometrage')) {
242
            $chrono = Chronometre::afficherChrono();
260
            $chrono = Chronometre::afficherChrono();
243
            $sortie = mb_convert_encoding($chrono, Config::get('sortie_encodage'), Config::get('appli_encodage'));
261
            $sortie = mb_convert_encoding($chrono, Config::get('sortie_encodage'), Config::get('appli_encodage'));
244
        }
262
        }
245
        return $sortie;
263
        return $sortie;
246
    }
264
    }
247
   
265
   
248
    /**
266
    /**
249
     * Retourne les messages d'exceptions et d'erreurs.
267
     * Retourne les messages d'exceptions et d'erreurs.
250
     */
268
     */
251
    public static function getExceptions() {
269
    public static function getExceptions() {
252
        $sortie = (Config::get('fw_debogage')) ? GestionnaireException::getExceptions() : '';
270
        $sortie = (Config::get('fw_debogage')) ? GestionnaireException::getExceptions() : '';
253
        if (Config::get('sortie_encodage') != Config::get('appli_encodage')) {
271
        if (Config::get('sortie_encodage') != Config::get('appli_encodage')) {
254
            $sortie = mb_convert_encoding($sortie, Config::get('sortie_encodage'), Config::get('appli_encodage'));
272
            $sortie = mb_convert_encoding($sortie, Config::get('sortie_encodage'), Config::get('appli_encodage'));
255
        }
273
        }
256
        return $sortie;
274
        return $sortie;
257
    }    
275
    }    
258
} 
-
 
259
276
}
-
 
277
 
-
 
278
?>
-
 
279
260
280