X-Git-Url: http://git.dj3c1t.com/?a=blobdiff_plain;f=web%2Fapp%2Fdata%2Fimpl%2Fxml%2Fmw_xml_data_handler.php;h=446a264cf6d26528a87bffd126c463aec5f67ce3;hb=7cf7609a7e236347374c1b21777a9698bcd1726c;hp=fb9e2674c2556fe2854d46a2219fa4d6eb64eafd;hpb=19b8f3b9263210d9154e7556446e903f84175519;p=mtweb diff --git a/web/app/data/impl/xml/mw_xml_data_handler.php b/web/app/data/impl/xml/mw_xml_data_handler.php index fb9e267..446a264 100644 --- a/web/app/data/impl/xml/mw_xml_data_handler.php +++ b/web/app/data/impl/xml/mw_xml_data_handler.php @@ -1,93 +1,93 @@ xml_data = $xml_data; + function mw_xml_data_handler($xml_data, $data_path){ + $this->xml_data = $xml_data; $this->data_path = $data_path.(substr($data_path, -1) != "/" ? "/" : ""); } - function get_data($data_id) - { if(file_exists($this->xml_data->host().$this->xml_data->base().$this->data_path.$data_id.".xml")) - { return $this->xml_data->get_data($this->data_path, $data_id); + function get_data($data_id){ + if(file_exists($this->xml_data->host().$this->xml_data->base().$this->data_path.$data_id.".xml")){ + return $this->xml_data->get_data($this->data_path, $data_id); } return false; } - function open_data($FETCH = true) - { clearstatcache(); + function open_data($FETCH = true){ + clearstatcache(); $INDEX_OK = false; - if($this->xml_data->host() && $this->xml_data->base() && $this->data_path) - { if(is_dir($this->xml_data->host().$this->xml_data->base().$this->data_path) && is_writable($this->xml_data->host().$this->xml_data->base().$this->data_path)) - { if(!file_exists($this->xml_data->host().$this->xml_data->base().$this->data_path.".index")) - { if($fh = @fopen($this->xml_data->host().$this->xml_data->base().$this->data_path.".index", "w+")) - { if(@fwrite($fh, "0")) - { $this->last_index = 0; + if($this->xml_data->host() && $this->xml_data->base() && $this->data_path){ + if(is_dir($this->xml_data->host().$this->xml_data->base().$this->data_path) && is_writable($this->xml_data->host().$this->xml_data->base().$this->data_path)){ + if(!file_exists($this->xml_data->host().$this->xml_data->base().$this->data_path.".index")){ + if($fh = @fopen($this->xml_data->host().$this->xml_data->base().$this->data_path.".index", "w+")){ + if(@fwrite($fh, "0")){ + $this->last_index = 0; @fclose($fh); $INDEX_OK = true; } else @fclose($fh); } } - else - { if(($this->buffer = @file_get_contents($this->xml_data->host().$this->xml_data->base().$this->data_path.".index")) !== false) - { if(preg_match("/^[0-9]+$/", $this->buffer)) - { $this->last_index = (int)$this->buffer; + else{ + if(($this->buffer = @file_get_contents($this->xml_data->host().$this->xml_data->base().$this->data_path.".index")) !== false){ + if(preg_match("/^[0-9]+$/", $this->buffer)){ + $this->last_index = (int)$this->buffer; $INDEX_OK = true; } } } } } - if($INDEX_OK) - { if($FETCH) - { if($this->data_path_handler = @opendir($this->xml_data->host().$this->xml_data->base().$this->data_path)) - { return true; + if($INDEX_OK){ + if($FETCH){ + if($this->data_path_handler = @opendir($this->xml_data->host().$this->xml_data->base().$this->data_path)){ + return true; } - else - { $this->close_data(); + else{ + $this->close_data(); return null; } } else return true; } - else - { $this->close_data(); + else{ + $this->close_data(); return null; } } - function fetch_assoc() - { if($this->data_path_handler) - { $FORMAT_OK = false; - while(!$FORMAT_OK && ($data_file = @readdir($this->data_path_handler)) !== false) - { if(substr($data_file, 0, 1) != "." && substr($data_file, -4) == ".xml") $FORMAT_OK = true; + function fetch_assoc(){ + if($this->data_path_handler){ + $FORMAT_OK = false; + while(!$FORMAT_OK && ($data_file = @readdir($this->data_path_handler)) !== false){ + if(substr($data_file, 0, 1) != "." && substr($data_file, -4) == ".xml") $FORMAT_OK = true; } if($FORMAT_OK) return $this->xml_data->get_data($this->data_path, substr($data_file, 0, -4)); } return false; } - function add_data($data) - { $index = $this->inc_index(); - if(isset($index)) - { if(is_array($data)) return $this->xml_data->add_data($this->data_path, $index, $data); + function add_data($data){ + $index = $this->inc_index(); + if(isset($index)){ + if(is_array($data)) return $this->xml_data->add_data($this->data_path, $index, $data); } return null; } - function inc_index() - { clearstatcache(); - if(isset($this->last_index)) - { $index = $this->last_index + 1; - if($fh = @fopen($this->xml_data->host().$this->xml_data->base().$this->data_path.".index", "w+")) - { if(@fwrite($fh, (string)$index)) - { $this->last_index = $index; + function inc_index(){ + clearstatcache(); + if(isset($this->last_index)){ + $index = $this->last_index + 1; + if($fh = @fopen($this->xml_data->host().$this->xml_data->base().$this->data_path.".index", "w+")){ + if(@fwrite($fh, (string)$index)){ + $this->last_index = $index; @fclose($fh); return $index; } @@ -97,28 +97,28 @@ return null; } - function set_data($data_file, $data) - { if(preg_match("/^[0-9]+\.xml$/", $data_file)) - { if(is_writable($this->xml_data->host().$this->xml_data->base().$this->data_path.$data_file)) - { if(is_array($data)) - { return $this->xml_data->set_data($this->data_path, substr($data_file, 0, -4), $data); + function set_data($data_file, $data){ + if(preg_match("/^[0-9]+\.xml$/", $data_file)){ + if(is_writable($this->xml_data->host().$this->xml_data->base().$this->data_path.$data_file)){ + if(is_array($data)){ + return $this->xml_data->set_data($this->data_path, substr($data_file, 0, -4), $data); } } } return null; } - function del_data($data_file) - { if(preg_match("/^[0-9]+\.xml$/", $data_file)) - { if(is_file($this->xml_data->host().$this->xml_data->base().$this->data_path.$data_file)) - { return $this->xml_data->del_data($this->data_path, substr($data_file, 0, -4)); + function del_data($data_file){ + if(preg_match("/^[0-9]+\.xml$/", $data_file)){ + if(is_file($this->xml_data->host().$this->xml_data->base().$this->data_path.$data_file)){ + return $this->xml_data->del_data($this->data_path, substr($data_file, 0, -4)); } } return null; } - function close_data() - { $this->data_path= null; + function close_data(){ + $this->data_path= null; if($this->data_path_handler) @closedir($this->data_path_handler); $this->last_index = null; }