14 function mw_app($path_file, $DO_SETUP = true){
15 $this->DO_SETUP = $DO_SETUP;
16 $this->path_file = $path_file;
17 $this->pathes = array();
18 $this->config_file = "";
19 $this->config = array();
24 function set_env(&$env){
33 if(!$this->init_pathes()) return false;
34 if(!$this->init_config()) return false;
35 if(!$this->init_env()) return false;
36 if($this->config_file) return true;
37 if($this->DO_SETUP) $this->setup();
41 function init_pathes(){
42 if(($n = strpos($_SERVER["REQUEST_URI"], "?")) !== false){
43 $_SERVER["REQUEST_URI"] = substr($_SERVER["REQUEST_URI"], 0, $n);
45 $web_path = explode("/", preg_replace('#/+#','/',$_SERVER["REQUEST_URI"]));
46 $this->pathes["web"] = "";
47 for($i = 0; $i < count($web_path) - 1; $i++) $this->pathes["web"] .= $web_path[$i]."/";
50 || !file_exists($this->path_file)
52 $this->error("le fichier des chemins est introuvable");
55 require_once $this->path_file;
60 $this->erreur("variable PATHES non defini");
63 foreach($PATHES as $path_name => $path_value){
64 $this->pathes[$path_name] = $path_value;
65 $this->pathes[$path_name] .= $path_value && substr($path_value, -1) != "/" ? "/" : "";
68 !isset($this->pathes["mw_dir"])
69 || !isset($this->pathes["mw_path"])
70 || !isset($this->pathes["content"])
72 $this->error("variable PATHES incomplete");
76 !file_exists($this->pathes["content"])
77 || !is_dir($this->pathes["content"])
79 $this->error("dossier content introuvable");
82 if(!is_writable($this->pathes["content"])){
83 $this->error("Php ne peut pas ecrire dans le dossier content");
89 function init_config(){
90 if(file_exists($config_file = $this->pathes["content"]."config/config.php")){
91 $this->config_file = $config_file;
92 require_once $this->config_file;
97 foreach($CONFIG as $config_name => $config_value){
98 $this->config[$config_name] = $config_value;
105 foreach($bdd as $bdd_key => $bdd_value){
106 $this->bdd[$bdd_key] = $bdd_value;
111 if(!$this->DO_SETUP){
112 $this->error("fichier config.php manquant");
121 !($sxml_class_file = (file_exists($this->pathes["mw_dir"]."libs/sxml.php") ? $this->pathes["mw_dir"]."libs/sxml.php" : ""))
122 || !($empty_class_file = (file_exists($this->pathes["mw_dir"]."libs/empty_class.php") ? $this->pathes["mw_dir"]."libs/empty_class.php" : ""))
123 || !($env_class_file = (file_exists($this->pathes["mw_dir"]."env/mw_env.php") ? $this->pathes["mw_dir"]."env/mw_env.php" : ""))
125 $this->error("des fichiers sont introuvables. impossible d'initialiser l'environnement");
128 if(!class_exists("sxml")) require_once $sxml_class_file;
129 if(!class_exists("empty_class")) require_once $empty_class_file;
130 if(!class_exists("mw_env")) require_once $env_class_file;
132 !class_exists("sxml")
133 || !class_exists("empty_class")
134 || !class_exists("mw_env")
136 $this->error("des classes sont introuvables. impossible d'initialiser l'environnement");
139 $env = new mw_env(true);
140 $this->set_env($env);
141 $env->load_modules($this->pathes["mw_dir"], "env/modules/");
142 $env->set_config_file($this->config_file);
143 $env->set_PATHES($this->pathes);
144 $env->init_plugins();
145 $env->load_config($this->bdd, $this->config);
150 function run($etat = "", $params = array(), $valid_role = true){
152 if(!is_callable(array($env, "run"))) return false;
156 : (isset($_GET[$env->param("e")]) ? $_GET[$env->param("e")] : ""),
165 if($env->etat_is_valid()){
166 $template = $env->get_template();
167 $layout = $env->init_layout();
168 $template->render_layout($layout);
174 $etat = isset($_GET[$env->param("e")]) ? $_GET[$env->param("e")] : "install";
175 $env->run($etat, array(), false);
180 function error($content){
181 $this->error = $content;
184 function show_error(){