ajout d'un installeur en ligne
[mtweb] / mw / app / init / 0300_data.php
index ea7ad71..9d5e2f9 100644 (file)
@@ -2,40 +2,48 @@
 
   if(!class_exists("mw_sgbd")) require_once $this->app_file("data/mw_sgbd.php");
   if(!class_exists("mw_data")) require_once $this->app_file("data/mw_data.php");
-  if($this->app_file_exists("data/impl/mw_".$this->bdd("sgbd").".php")){
+  if(($plugins = $this->plugins("DESC")) === false){
+    $this->erreur("Impossible de lire les plugins pour charger les modules de donnees", true);
+  }
+  $data = new mw_data(true);
+  if($this->bdd("sgbd")){
+    if(!$this->app_file_exists("data/impl/mw_".$this->bdd("sgbd").".php")){
+      $this->erreur("Impossible de trouver le fichier d'implementation du sgbd ".$this->bdd("sgbd"), true);
+    }
     $sgbd_impl = "mw_".$this->bdd("sgbd");
     if(!class_exists($sgbd_impl)) require_once $this->app_file("data/impl/".$sgbd_impl.".php");
-    if(class_exists($sgbd_impl)){
-      if(($plugins = $this->plugins("DESC")) !== false){
-        $data = new mw_data(true);
-        foreach($plugins as $plugin_name => $plugin){
-          if($plugin["installed"] && $plugin["enabled"]){
-            $data->load_modules($this->path("mw_dir")."plugins/".$plugin_name."/app/", "data/modules/share/");
-            $data->load_modules($this->path("mw_dir")."plugins/".$plugin_name."/app/", "data/modules/".($this->bdd("sgbd") == "xml" ? "xml" : "sql")."/");
-          }
-        }
-        $data->load_modules($this->path("mw_dir")."app/", "data/modules/share/");
-        $data->load_modules($this->path("mw_dir")."app/", "data/modules/".($this->bdd("sgbd") == "xml" ? "xml" : "sql")."/");
-        $sgbd = new mw_sgbd(
-          new $sgbd_impl(
-            $this->bdd("host"),
-            $this->bdd("base"),
-            $this->bdd("user"),
-            $this->bdd("password")
-          ),
-          $this
-        );
-        if($sgbd->extention_ok()){
-          $data->set_sgbd($sgbd);
-          $data->set_env($this);
-          $this->set_data($data);
-        }
-        else $this->erreur("L'extention php ".$this->bdd("sgbd")." n'est pas installée", true);
+    if(!class_exists($sgbd_impl)){
+      $this->erreur("Impossible de trouver la classe d'implementation du sgbd ".$this->bdd("sgbd"), true);
+    }
+    $sgbd = new mw_sgbd(
+      new $sgbd_impl(
+        array(
+          "host" => $this->bdd("host"),
+          "base" => $this->bdd("base"),
+          "user" => $this->bdd("user"),
+          "password" => $this->bdd("password")
+        )
+      ),
+      $this
+    );
+    if(!$sgbd->extention_ok()){
+      $this->erreur("L'extention php ".$this->bdd("sgbd")." n'est pas installée", true);
+    }
+  }
+  foreach($plugins as $plugin_name => $plugin){
+    if($plugin["installed"] && $plugin["enabled"]){
+      $data->load_modules($this->path("mw_dir")."plugins/".$plugin_name."/app/", "data/modules/share/");
+      if($this->bdd("sgbd")){
+        $data->load_modules($this->path("mw_dir")."plugins/".$plugin_name."/app/", "data/modules/".($this->bdd("sgbd") == "xml" ? "xml" : "sql")."/");
       }
-      else $this->erreur("Impossible de lire les plugins pour charger les modules de donnees");
     }
-    else $this->erreur("Impossible de trouver la classe d'implementation du sgbd ".$this->bdd("sgbd"), true);
   }
-  else $this->erreur("Impossible de trouver le fichier d'implementation du sgbd ".$this->bdd("sgbd"), true);
+  $data->load_modules($this->path("mw_dir")."app/", "data/modules/share/");
+  if($this->bdd("sgbd")){
+    $data->load_modules($this->path("mw_dir")."app/", "data/modules/".($this->bdd("sgbd") == "xml" ? "xml" : "sql")."/");
+    $data->set_sgbd($sgbd);
+  }
+  $data->set_env($this);
+  $this->set_data($data);
 
 ?>
\ No newline at end of file