implementation sgbd herite de mw_sgbd
[mtweb] / mw / app / data / impl / mw_xml.php
index 3d09caf..67f2447 100644 (file)
@@ -1,67 +1,61 @@
 <?php
 
-  class mw_xml{
+  class mw_xml extends mw_sgbd{
 
-    public $host;
-    public $base;
-    public $user;
-    public $password;
-    public $EXTENTION_OK;
     public $xml_data;
     public $data_handlers;
     public $last_data_handler;
 
-    public function __construct($params = array()){
-      $this->init_xml_env(
-        isset($params["host"]) ? $params["host"] : "content/data/xml",
-        isset($params["base"]) ? $params["base"] : "mw",
-        isset($params["user"]) ? $params["user"] : "",
-        isset($params["password"]) ? $params["password"] : ""
+    public function name(){
+      return "XML";
+    }
+
+    public function default_params(){
+      return array(
+        "host" => "content/data/xml",
+        "base" => "mw",
+        "user" => "",
+        "password" => ""
       );
-      $this->EXTENTION_OK = true;
-    }
-
-    public function extention_ok(&$env){
-      if($this->EXTENTION_OK){
-        if(
-             file_exists($env->app_file("data/impl/xml/mw_xml_data.php"))
-          && file_exists($env->app_file("data/impl/xml/mw_xml_data_handler.php"))
-        ){
-          if(!class_exists("mw_xml_data")) require_once $env->app_file("data/impl/xml/mw_xml_data.php");
-          if(!class_exists("mw_xml_data_handler")) require_once $env->app_file("data/impl/xml/mw_xml_data_handler.php");
-          if(
-               class_exists("mw_xml_data")
-            && class_exists("mw_xml_data_handler")
-          ){
-            $this->xml_data = new mw_xml_data($this->host, $this->base);
-          }
-          else $this->EXTENTION_OK = false;
-        }
-        else $this->EXTENTION_OK = false;
-      }
-      return $this->EXTENTION_OK;
     }
 
     public function authentication_required(){
       return false;
     }
 
-    public function sgbd_name(){
-      return "XML";
-    }
-
-    public function init_xml_env($host, $base, $user, $password){
-      $this->host = $host.($host && substr($host, -1) != "/" ? "/" : "");
-      $this->base = $base.($base && substr($base, -1) != "/" ? "/" : "");
-      $this->user = $user;
-      $this->password = $password;
+    public function prepare_params($params){
+      if(isset($params["host"])){
+        $params["host"] .= $params["host"] && substr($params["host"], -1) != "/" ? "/" : "";
+      }
+      if(isset($params["base"])){
+        $params["base"] .= $params["base"] && substr($params["base"], -1) != "/" ? "/" : "";
+      }
       $this->data_handlers = array();
       $this->last_data_handler = 0;
+      return $params;
+    }
+
+    public function validate_extention(){
+      if(
+            !file_exists($this->env->app_file("data/impl/xml/mw_xml_data.php"))
+        ||  !file_exists($this->env->app_file("data/impl/xml/mw_xml_data_handler.php"))
+      ){
+        return false;
+      }
+      if(!class_exists("mw_xml_data")) require_once $this->env->app_file("data/impl/xml/mw_xml_data.php");
+      if(!class_exists("mw_xml_data_handler")) require_once $this->env->app_file("data/impl/xml/mw_xml_data_handler.php");
+      if(
+            !class_exists("mw_xml_data")
+        ||  !class_exists("mw_xml_data_handler")
+      ){
+        return false;
+      }
+      $this->xml_data = new mw_xml_data($this->host, $this->base);
+      return true;
     }
 
     public function connect($host, $base, $user, $password){
       if($host.$base && is_dir($host.$base) && is_writable($host.$base)){
-        $this->init_xml_env($host, $base, $user, $password);
         $this->xml_data = new mw_xml_data($this->host, $this->base);
         return true;
       }