<?php
- class sml_data_sources_cache extends mw_data
- {
+ class sml_data_sources_cache extends mw_data{
/*
* retourne le contenu XML dont l'URL d'origine est $url
* sa date de validite est depassee
*
*/
- function get_source_xml_from_cache($url, $IGNORE_UPDATE = false)
- { $env = $this->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;
}
* $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);
* 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;