Subversion Repositories Applications.framework

Rev

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

Rev 182 Rev 187
Line 165... Line 165...
165
	 * analyse un tableau de paramètres
165
	 * analyse un tableau de paramètres
166
	 * @param array $config le tableau de paramètres
166
	 * @param array $config le tableau de paramètres
167
	 * @return array le tableau analysé
167
	 * @return array le tableau analysé
168
	 */
168
	 */
169
	private static function analyserTableauIni($config = array()) {
169
	private static function analyserTableauIni($config = array()) {
170
		foreach ($config as $cle => $valeur) {
170
		foreach ($config as $cle => &$valeur) {
171
			if (is_array($valeur)) {
171
			if (is_array($valeur)) {
172
				$config[$cle] = self::analyserTableauIni($valeur);
172
				$config[$cle] = self::analyserTableauIni($valeur);
173
			} else {
173
			} else {
174
				self::evaluerReferences($config, $cle);
174
				self::evaluerReferences($config, $cle);
175
				self::evaluerPhp($config, $cle);
175
				self::evaluerPhp($config, $cle);
Line 189... Line 189...
189
	private static function evaluerCle(&$config, $cle, $valeur) {
189
	private static function evaluerCle(&$config, $cle, $valeur) {
190
		if (strpos($cle, '.') !== false) {
190
		if (strpos($cle, '.') !== false) {
191
			unset($config[$cle]);
191
			unset($config[$cle]);
192
			$pieces = explode('.', $cle, 2);
192
			$pieces = explode('.', $cle, 2);
193
			if (strlen($pieces[0]) && strlen($pieces[1])) {
193
			if (strlen($pieces[0]) && strlen($pieces[1])) {
194
				if (!isset($config[$pieces[0]])) {
194
				if (isset($config[$pieces[0]]) && !is_array($config[$pieces[0]])) {
195
					if ($pieces[0] === '0' && !empty($config)) {
-
 
196
						// convert the current values in $config into an array
195
					$m = "Ne peut pas créer de sous-clé pour '{$pieces[0]}' car la clé existe déjà";
197
						$config = array($pieces[0] => $config);
196
					trigger_error($m, E_USER_WARNING);
198
					} else {
197
				} else {
199
						$config[$pieces[0]] = array();
198
					$config[$pieces[0]][$pieces[1]] = $valeur;
200
					}
-
 
201
				} elseif (!is_array($config[$pieces[0]])) {
-
 
202
					throw new ErrorException("Ne peut pas créer de sous-clé pour '{$pieces[0]}' car la clé existe déjà");
199
					$config[$pieces[0]] = self::evaluerCle($config[$pieces[0]], $pieces[1], $valeur);
203
				}
200
				}
204
				$config[$pieces[0]] = self::evaluerCle($config[$pieces[0]], $pieces[1], $valeur);
-
 
205
			} else {
201
			} else {
206
				throw new ErrorException("Clé invalide '$cle'");
202
				$m = "Clé invalide '$cle'";
-
 
203
				trigger_error($m, E_USER_WARNING);
207
			}
204
			}
208
		} else {
205
		} else {
209
			$config[$cle] = $valeur;
206
			$config[$cle] = $valeur;
210
		}
207
		}
211
		return $config;
208
		return $config;