X-Git-Url: http://git.dj3c1t.com/?a=blobdiff_plain;f=mw%2Fapp%2Fdata%2Fimpl%2Fmw_xml.php;h=67f244743996a50ef391d81b345fded08684be3d;hb=8da84cf3aa4d10d91f19b6df06ce4c5e9fcb79da;hp=53fa7f1303025424b43bb0499a7120458518e984;hpb=36ed114046cbe3d72a3589230e9f306a54fcc79d;p=mtweb diff --git a/mw/app/data/impl/mw_xml.php b/mw/app/data/impl/mw_xml.php index 53fa7f1..67f2447 100644 --- a/mw/app/data/impl/mw_xml.php +++ b/mw/app/data/impl/mw_xml.php @@ -1,73 +1,77 @@ init_xml_env($host, $base, $user, $password); - $this->EXTENTION_OK = true; - } - - 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")) - ){ - require $env->app_file("data/impl/xml/mw_xml_data.php"); - require $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; + class mw_xml extends mw_sgbd{ + + public $xml_data; + public $data_handlers; + public $last_data_handler; + + public function name(){ + return "XML"; } - 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 default_params(){ + return array( + "host" => "content/data/xml", + "base" => "mw", + "user" => "", + "password" => "" + ); + } + + public function authentication_required(){ + return false; + } + + 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; } - function connect($host, $base, $user, $password){ + 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; } return null; } - function select_db($base){ + public function select_db($base){ $this->base = $base.($base && substr($base, -1) != "/" ? "/" : ""); return $this->connect($this->host, $this->base, $this->user, $this->password); } - function data_exists($data_path){ + public function data_exists($data_path){ return is_dir($this->host.$this->base.$data_path); } - function create_data($data_path){ + public function create_data($data_path){ if(!is_dir($this->host.$this->base.$data_path)) @mkdir($this->host.$this->base.$data_path); if(is_dir($this->host.$this->base.$data_path)){ if($dh = $this->open_data($data_path, false)){ @@ -78,7 +82,7 @@ return null; } - function get_data($data_path, $data_id){ + public function get_data($data_path, $data_id){ $dh = ++$this->last_data_handler; $this->data_handlers[$dh] = new mw_xml_data_handler($this->xml_data, $data_path); if($this->data_handlers[$dh]->open_data(false)){ @@ -89,7 +93,7 @@ return null; } - function open_data($data_path, $FETCH = true){ + public function open_data($data_path, $FETCH = true){ $dh = ++$this->last_data_handler; $this->data_handlers[$dh] = new mw_xml_data_handler($this->xml_data, $data_path); if($this->data_handlers[$dh]->open_data($FETCH)){ @@ -99,18 +103,18 @@ return null; } - function fetch_data($dh){ + public function fetch_data($dh){ if(isset($this->data_handlers[$dh])){ return $this->data_handlers[$dh]->fetch_assoc(); } return false; } - function add_data($data_path, $data){ + public function add_data($data_path, $data, $index = null){ $dh = ++$this->last_data_handler; $this->data_handlers[$dh] = new mw_xml_data_handler($this->xml_data, $data_path); if($this->data_handlers[$dh]->open_data(false)){ - $res = $this->data_handlers[$dh]->add_data($data); + $res = $this->data_handlers[$dh]->add_data($data, $index); if($res) $res = $this->last_index($dh); $this->close_data($dh); return $res; @@ -118,14 +122,14 @@ return null; } - function last_index($dh){ + public function last_index($dh){ if(isset($this->data_handlers[$dh])){ return $this->data_handlers[$dh]->last_index; } return null; } - function set_data($data_path, $data_id, $data){ + public function set_data($data_path, $data_id, $data){ $dh = ++$this->last_data_handler; $this->data_handlers[$dh] = new mw_xml_data_handler($this->xml_data, $data_path); if($this->data_handlers[$dh]->open_data(false)){ @@ -136,7 +140,7 @@ return null; } - function del_data($data_path, $data_id){ + public function del_data($data_path, $data_id){ $dh = ++$this->last_data_handler; $this->data_handlers[$dh] = new mw_xml_data_handler($this->xml_data, $data_path); if($this->data_handlers[$dh]->open_data(false)){ @@ -147,14 +151,14 @@ return null; } - function close_data($dh){ + public function close_data($dh){ if(isset($this->data_handlers[$dh])){ $this->data_handlers[$dh]->close_data(); unset($this->data_handlers[$dh]); } } - function remove_data($data_path){ + public function remove_data($data_path){ $OK = strlen($data_path) > 0; if($OK && is_dir($this->host.$this->base.$data_path) && is_writable($this->host.$this->base.$data_path)){ $data_path .= substr($data_path, -1) == "/" ? "" : "/"; @@ -175,5 +179,3 @@ } } - -?> \ No newline at end of file