bdd = $bdd; $this->bdd["table_prefix"] = array(); $this->CONFIG = isset($CONFIG) ? $CONFIG : array(); $this->PARAMS = array(); $this->xml_parser = new sxml(); $app_config_file = $this->path("mw_dir")."app/config.xml"; if(file_exists($app_config_file)){ $this->_load_config($app_config_file, $bdd); } if(($plugins = $this->plugins("ASC")) !== false){ foreach($plugins as $plugin_name => $plugin){ $app_config_file = $this->path("mw_dir")."plugins/".$plugin_name."/app/config.xml"; if(file_exists($app_config_file) && $plugin["installed"] && $plugin["enabled"]){ $this->_load_config($app_config_file, $bdd); } } $this->init_additional_get_params(); } else $this->erreur("impossible de lire les fichiers de configuration pour les plugins", true); } else $this->erreur("impossible de trouver le fichier de configuration pour l'installation", true); } public function _load_config($app_config_file, $bdd){ $this->xml_parser->parse(file_get_contents($app_config_file)); $app_config = $this->xml_parser->data["config"][0]; if(isset($app_config["subs"]["params"])){ foreach($app_config["subs"]["params"][0]["subs"] as $param_key => $param_elt){ $this->PARAMS[$param_key] = $param_elt[0]["data"]; } } if(isset($app_config["subs"]["config"])){ foreach($app_config["subs"]["config"][0]["subs"] as $config_key => $config_elt){ $this->CONFIG[$config_key] = $config_elt[0]["data"]; } } if(isset($app_config["subs"]["bdd"][0]["subs"]["table_prefix_code"])){ $this->add_table_prefix( array( $app_config["subs"]["bdd"][0]["subs"]["table_prefix_code"][0]["data"] => isset($bdd["table_prefix"]) ? $bdd["table_prefix"] : "" ) ); } if(isset($app_config["subs"]["actions"][0]["subs"]["module"])){ foreach($app_config["subs"]["actions"][0]["subs"]["module"] as $module_elt){ $module_name = $module_elt["attrs"]["name"]; if(!isset($this->actions[$module_name])) $this->actions[$module_name] = array( "controleurs" => array(), "module_allowed" => false, "is_public" => false ); if(isset($module_elt["subs"]["controleur"])){ foreach($module_elt["subs"]["controleur"] as $controleur_elt){ $controleur_name = $controleur_elt["attrs"]["name"]; if(!isset($this->actions[$module_name]["controleurs"][$controleur_name])) $this->actions[$module_name]["controleurs"][$controleur_name] = array( "als" => array(), "controleur_allowed" => false, "is_public" => false ); if(isset($controleur_elt["subs"]["al"])){ $al_index = 0; foreach($controleur_elt["subs"]["al"] as $al_elt){ $action_title = $al_elt["attrs"]["title"]; if(isset($al_elt["subs"]["action"])){ foreach($al_elt["subs"]["action"] as $action_elt){ if(!isset($this->actions[$module_name]["controleurs"][$controleur_name]["als"][$al_index])){ $this->actions[$module_name]["controleurs"][$controleur_name]["als"][$al_index] = array( "title" => $action_title, "action_allowed" => false, "is_public" => false, "actions" => array() ); } $this->actions[$module_name]["controleurs"][$controleur_name]["als"][$al_index]["actions"][] = $action_elt["attrs"]["name"]; } } $al_index++; } } } } } } } public function get_config_file(){ return $this->config_file; } public function set_config_file($config_file){ $this->config_file = $config_file; } public function get_PATHES(){ return $this->PATHES; } public function path($name){ return isset($this->PATHES[$name]) ? $this->PATHES[$name] : ""; } public function set_PATHES($PATHES){ foreach($PATHES as $path_name => $path_value){ if($path_value && substr($path_value, -1) != "/") $PATHES[$path_name] .= "/"; } $this->PATHES = $PATHES; } public function get_PARAMS(){ return $this->PARAMS; } public function param($name){ return isset($this->PARAMS[$name]) ? $this->PARAMS[$name] : ""; } public function get_CONFIG(){ return $this->CONFIG; } public function config($name){ return isset($this->CONFIG[$name]) ? $this->CONFIG[$name] : null; } public function set_config($config){ if(is_array($config)){ foreach($config as $key => $value) $this->CONFIG[$key] = $value; return true; } return false; } public function get_bdd(){ return $this->bdd; } public function bdd($name){ return isset($this->bdd[$name]) ? $this->bdd[$name] : null; } public function set_bdd($key, $value){ $this->bdd[$key] = $value; } public function bdd_ready(){ if(!$this->bdd("sgbd")) return "aucun sgbd defini"; $data = $this->data(); if(!$data) return "objet data non defini"; if(($res = $this->data_upgrade_required()) !== false){ if($res === true){ return "la base de donnees doit etre mise a jour"; } else return $res; } return true; } public function add_table_prefix($table_prefix){ if(is_array($table_prefix)){ foreach($table_prefix as $prefix_code => $prefix) $this->bdd["table_prefix"][$prefix_code] = $prefix; return true; } return false; } public function get_actions(){ return isset($this->actions) ? $this->actions : array(); } }