X-Git-Url: http://git.dj3c1t.com/?a=blobdiff_plain;f=app%2Fdata%2Fmodules%2Fshare%2Fsml_data_sources_cache.php;fp=app%2Fdata%2Fmodules%2Fshare%2Fsml_data_sources_cache.php;h=7232c6c2a703602d8b7b7e67f610faac34cb3be8;hb=c95fd67beff56f1c071ee59305df00b72bb95ac3;hp=e09f8241e93870a19072ce1bc2e927ec86aca61e;hpb=b11b7108a24b4989a7d28c4a595b5cc52dafb888;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..7232c6c 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); @@ -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;