- require $sxml_class_file;
- require $empty_class_file;
- require $env_class_file;
- $env = new mw_env(true);
- $this->set_env($env);
- $env->load_modules($PATHES["mw_dir"], "env/modules/");
- $env->set_config_file($config_file);
- $env->set_PATHES($PATHES);
- $env->init_plugins();
- $env->load_config($bdd, $CONFIG);
- $env->init();
- }
- return $this->env();
- }
-
- function run($etat = ""){
+ $this->error("variable PATHES non defini");
+ return false;
+ }
+ foreach($PATHES as $path_name => $path_value){
+ $this->pathes[$path_name] = $path_value;
+ $this->pathes[$path_name] .= $path_value && substr($path_value, -1) != "/" ? "/" : "";
+ }
+ if(
+ !isset($this->pathes["mw_dir"])
+ || !isset($this->pathes["mw_path"])
+ || !isset($this->pathes["content"])
+ ){
+ $this->error("variable PATHES incomplete");
+ return false;
+ }
+ if(
+ !file_exists($this->pathes["content"])
+ || !is_dir($this->pathes["content"])
+ ){
+ $this->error("dossier content introuvable");
+ return false;
+ }
+ if(
+ !is_writable($this->pathes["content"])
+ || !is_writable($this->pathes["content"]."config")
+ || !is_writable($this->pathes["content"]."data")
+ ){
+ $this->error("Php ne peut pas ecrire dans le dossier content");
+ return false;
+ }
+ return true;
+ }
+
+ function init_config(){
+ if(file_exists($config_file = $this->pathes["content"]."config/config.php")){
+ $this->config_file = $config_file;
+ require_once $this->config_file;
+ if(
+ isset($CONFIG)
+ && is_array($CONFIG)
+ ){
+ foreach($CONFIG as $config_name => $config_value){
+ $this->config[$config_name] = $config_value;
+ }
+ }
+ if(
+ isset($bdd)
+ && is_array($bdd)
+ ){
+ foreach($bdd as $bdd_key => $bdd_value){
+ $this->bdd[$bdd_key] = $bdd_value;
+ }
+ }
+ }
+ else{
+ if(!$this->DO_INSTALL){
+ $this->error("fichier config.php manquant");
+ return false;
+ }
+ }
+ return true;
+ }
+
+ function init_env(){
+ if(
+ !($sxml_class_file = (file_exists($this->pathes["mw_dir"]."libs/sxml.php") ? $this->pathes["mw_dir"]."libs/sxml.php" : ""))
+ || !($empty_class_file = (file_exists($this->pathes["mw_dir"]."libs/empty_class.php") ? $this->pathes["mw_dir"]."libs/empty_class.php" : ""))
+ || !($env_class_file = (file_exists($this->pathes["mw_dir"]."env/mw_env.php") ? $this->pathes["mw_dir"]."env/mw_env.php" : ""))
+ ){
+ $this->error("des fichiers sont introuvables. impossible d'initialiser l'environnement");
+ return false;
+ }
+ if(!class_exists("sxml")) require_once $sxml_class_file;
+ if(!class_exists("empty_class")) require_once $empty_class_file;
+ if(!class_exists("mw_env")) require_once $env_class_file;
+ if(
+ !class_exists("sxml")
+ || !class_exists("empty_class")
+ || !class_exists("mw_env")
+ ){
+ $this->error("des classes sont introuvables. impossible d'initialiser l'environnement");
+ return false;
+ }
+ $env = new mw_env(true);
+ $this->set_env($env);
+ $env->load_modules($this->pathes["mw_dir"], "env/modules/");
+ $env->set_config_file($this->config_file);
+ $env->set_PATHES($this->pathes);
+ $env->init_plugins();
+ $env->load_versions();
+ $env->load_config($this->bdd, $this->config);
+ $env->init();
+ $env->loaded_plugins();
+ if(($res = $env->init_data_upgrades()) !== true){
+ $this->error("impossible de lire les upgrades. ".$res);
+ return false;
+ }
+ return true;
+ }
+
+ function run($etat = "", $params = array(), $valid_role = true){