Seditio Source
Root |
./othercms/Just-CMS v1.3.2 Valentina/plugins/news_manager/inc/cache.php
<?php if (!defined('IN_GS')) {die('you cannot load this page directly.');}

/**
 * News Manager cache functions.
 */


/*******************************************************
 * @function nm_update_cache
 * @action store frequently accessed post data in cache files
 */
function nm_update_cache() {
 
$posts = nm_get_cache_data();
  return
nm_cache_to_xml($posts);
}


/*******************************************************
 * @function nm_get_cache_data
 * @return arrays with relevant post data
 */
function nm_get_cache_data() {
 
$posts = array();
 
$files = getFiles(NMPOSTPATH);
 
# collect all post data
 
foreach ($files as $file) {
    if (
isFile($file, NMPOSTPATH, 'xml')) {
     
$data = getXML(NMPOSTPATH . $file);
     
$time = strtotime($data->date);
      while (
array_key_exists($time, $posts)) $time++;
     
$posts[$time]['slug'] = basename($file, '.xml');
     
$posts[$time]['title'] = strval($data->title);
     
$posts[$time]['date'] = strval($data->date);
     
$posts[$time]['tags'] = strval($data->tags);
     
$posts[$time]['private'] = strval($data->private);
    }
  }
 
krsort($posts);
  return
$posts;
}


/*******************************************************
 * @function nm_cache_to_xml
 * @action write post data to xml file
 */
function nm_cache_to_xml($posts) {
 
$xml = new SimpleXMLExtended('<?xml version="1.0" encoding="UTF-8"?><channel></channel>');
  foreach (
$posts as $post) {
   
$item = $xml->addChild('item');
   
$elem = $item->addChild('slug');
   
$elem->addCData($post['slug']);
   
$elem = $item->addChild('title');
   
$elem->addCData($post['title']);
   
$elem = $item->addChild('date');
   
$elem->addCData($post['date']);
   
$elem = $item->addChild('tags');
   
$elem->addCData($post['tags']);
   
$elem = $item->addChild('private');
   
$elem->addCData($post['private']);
  }
  return @
XMLsave($xml, NMPOSTCACHE);
}




?>