_filename = $filename; else $this->_filename = ONYX."config/root.xml"; //On charge le fichier $xml = new DOMDocument(); $xml->load($this->_filename); $this->active = $xml->documentElement->getAttribute('active'); $this->root = $xml->documentElement->getAttribute('root'); $this->cache = $xml->documentElement->getAttribute('cache'); $this->configs = array(); foreach($xml->getElementsByTagName('config') as $value) { $this->configs[$value->getAttribute('match')] = new __config($value); } } function addConfig($config) { $this->configs[$config] = new __config(); } function addVar($name, $value, $config = "*") { $this->configs[$config]->vars[$name] = $value; } function addEnv($option, $value, $config = "*") { $this->configs[$config]->envs[$option] = $value; } function addModule($name, $config = "*") { $this->configs[$config]->modules[$name] = array(); } function addModuleOption($moduleName, $name, $value, $config = "*") { $this->configs[$config]->modules[$moduleName][$name] = $value; } //Fonction qui écrit le fichier function write() { $xml = new DOMDocument('1.0', 'UTF-8'); $xml->formatOutput = true; $xml_configs = $xml->createElement("configs"); $xml_configs->setAttribute("active", $this->active); $xml_configs->setAttribute("root", $this->root); $xml_configs->setAttribute("cache", $this->cache); foreach($this->configs as $match => $config) { $xml_config = $xml->createElement("config"); $xml_config->setAttribute("match", $match); //On écrit les variables chConfig::unparse_config($xml, $xml_config, $config->vars, "var", "name"); chConfig::unparse_config($xml, $xml_config, $config->envs, "env", "option"); //On écrit les modules if (is_array($config->modules)) foreach($config->modules as $mod_name => $module) { $xml_module = $xml->createElement("module"); $xml_module->setAttribute("name", $mod_name); chConfig::unparse_config($xml, $xml_module, $module, "option", "name"); $xml_config->appendChild($xml_module); } $xml_configs->appendChild($xml_config); } $xml->appendChild($xml_configs); $xml->save($this->_filename); } } ?>