maj version dans config.xml
[mtweb] / mw / mw_app.php
index 4355487..4e328b7 100644 (file)
@@ -2,16 +2,16 @@
 
   class mw_app{
 
-    var $env;
-    var $path_file;
-    var $pathes;
-    var $config_file;
-    var $config;
-    var $bdd;
-    var $error;
-    var $DO_INSTALL;
-
-    function mw_app($path_file, $DO_INSTALL = false){
+    public $env;
+    public $path_file;
+    public $pathes;
+    public $config_file;
+    public $config;
+    public $bdd;
+    public $error;
+    public $DO_INSTALL;
+
+    public function __construct($path_file, $DO_INSTALL = false){
       $this->DO_INSTALL = $DO_INSTALL;
       $this->path_file = $path_file;
       $this->pathes = array();
       $this->error = false;
     }
 
-    function set_env(&$env){
+    public function set_env(&$env){
       $this->env =& $env;
     }
 
-    function env(){
+    public function env(){
       return $this->env;
     }
 
-    function param($name){
+    public function param($name){
       if(!isset($this->env)) return false;
       return $this->env->param($name);
     }
 
-    function init(){
+    public function init(){
       if(!$this->init_pathes()) return $this->get_error();
       if(!$this->init_config()) return $this->get_error();
       if(!$this->init_env()) return $this->get_error();
       return true;
     }
 
-    function init_pathes(){
-      if(($n = strpos($_SERVER["REQUEST_URI"], "?")) !== false){
-        $_SERVER["REQUEST_URI"] = substr($_SERVER["REQUEST_URI"], 0, $n);
+    public function init_pathes(){
+      $REQUEST_URI = $_SERVER["REQUEST_URI"];
+      if(($n = strpos($REQUEST_URI, "?")) !== false){
+        $REQUEST_URI = substr($REQUEST_URI, 0, $n);
       }
-      $web_path = explode("/", preg_replace('#/+#','/',$_SERVER["REQUEST_URI"]));
+      $web_path = explode("/", preg_replace('#/+#','/',$REQUEST_URI));
       $this->pathes["web"] = "";
       for($i = 0; $i < count($web_path) - 1; $i++) $this->pathes["web"] .= $web_path[$i]."/";
       if(
         $this->error("dossier content introuvable");
         return false;
       }
-      if(!is_writable($this->pathes["content"])){
+      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(){
+    public function init_config(){
       if(file_exists($config_file = $this->pathes["content"]."config/config.php")){
         $this->config_file = $config_file;
         require_once $this->config_file;
       return true;
     }
 
-    function init_env(){
+    public 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->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_plugins();
       $env->load_config($this->bdd, $this->config);
+      $env->load_data();
+      $env->load_sgbd();
+      $env->plugins_loaded();
+      $env->load_versions();
+      $env->load_data_upgrades();
       $env->init();
-      if(($res = $env->init_data_upgrades()) !== true){
-        $this->error("impossible de lire les upgrades. ".$res);
-        return false;
-      }
+      $env->init_plugins();
       return true;
     }
 
-    function run($etat = "", $params = array(), $valid_role = true){
+    public function run($etat = "", $params = array(), $valid_role = true){
       $env = $this->env();
       if(!is_callable(array($env, "run"))) return false;
       $env->run($etat);
       return true;
     }
   
-    function run_mod($mod_name, $valid_role = true){
+    public function run_mod($mod_name, $valid_role = true){
       $env = $this->env();
       $etat = false;
       if(isset($_GET[$env->param("e")])){
       return true;
     }
 
-    function install(){
+    public function install(){
       if($this->run_mod("install", false)){
         $this->display();
       }
     }
 
-    function upgrade(){
+    public function upgrade(){
+      $env = $this->env();
+      $data = $env->data();
+      $data->load_session();
       if($this->run_mod("upgrade", false)){
         $this->display();
       }
     }
 
-    function display(){
+    public function display(){
       $env = $this->env();
       if($env->etat_is_valid()){
         $template = $env->get_template();
       }
     }
 
-    function error($content){
+    public function error($content){
       $this->error = $content;
     }
 
-    function get_error(){
+    public function get_error(){
       return isset($this->error) && $this->error ? $this->error : false;
     }