Index: extensions/PHP_Optimisateur/files/functions.php
===================================================================
--- extensions/PHP_Optimisateur/files/functions.php	(revision 7988)
+++ extensions/PHP_Optimisateur/files/functions.php	(revision 7991)
@@ -2,5 +2,5 @@
 /***************************************\
 |			PHP OPTIMISATEUR			|
-|			   Version 1.0				|
+|			   Version 1.1				|
 \***************************************/
 
@@ -12,9 +12,5 @@
 	$replace = array ('e','E','a','A','i','I','u','U','o','O','c','C',',n','N','y','Y','_','');
 	
-	if ($renameORNOT) {
-		return preg_replace($search, $replace, $string);
-	} else {
-		return $string;
-	}
+	return preg_replace($search, $replace, $string);
 }
 
@@ -49,5 +45,5 @@
 	# si $dirs=true liste les dossiers plutot que les fichiers
 	global ${$array}; // Charge la tableau pour la sortie, déclaré à l'exterieur à cause de l'appel recursif de la fonction
-	$dir = rtrim($dir, '/'); // on vire un eventuel slash mis par l'utilisateur de la fonction a droite du repertoire
+	$dir = rtrim($dir, '/');
 
 	if (is_dir($dir)) {
@@ -56,11 +52,11 @@
 		exit;
 	}
-	while (($file = readdir($dh)) !== false ) { //boucle pour parcourir le repertoire
+	while (($file = readdir($dh)) !== false ) {
 		if ($file !== '.' && $file !== '..') {
 			$path = $dir.'/'.$file;
-			if (is_dir($path)) { //si on tombe sur un sous-repertoire
+			if (is_dir($path)) {
 				if($dirs) ${$array}[] = $path;
-				recursive_readdir($path, $array, $dirs); // appel recursif pour lire a l'interieur de ce sous-repertoire
-			} else { // si il s'agit d'un fichier
+				recursive_readdir($path, $array, $dirs);
+			} else {
 				if(!$dirs) ${$array}[] = $path;
 			}
@@ -69,3 +65,71 @@
 	closedir($dh);
 }
+
+// Parse le fichier de configuration
+function XMLParse($xml) {
+	$content = array();
+	foreach ($xml as $nom => $elem) { 
+		if (trim($elem) == '') { 
+			$content[$nom] = XMLParse($elem->children()); 
+		} else { 
+			$content[$nom] = utf8_encode(utf8_decode($elem));
+		}
+	}
+	return $content;
+}
+
+// Crée le fichier de configuration
+function XMLCreate($array, $level) {
+	$content = null;
+	foreach ($array as $nom => $elem) {
+		if (is_array($elem)) {
+			for($i=0;$i<=$level;$i++) $content .= "\t";
+			$content .= '<'.$nom.'>'."\n";
+			$content .= XMLCreate($elem, $level+1);
+			for($i=0;$i<=$level;$i++) $content .= "\t";
+			$content .= '</'.$nom.'>'."\n";
+		} else {
+			for($i=0;$i<=$level;$i++) $content .= "\t";
+			$content .= '<'.$nom.'>'.$elem.'</'.$nom.'>'."\n";
+		}
+	}
+	return $content;
+}
+
+// Convertit les booléens, entiers et flotants d'un tableau de 'string'
+function array_settype($array) {
+	foreach ($array as $key => $value) {
+		if (is_array($value)) {
+			$array[$key] = array_settype($value);
+		} else {
+			if ($value === 'true') {
+				$array[$key] = true;		
+			} else if ($value === 'false') {
+				$array[$key] = false;		
+			} else if (preg_match('#^([0-9]*)$#', $value)) {
+				settype($array[$key], 'int');		
+			} else if (preg_match('#^([0-9]*)(.|,)([0-9]*)$#', $value)) {
+				settype($array[$key], 'float');		
+			}
+		}
+	}
+		
+	return $array;
+}
+
+// Booléen vers français ou texte
+function bool_to_string($bool, $just_echo=0) {
+	# $just_echo pour pouvoir afficher un booléen tel quel
+	if (is_bool($bool)) {
+		if ($bool) {
+			if ($just_echo) return 'true';
+			else return 'oui';
+		} else {
+			if ($just_echo) return 'false';
+			else return 'non';
+		}
+	} else {
+		return $bool;
+	}
+}
 ?>
