env(); if($env->config("cache_actif")) return $this->get_source_xml_from_cache($url, $IGNORE_UPDATE); else return @file_get_contents($url); } # ---------------------------------------------------------------------------------------- # XML source # public function set_source_xml($id, $params = array()){ $env = $this->env(); $OK = false; if(strlen($id) > 0 && ($fh = @fopen($this->source_xml_path($id), "wb")) !== false){ if(($content = $this->source_xml_content($id, $params)) !== false){ if(@fwrite($fh, $content)) $OK = true; } @fclose($fh); } return $OK; } public function maj_source_xml_groupe($groupe){ $OK = true; if($groupe !== false){ $sgbd = $this->sgbd(); $env = $this->env(); if(($sources = $this->sources(array("id_groupe" => $groupe["id"]))) !== false){ foreach($sources["list"] as $id_source => $source){ if(!$this->set_source_xml($source["id"], array("source" => $source))){ $OK = false; break; } } } else $OK = false; } else $OK = false; return $OK; } public function maj_source_xml_licence($licence){ $OK = true; if($licence !== false){ $sgbd = $this->sgbd(); $env = $this->env(); if(($sources = $this->sources(array("id_licence" => $licence["id"]))) !== false){ foreach($sources["list"] as $id_source => $source){ if(!$this->set_source_xml($source["id"], array("source" => $source))){ $OK = false; break; } } } else $OK = false; } else $OK = false; return $OK; } public function maj_source_xml_all(){ $OK = true; $sgbd = $this->sgbd(); $env = $this->env(); if(($sources = $this->sources(array())) !== false){ foreach($sources["list"] as $id_source => $source){ if(!$this->set_source_xml($source["id"], array("source" => $source))){ $OK = false; break; } } } else $OK = false; return $OK; } public function get_source_xml($id_source){ $source_file = $this->source_xml_path($id_source); if(file_exists($source_file)){ return @file_get_contents($source_file); } return ""; } public function del_source_xml($id_source){ $env = $this->env(); if(file_exists($this->source_xml_path($id_source))){ return $this->del_edit_derivations(array("id_source" => $id_source)) && $this->del_edit_reference_content($id_source) && @unlink($this->source_xml_path($id_source)); } return true; } # ---------------------------------------------------------------------------------------- # edition XML derivation # public function set_edit_derivation_content($id_source, $id_source_derivation, $content){ $env = $this->env(); $derivations_dir = $this->derivations_edit_xml_dir_path(); if(!file_exists($derivations_dir) || !is_dir($derivations_dir)) @mkdir($derivations_dir); if(file_exists($derivations_dir) && is_dir($derivations_dir)){ $derivations_dir = $this->derivations_edit_xml_dir_path($id_source); if(!file_exists($derivations_dir) || !is_dir($derivations_dir)) @mkdir($derivations_dir); if(file_exists($derivations_dir) && is_dir($derivations_dir)){ if($fh = @fopen($this->derivation_edit_xml_path($id_source, $id_source_derivation), "w+")){ if(@fwrite($fh, $content)){ @fclose($fh); return true; } @fclose($fh); } } } return false; } public function get_edit_derivation_content($id_source, $id_source_derivation){ $env = $this->env(); $derivation_file = $this->derivation_edit_xml_path($id_source, $id_source_derivation); $derivation_content = ""; if(file_exists($derivation_file)){ $derivation_content = @file_get_contents($derivation_file); } return $derivation_content; } public function del_edit_derivation_content($id_source, $id_source_derivation){ $env = $this->env(); $derivation_file = $this->derivation_edit_xml_path($id_source, $id_source_derivation); $OK = true; if(file_exists($derivation_file)){ $OK = @unlink($derivation_file); } return $OK; } public function del_edit_derivations($id_source){ $env = $this->env(); $derivations_dir = $this->derivations_edit_xml_dir_path($id_source); $OK = true; if(is_dir($derivations_dir)){ if($dh = opendir($derivations_dir)){ while($OK && (($file = readdir($dh)) !== false)){ if(preg_match("/^.+\.xml$/", $file)){ $OK = @unlink($derivations_dir.$file) && $OK; } } closedir($dh); // $OK = @rmdir($derivations_dir) && $OK; @rmdir($derivations_dir); } else $OK = false; } return $OK; } # ---------------------------------------------------------------------------------------- # edition XML reference # public function set_edit_reference_content($id_source, $content){ $env = $this->env(); $references_dir = $this->reference_edit_xml_dir_path(); if(!file_exists($references_dir) || !is_dir($references_dir)) @mkdir($references_dir); if(file_exists($references_dir) && is_dir($references_dir)){ if($fh = @fopen($this->reference_edit_xml_path($id_source), "w+")){ if(@fwrite($fh, $content)){ @fclose($fh); return true; } @fclose($fh); } } return false; } public function get_edit_reference_content($id_source){ $env = $this->env(); $reference_file = $this->reference_edit_xml_path($id_source); $reference_content = ""; if(file_exists($reference_file)){ $reference_content = @file_get_contents($reference_file); } return $reference_content; } public function del_edit_reference_content($id_source){ $env = $this->env(); $reference_file = $this->reference_edit_xml_path($id_source); $OK = true; if(file_exists($reference_file)){ $OK = @unlink($reference_file); } return $OK; } }