Subversion Repositories Applications.framework

Rev

Rev 109 | Rev 120 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 109 Rev 117
Line 32... Line 32...
32
		self::parserFichierIni(self::$parametres['fw_chemin'].sprintf(self::$parametres['fw_fichier_config'], ''));
32
		self::parserFichierIni(self::$parametres['fw_chemin'].sprintf(self::$parametres['fw_fichier_config'], ''));
Line 33... Line 33...
33
 
33
 
34
		// Chargement du fichier config.ini par défaut de l'application
34
		// Chargement du fichier config.ini par défaut de l'application
35
		$chemin_config_defaut_appli = self::$parametres['chemin_configurations'].sprintf(self::$parametres['fw_fichier_config'], '');
35
		$chemin_config_defaut_appli = self::$parametres['chemin_configurations'].sprintf(self::$parametres['fw_fichier_config'], '');
36
		self::parserFichierIni($chemin_config_defaut_appli);
36
		self::parserFichierIni($chemin_config_defaut_appli);
37
 
37
		
-
 
38
		// Chargement des fichiers config.ini contextuels
38
		// Chargement des fichiers config.ini contextuels
39
		
39
		if (PHP_SAPI == 'cli') {// mode console
40
		if (PHP_SAPI == 'cli') {// mode console
40
			foreach ($_SERVER['argv'] as $cle => $valeur) {
41
			foreach ($_SERVER['argv'] as $cle => $valeur) {
41
				if ($valeur == '-contexte') {
42
				if ($valeur == '-contexte') {
42
					chargerFichierContexte($_SERVER['argv'][($cle+1)]);
43
					chargerFichierContexte($_SERVER['argv'][($cle+1)]);
Line 47... Line 48...
47
			// Pour Papyrus
48
			// Pour Papyrus
48
			if (defined('PAP_VERSION')) {
49
			if (defined('PAP_VERSION')) {
49
				chargerFichierContexte('papyrus');
50
				chargerFichierContexte('papyrus');
50
			}
51
			}
51
			// Via le fichie .ini par défaut de l'appli
52
			// Via le fichie .ini par défaut de l'appli
52
			if (Config::existe('info.contexte')) {
53
			if (Config::existeValeur('info.contexte', self::$parametres)) {
53
				chargerFichierContexte(Config::get('info.contexte'));
54
				chargerFichierContexte(Config::get('info.contexte'));
54
			}
55
			}
-
 
56
			
55
			// Chargement du contexte présent dans le GET
57
			// Chargement du contexte présent dans le GET
56
			if (isset($_GET['contexte'])) {
58
			if (isset($_GET['contexte'])) {
57
				chargerFichierContexte($_GET['contexte']);
59
				chargerFichierContexte($_GET['contexte']);
58
			}
60
			}
-
 
61
			
59
			// Chargement du contexte présent dans le POST
62
			// Chargement du contexte présent dans le POST
60
			if (isset($_POST['contexte'])) {
63
			if (isset($_POST['contexte'])) {
61
				chargerFichierContexte($_POST['contexte']);
64
				chargerFichierContexte($_POST['contexte']);
62
			}
65
			}
63
		}
66
		}
Line 82... Line 85...
82
 
85
 
83
	private static function fusionner(array $ini) {
86
	private static function fusionner(array $ini) {
84
		self::$parametres = array_merge(self::$parametres, $ini);
87
		self::$parametres = array_merge(self::$parametres, $ini);
Line 85... Line -...
85
	}
-
 
86
 
-
 
87
	public static function charger($fichier_ini) {
-
 
88
		self::verifierCreationInstance();
-
 
89
		return self::parserFichierIni($fichier_ini);
-
 
90
	}
88
	}
91
 
-
 
92
	public static function get($param = null) {
-
 
93
		$retour = null;
89
 
94
		self::verifierCreationInstance();
90
	private static function getValeur($param, $config) {
95
		if ($param === null) {
91
		if ($param === null) {
-
 
92
			return null;
-
 
93
		} else {
-
 
94
			if (strpos($param, '.') !== false) {
-
 
95
				$pieces = explode('.', $param, 2);
-
 
96
	            if (strlen($pieces[0]) && strlen($pieces[1])) {
96
			$retour = self::$parametres;
97
	            	if (isset($config[$pieces[0]])) {
-
 
98
	                   if (is_array($config[$pieces[0]])) {
-
 
99
	                   		return self::getValeur($pieces[1], $config[$pieces[0]]);
-
 
100
	                   }
-
 
101
	                }
-
 
102
	            }
-
 
103
	    	} else {
-
 
104
	    		if (isset($config[$param])) {
-
 
105
	    			return $config[$param];
-
 
106
	    		}
97
		} else {
107
	    	}
98
			$retour = self::getValeur($param, self::$parametres);
-
 
99
		}
108
	    	return null;
100
		return $retour;
109
		}
101
	}
110
	}
102
 
-
 
103
	private static function getValeur($param, $config) {
-
 
104
		if (strpos($param, '.') !== false) {
-
 
105
			$pieces = explode('.', $param, 2);
-
 
106
            if (strlen($pieces[0]) && strlen($pieces[1])) {
-
 
107
            	if (isset($config[$pieces[0]])) {
-
 
108
                   if (is_array($config[$pieces[0]])) {
-
 
109
                   		return self::getValeur($pieces[1], $config[$pieces[0]]);
-
 
110
                   }
-
 
111
                }
-
 
112
            }
-
 
113
    	} else {
-
 
114
    		if (isset($config[$param])) {
-
 
115
    			return $config[$param];
-
 
116
    		}
-
 
117
    	}
-
 
118
    	return null;
-
 
119
	}
-
 
120
 
111
	
121
	public static function existe($param) {
-
 
122
		$retour = false;
112
	private static function existeValeur($param, $config) {
123
		self::verifierCreationInstance();
113
		$retour = false;
124
		if (self::getValeur($param, self::$parametres) !== null) {
114
		if (self::getValeur($param, $config) !== null) {
125
			$retour = true;
115
			$retour = true;
126
		}
116
		}
Line 172... Line 162...
172
	}
162
	}
Line 173... Line 163...
173
 
163
 
174
	private static function evaluerReferences(&$config, $cle) {
164
	private static function evaluerReferences(&$config, $cle) {
175
		if (preg_match_all('/{ref:([A-Za-z0-9_-]+)}/', $config[$cle], $correspondances,  PREG_SET_ORDER)) {
165
		if (preg_match_all('/{ref:([A-Za-z0-9_-]+)}/', $config[$cle], $correspondances,  PREG_SET_ORDER)) {
176
    		foreach ($correspondances as $ref) {
166
    		foreach ($correspondances as $ref) {
177
    			$config[$cle] = str_replace($ref[0], self::getValeur($ref[1], self::$parametres), $config[$cle]);
167
    			$config[$cle] = str_replace($ref[0], self::getValeur($ref[1], $config), $config[$cle]);
178
    		}
168
    		}
179
    	}
169
    	}
Line 180... Line 170...
180
	}
170
	}
181
 
171
 
182
	private static function evaluerPhp(&$config, $cle) {
172
	private static function evaluerPhp(&$config, $cle) {
183
		if (preg_match('/^php:(.+)$/', $config[$cle], $correspondances)) {
173
		if (preg_match('/^php:(.+)$/', $config[$cle], $correspondances)) {
184
    		eval('$config["'.$cle.'"] = '.$correspondances[1].';');
174
    		eval('$config["'.$cle.'"] = '.$correspondances[1].';');
-
 
175
    	}
-
 
176
	}
-
 
177
	
-
 
178
	public static function charger($fichier_ini) {
-
 
179
		self::verifierCreationInstance();
-
 
180
		return self::parserFichierIni($fichier_ini);
-
 
181
	}
-
 
182
 
-
 
183
	public static function get($param = null) {
-
 
184
		self::verifierCreationInstance();
-
 
185
		return self::getValeur($param, self::$parametres);;
-
 
186
	}
-
 
187
	
-
 
188
	public static function existe($param) {
-
 
189
		self::verifierCreationInstance();
185
    	}
190
		return self::existeValeur($param, self::$parametres);
186
	}
191
	}
187
}
192
}