aboutsummaryrefslogtreecommitdiff
path: root/engine
diff options
context:
space:
mode:
Diffstat (limited to 'engine')
-rw-r--r--engine/lib/elgglib.php52
-rw-r--r--engine/lib/plugins.php12
2 files changed, 43 insertions, 21 deletions
diff --git a/engine/lib/elgglib.php b/engine/lib/elgglib.php
index 524fb548a..872e95c56 100644
--- a/engine/lib/elgglib.php
+++ b/engine/lib/elgglib.php
@@ -302,18 +302,6 @@
// Start the output buffer, find the requested view file, and execute it
ob_start();
- // Attempt to cache views [EXPERIMENTAL]
- /*if (ob_get_level()==1) {
- $view_hash = elgg_get_viewhash($view, $vars);
- $view_cache = elgg_get_filepath_cache();
- $cached_view = $view_cache->load($view_hash);
-
- if ($cached_view) {
- ob_get_clean();
- return $cached_view;
- }
- }*/
-
foreach($viewlist as $priority => $view) {
$view_location = elgg_get_view_location($view, $viewtype);
@@ -337,10 +325,6 @@
}
- // Cache view [EXPERIMENTAL]
- //if (ob_get_level()==1) // Only cache top level view
- // $view_cache->save($view_hash, $content);
-
// Save the output buffer into the $content variable
$content = ob_get_clean();
@@ -497,6 +481,42 @@
}
/**
+ * Function which resets the file path cache.
+ *
+ */
+ function elgg_filepath_cache_reset()
+ {
+ $cache = elgg_get_filepath_cache();
+ return $cache->delete('view_paths');
+ }
+
+ /**
+ * Saves a filepath cache.
+ *
+ * @param mixed $data
+ */
+ function elgg_filepath_cache_save($data)
+ {
+ $cache = elgg_get_filepath_cache();
+ return $cache->save('view_paths', $data);
+ }
+
+ /**
+ * Retrieve the contents of the filepath cache.
+ *
+ */
+ function elgg_filepath_cache_load()
+ {
+ $cache = elgg_get_filepath_cache();
+ $cached_view_paths = $cache->load('view_paths');
+
+ if ($cached_view_paths)
+ return $cached_view_paths;
+
+ return NULL;
+ }
+
+ /**
* Internal function for retrieving views used by elgg_view_tree
*
* @param unknown_type $dir
diff --git a/engine/lib/plugins.php b/engine/lib/plugins.php
index 0a373457e..771fe7306 100644
--- a/engine/lib/plugins.php
+++ b/engine/lib/plugins.php
@@ -192,7 +192,11 @@
$plugins = serialize($plugins);
- $site->pluginorder = $plugins;
+ $site->pluginorder = $plugins;
+
+ // Regenerate caches
+ elgg_view_regenerate_simplecache();
+ elgg_filepath_cache_reset();
return $plugins;
@@ -213,13 +217,11 @@
function load_plugins() {
global $CONFIG;
-
- $cache = elgg_get_filepath_cache();
if (!empty($CONFIG->pluginspath)) {
// See if we have cached values for things
- $cached_view_paths = $cache->load('view_paths');
+ $cached_view_paths = elgg_filepath_cache_load();
if ($cached_view_paths) $CONFIG->views = unserialize($cached_view_paths);
// temporary disable all plugins if there is a file called 'disabled' in the plugin dir
@@ -259,7 +261,7 @@
// Cache results
if (!$cached_view_paths)
- $cache->save('view_paths', serialize($CONFIG->views));
+ elgg_filepath_cache_save(serialize($CONFIG->views));
}
}