diff options
-rw-r--r-- | engine/lib/cache.php | 43 |
1 files changed, 17 insertions, 26 deletions
diff --git a/engine/lib/cache.php b/engine/lib/cache.php index 633c470eb..6f6a02abe 100644 --- a/engine/lib/cache.php +++ b/engine/lib/cache.php @@ -41,7 +41,7 @@ function elgg_reset_system_cache() { $cache = elgg_get_system_cache(); $result = true; - $cache_types = array('view_paths', 'view_types'); + $cache_types = array('view_locations', 'view_types'); foreach ($cache_types as $type) { $result = $result && $cache->delete($type); } @@ -401,26 +401,23 @@ function elgg_invalidate_simplecache() { */ function _elgg_load_cache() { global $CONFIG; + + $CONFIG->system_cache_loaded = false; + + $CONFIG->views = new stdClass(); + $data = elgg_load_system_cache('view_locations'); + if (!is_string($data)) { + return; + } + $CONFIG->views->locations = unserialize($data); - $result = true; - $cache_types = array( - 'view_paths' => 'views', - 'view_types' => 'view_types', - ); - $data = array(); - foreach ($cache_types as $type => $var_name) { - $data[$var_name] = elgg_load_system_cache($type); - $result = $result && is_string($data[$var_name]); + $data = elgg_load_system_cache('view_types'); + if (!is_string($data)) { + return; } + $CONFIG->view_types = unserialize($data); - if ($result) { - $CONFIG->system_cache_loaded = true; - foreach ($data as $name => $value) { - $CONFIG->$name = unserialize($value); - } - } else { - $CONFIG->system_cache_loaded = false; - } + $CONFIG->system_cache_loaded = true; } /** @@ -446,14 +443,8 @@ function _elgg_cache_init() { // cache system data if enabled and not loaded if ($CONFIG->system_cache_enabled && !$CONFIG->system_cache_loaded) { - $cache_types = array( - 'view_paths' => 'views', - 'view_types' => 'view_types', - ); - $data = array(); - foreach ($cache_types as $type => $var_name) { - elgg_save_system_cache($type, serialize($CONFIG->$var_name)); - } + elgg_save_system_cache('view_locations', serialize($CONFIG->views->locations)); + elgg_save_system_cache('view_types', serialize($CONFIG->view_types)); } } |