} elseif (is_array($v)) {
// Serialize and BASE64-encode the array
$v = base64_encode(serialize($v));
+ } elseif ($this->name == 'config') {
+ // Configuration
+ $GLOBALS['cache_array']['config'][$data['config']][$k] = $v;
+ } elseif ($this->name == 'filter') {
+ // Filter
+ $GLOBALS['cache_array']['filter']['chains'][$data['filter_name']][$data['filter_function']] = $data['filter_active'];
+ $GLOBALS['cache_array']['filter']['counter'][$data['filter_name']][$data['filter_function']] = $data['filter_counter'];
+ $GLOBALS['cache_array']['filter']['loaded'][$data['filter_name']][$data['filter_function']] = true;
+ } elseif ($this->name == 'modules') {
+ // Modules
+ $GLOBALS['cache_array']['modules'][$k][$data['module']] = $v;
+ } elseif ($this->name == 'admin') {
+ // Modules
+ if ($k == 'login') {
+ $GLOBALS['cache_array']['admin'][$k][$data['admin_id']] = $v;
+ } else {
+ $GLOBALS['cache_array']['admin'][$k][$data['login']] = $v;
+ }
+ } elseif ($this->name == 'refdepths') {
+ // Referal levels
+ $GLOBALS['cache_array']['refdepths'][$k][$data['id']] = $v;
+ } elseif ($this->name == 'revision') {
+ // Revision data
+ $GLOBALS['cache_array']['revision'][$k] = $v;
+ } elseif ($this->name == 'themes') {
+ // Themes
+ if ($k == 'theme_path') {
+ $GLOBALS['cache_array']['themes'][$k][$data['id']] = $v;
+ } else {
+ $GLOBALS['cache_array']['themes'][$k][$data['theme_path']] = $v;
+ }
+ } else {
+ // Finialize the cache and close it
+ $this->finialize();
+
+ // Remove cache
+ $this->removeCacheFile(true);
+
+ // Unsupported cache found!
+ debug_report_bug('Unsupported cache ' . $this->name . ' detected.');
}
// Write cache line to file
fwrite($this->pointer, $this->rewriteEntry($k, $v));
- }
+ } // END - foreach
} else {
// Cannot create file
addFatalMessage(__METHOD__, __LINE__, "(<font color=\"#0000aa\">".__LINE__."</font>): ".getMessage('CACHE_PROBLEMS_DETECTED'));
}
// Destroy an existing cache file
- function removeCacheFile ($removeArray = false, $force = false) {
+ function removeCacheFile ($force = false) {
// Reset read status
$this->resetCacheReadStatus();
// Reset read status
$this->resetCacheReadStatus();
- // Shall we remove the array from memory?
- if ($removeArray === true) {
- // Debug message if allowed
- if (isDebugModeEnabled()) {
- // Debug message
- logDebugMessage(__METHOD__, __LINE__, 'removing array!');
- } // END - if
-
- // Remove it from memory
- unset($GLOBALS['cache_array'][$this->name]);
- } // END - if
-
// Is the file there?
if (!$this->isCacheReadable()) {
// The cache does no longer exist so kill the content
logDebugMessage(__METHOD__, __LINE__, "Cache {$this->name} has missing version entry for extension {$ext_name}! Purging cache...");
// Remove the cache file
- $this->removeCacheFile(false, true);
+ $this->removeCacheFile(true);
}
} else {
// Not installed, does always match