X-Git-Url: http://git.dj3c1t.com/?a=blobdiff_plain;f=app%2Fdata%2Fmodules%2Fshare%2Fsml_data_sources_cache.php;h=aa65109eb4eafc788ed62ed06ecc6f9b907d20f5;hb=refs%2Ftags%2Fsourceml.1.1.0;hp=e09f8241e93870a19072ce1bc2e927ec86aca61e;hpb=9391cb9ccb3dd2884e7be2f15aa729733288f1e5;p=mw_sourceml diff --git a/app/data/modules/share/sml_data_sources_cache.php b/app/data/modules/share/sml_data_sources_cache.php index e09f824..aa65109 100644 --- a/app/data/modules/share/sml_data_sources_cache.php +++ b/app/data/modules/share/sml_data_sources_cache.php @@ -1,7 +1,6 @@ env(); + function get_source_xml_from_cache($url, $IGNORE_UPDATE = false){ + $env = $this->env(); $sgbd = $this->sgbd(); - if(($cache_infos = $this->source_cache_infos_db($url)) !== false) - { if($cache_infos) - { if($env->config("cache_maj_auto")) - { if(($need_update = $this->cache_need_update($cache_infos["last_update"], $env->config("cache_time") * 60 * 60)) !== false) - { if(!$IGNORE_UPDATE && $need_update) - { if($this->buffer = @file_get_contents($url)) - { if($this->parse_source_xml($this->buffer)) - { if($this->del_source_cache($cache_infos["id"], $cache_infos["id_source"])) - { if($this->add_source_cache($url, $this->buffer)) return $this->buffer; + if(($cache_infos = $this->source_cache_infos_db($url)) !== false){ + if($cache_infos){ + if(!($this->buffer = @file_get_contents($env->path("content")."cache/sources/".$cache_infos["id_source"].".xml"))){ + return false; + } + if($env->config("cache_maj_auto")){ + if(($need_update = $this->cache_need_update($cache_infos["last_update"], $env->config("cache_time") * 60 * 60)) !== false){ + if(!$IGNORE_UPDATE && $need_update){ + if($this->buffer = @file_get_contents($url)){ + if($this->parse_source_xml($this->buffer)){ + if($this->del_source_cache($cache_infos["id"], $cache_infos["id_source"])){ + if($this->add_source_cache($url, $this->buffer)) return $this->buffer; + return false; } + else return false; } else return -1; } else return -1; } - else return @file_get_contents($env->path("content")."cache/sources/".$cache_infos["id_source"].".xml"); + else return $this->buffer; } + else return $this->buffer; } + else return $this->buffer; } - else - { if($this->buffer = @file_get_contents($url)) - { if($this->parse_source_xml($this->buffer)) - { if(!$this->add_source_cache($url, $this->buffer)) return false; + else{ + if($this->buffer = @file_get_contents($url)){ + if($this->parse_source_xml($this->buffer)){ + if(!$this->add_source_cache($url, $this->buffer)) return false; } return $this->buffer; } @@ -97,14 +103,14 @@ * $xml_content : le contenu du fichier XML * */ - function add_source_cache($url, $xml_content) - { $env = $this->env(); + function add_source_cache($url, $xml_content){ + $env = $this->env(); $sgbd = $this->sgbd(); - if(($cache_index = $this->inc_sources_cache_index()) !== false) - { if($fh = @fopen($env->path("content")."cache/sources/".$cache_index.".xml", "w+")) - { $res = false; - if(@fwrite($fh, $this->buffer)) - { @fclose($fh); + if(($cache_index = $this->inc_sources_cache_index()) !== false){ + if($fh = @fopen($env->path("content")."cache/sources/".$cache_index.".xml", "w+")){ + $res = false; + if(@fwrite($fh, $this->buffer)){ + @fclose($fh); $res = $this->add_source_cache_db($url, $cache_index); } @fclose($fh); @@ -149,12 +155,12 @@ * vide le cache * */ - function empty_source_cache() - { $OK = true; - if(($cache = $this->source_cache_db()) !== false) - { foreach($cache as $id_cache => $cache_infos) - { if(!$this->del_source_cache($id_cache, $cache_infos["id_source"])) - { $OK = false; + function empty_source_cache(){ + $OK = true; + if(($cache = $this->source_cache_db()) !== false){ + foreach($cache as $id_cache => $cache_infos){ + if(!$this->del_source_cache($id_cache, $cache_infos["id_source"])){ + $OK = false; $break; } } @@ -202,30 +208,36 @@ * incremente l'index du cache et retourne le nouvel index * */ - function inc_sources_cache_index() - { clearstatcache(); + function inc_sources_cache_index(){ + clearstatcache(); $env = $this->env(); $cache_index = false; - if(is_dir($env->path("content")."cache/sources") && is_writable($env->path("content")."cache/sources")) - { if(!file_exists($env->path("content")."cache/sources/.index")) - { if($fh = @fopen($env->path("content")."cache/sources/.index", "w+")) - { if(@fwrite($fh, "0")) $cache_index = 0; + $cache_dir = $env->path("content")."cache"; + if(!is_dir($cache_dir)) @mkdir($cache_dir); + if(!is_dir($cache_dir)) return false; + $cache_dir .= "/sources/"; + if(!is_dir($cache_dir)) @mkdir($cache_dir); + if(!is_dir($cache_dir)) return false; + if(is_dir($cache_dir) && is_writable($cache_dir)){ + if(!file_exists($cache_dir.".index")){ + if($fh = @fopen($cache_dir.".index", "w+")){ + if(@fwrite($fh, "0")) $cache_index = 0; @fclose($fh); } } - else - { if(($cache_index = @file_get_contents($env->path("content")."cache/sources/.index")) !== false) - { if(preg_match("/^[0-9]+$/", $cache_index)) - { $cache_index = (int)$cache_index; + else{ + if(($cache_index = @file_get_contents($cache_dir.".index")) !== false){ + if(preg_match("/^[0-9]+$/", $cache_index)){ + $cache_index = (int)$cache_index; } else $cache_index = false; } } } - if($cache_index !== false) - { $cache_index++; - if($fh = @fopen($env->path("content")."cache/sources/.index", "w+")) - { if(!@fwrite($fh, (string)$cache_index)) $cache_index = false; + if($cache_index !== false){ + $cache_index++; + if($fh = @fopen($cache_dir.".index", "w+")){ + if(!@fwrite($fh, (string)$cache_index)) $cache_index = false; @fclose($fh); } else $cache_index = false;