0byt3m1n1
Path:
/
data
/
applications
/
aps
/
xoops
/
2.5.1a-0
/
standard
/
htdocs
/
Frameworks
/
art
/
[
Home
]
File: functions.cache.php
<?php /** * Cache handlers * * @copyright The XOOPS project http://sourceforge.net/projects/xoops/ * @license GNU GPL 2 (http://www.gnu.org/licenses/old-licenses/gpl-2.0.html) * @author Taiwen Jiang <phppp@users.sourceforge.net> * @since 1.00 * @version $Id: functions.cache.php 2223 2008-10-04 04:46:03Z phppp $ * @package Frameworks * @subpackage art */ if (!defined("FRAMEWORKS_ART_FUNCTIONS_CACHE")): define("FRAMEWORKS_ART_FUNCTIONS_CACHE", true); function mod_generateCacheId_byGroup($groups = null) { global $xoopsUser; if (!empty($groups) && is_array($groups)) { } elseif (is_object( $xoopsUser )) { $groups = $xoopsUser->getGroups(); } if (!empty($groups) && is_array($groups)) { sort($groups); $contentCacheId = substr( md5(implode(",", $groups).XOOPS_DB_PASS.XOOPS_DB_NAME), 0, strlen(XOOPS_DB_USER) * 2 ); } else { $contentCacheId = XOOPS_GROUP_ANONYMOUS; } return $contentCacheId; } function mod_generateCacheId($groups = null) { return mod_generateCacheId_byGroup($groups); } function mod_createFile($data, $name = null, $dirname = null, $root_path = XOOPS_CACHE_PATH) { global $xoopsModule; $name = ($name) ? $name : strval(time()); $dirname = ($dirname) ? $dirname : (is_object($xoopsModule) ? $xoopsModule->getVar("dirname", "n") : "system"); xoops_load('XoopsCache'); $key = "{$dirname}_{$name}"; return XoopsCache::write($key, $data); } function mod_createCacheFile($data, $name = null, $dirname = null) { return mod_createFile($data, $name, $dirname); } function mod_createCacheFile_byGroup($data, $name = null, $dirname = null, $groups = null) { $name .= mod_generateCacheId_byGroup(); return mod_createCacheFile($data, $name, $dirname); } function mod_loadFile($name, $dirname = null, $root_path = XOOPS_CACHE_PATH) { global $xoopsModule; $data = null; if (empty($name)) return $data; $dirname = ($dirname) ? $dirname : (is_object($xoopsModule) ? $xoopsModule->getVar("dirname", "n") : "system"); xoops_load('XoopsCache'); $key = "{$dirname}_{$name}"; return XoopsCache::read($key); } function mod_loadCacheFile($name, $dirname = null) { $data = mod_loadFile($name, $dirname); return $data; } function mod_loadCacheFile_byGroup($name, $dirname = null, $groups = null) { $name .= mod_generateCacheId_byGroup(); $data = mod_loadFile($name, $dirname); return $data; } /* Shall we use the function of glob for better performance ? */ function mod_clearFile($name = "", $dirname = null, $root_path = XOOPS_CACHE_PATH) { if (empty($dirname)) { $pattern = ($dirname) ? "{$dirname}_{$name}.*\.php" : "[^_]+_{$name}.*\.php"; if ($handle = opendir($root_path)) { while (false !== ($file = readdir($handle))) { if (is_file($root_path . '/' . $file) && preg_match("/^{$pattern}$/", $file)) { @unlink($root_path . '/' . $file); } } closedir($handle); } } else { foreach (glob($root_path . "/{$dirname}_{$name}*.php") as $file) { @unlink($file); } } return true; } function mod_clearCacheFile($name = "", $dirname = null) { return mod_clearFile($name, $dirname); } function mod_clearSmartyCache($pattern = "") { global $xoopsModule; if (empty($pattern)) { $dirname = (is_object($xoopsModule) ? $xoopsModule->getVar("dirname", "n") : "system"); $pattern = "/(^{$dirname}\^.*\.html$|blk_{$dirname}_.*[^\.]*\.html$)/"; } if ($handle = opendir(XOOPS_CACHE_PATH)) { while (false !== ($file = readdir($handle))) { if (is_file(XOOPS_CACHE_PATH . '/' . $file) && preg_match($pattern, $file)) { @unlink(XOOPS_CACHE_PATH . '/' . $file); } } closedir($handle); } return true; } endif; ?>