<?php
- class mw_xml{
+ class mw_xml extends mw_sgbd{
- var $host;
- var $base;
- var $user;
- var $password;
+ public $xml_data;
+ public $data_handlers;
+ public $last_data_handler;
- var $EXTENTION_OK;
-
- var $xml_data;
-
- var $data_handlers;
- var $last_data_handler;
+ public function name(){
+ return "XML";
+ }
- function mw_xml($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 default_params(){
+ return array(
+ "host" => "content/data/xml",
+ "base" => "mw",
+ "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"))
- ){
- 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;
}
- function authentication_required() { return false; }
-
- function sgbd_name() { return "XML"; }
+ public function authentication_required(){
+ return false;
+ }
- 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;
}
- function connect($host, $base, $user, $password){
+ 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)){
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)){
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)){
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, $index = null){
+ 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)){
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)){
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)){
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) == "/" ? "" : "/";
}
}
-
-?>
\ No newline at end of file