]> gitweb.fluxo.info Git - lorea/elgg.git/commitdiff
Fixes #2920: Moved simplecache functions into cache.php
authorewinslow <ewinslow@36083f99-b078-4883-b0ff-0f9b5a30f544>
Tue, 15 Feb 2011 01:11:03 +0000 (01:11 +0000)
committerewinslow <ewinslow@36083f99-b078-4883-b0ff-0f9b5a30f544>
Tue, 15 Feb 2011 01:11:03 +0000 (01:11 +0000)
git-svn-id: http://code.elgg.org/elgg/trunk@8248 36083f99-b078-4883-b0ff-0f9b5a30f544

engine/lib/cache.php
engine/lib/views.php

index 72293022a4a545ec75dec00b02604286c8bd425d..1f24cddd1d4bb1fe174656d396953030f0c9b384 100644 (file)
@@ -7,6 +7,8 @@
  * @subpackage Cache
  */
 
+/* Filepath Cache */
+
 /**
  * Returns an ElggCache object suitable for caching view
  * file load paths to disk under $CONFIG->dataroot.
@@ -112,3 +114,205 @@ function elgg_disable_filepath_cache() {
        $CONFIG->viewpath_cache_enabled = 0;
        elgg_filepath_cache_reset();
 }
+
+/* Simplecache */
+
+/**
+ * Registers a view to simple cache.
+ *
+ * Simple cache is a caching mechanism that saves the output of
+ * views and its extensions into a file.  If the view is called
+ * by the {@link simplecache/view.php} file, the Elgg framework will
+ * not be loaded and the contents of the view will returned
+ * from file.
+ *
+ * @warning Simple cached views must take no parameters and return
+ * the same content no matter who is logged in.
+ *
+ * @note CSS and the basic JS views are cached by the engine.
+ *
+ * @param string $viewname View name
+ *
+ * @return void
+ * @link http://docs.elgg.org/Views/Simplecache
+ * @see elgg_view_regenerate_simplecache()
+ */
+function elgg_view_register_simplecache($viewname) {
+       global $CONFIG;
+
+       if (!isset($CONFIG->views)) {
+               $CONFIG->views = new stdClass;
+       }
+
+       if (!isset($CONFIG->views->simplecache)) {
+               $CONFIG->views->simplecache = array();
+       }
+
+       $CONFIG->views->simplecache[] = $viewname;
+}
+
+/**
+ * Get the URL for the cached file
+ *
+ * @param string $type The file type: css or js
+ * @param string $view The view name
+ * @return string
+ * @since 1.8.0
+ */
+function elgg_view_get_simplecache_url($type, $view) {
+       global $CONFIG;
+       $lastcache = (int)$CONFIG->lastcache;
+
+       if (elgg_view_is_simplecache_enabled()) {
+               $viewtype = elgg_get_viewtype();
+               $url = elgg_get_site_url() . "cache/$type/$view/$viewtype/$view.$lastcache.$type";
+       } else {
+               $url = elgg_get_site_url() . "pg/$type/$view.$lastcache.$type";
+       }
+       return $url;
+}
+
+/**
+ * Regenerates the simple cache.
+ *
+ * @warning This does not invalidate the cache, but actively resets it.
+ *
+ * @param string $viewtype Optional viewtype to regenerate
+ *
+ * @return void
+ * @see elgg_view_register_simplecache()
+ */
+function elgg_view_regenerate_simplecache($viewtype = NULL) {
+       global $CONFIG;
+
+       if (!isset($CONFIG->views->simplecache) || !is_array($CONFIG->views->simplecache)) {
+               return;
+       }
+
+       $lastcached = time();
+
+       // @todo elgg_view() checks if the page set is done (isset($CONFIG->pagesetupdone)) and
+       // triggers an event if it's not. Calling elgg_view() here breaks submenus
+       // (at least) because the page setup hook is called before any
+       // contexts can be correctly set (since this is called before page_handler()).
+       // To avoid this, lie about $CONFIG->pagehandlerdone to force
+       // the trigger correctly when the first view is actually being output.
+       $CONFIG->pagesetupdone = TRUE;
+
+       if (!file_exists($CONFIG->dataroot . 'views_simplecache')) {
+               mkdir($CONFIG->dataroot . 'views_simplecache');
+       }
+
+       if (isset($viewtype)) {
+               $viewtypes = array($viewtype);
+       } else {
+               $viewtypes = $CONFIG->view_types;
+       }
+
+       $original_viewtype = elgg_get_viewtype();
+
+       foreach ($viewtypes as $viewtype) {
+               elgg_set_viewtype($viewtype);
+               foreach ($CONFIG->views->simplecache as $view) {
+                       $viewcontents = elgg_view($view);
+                       $viewname = md5(elgg_get_viewtype() . $view);
+                       if ($handle = fopen($CONFIG->dataroot . 'views_simplecache/' . $viewname, 'w')) {
+                               fwrite($handle, $viewcontents);
+                               fclose($handle);
+                       }
+               }
+
+               datalist_set("simplecache_lastupdate_$viewtype", $lastcached);
+               datalist_set("simplecache_lastcached_$viewtype", $lastcached);
+       }
+
+       elgg_set_viewtype($original_viewtype);
+
+       // needs to be set for links in html head
+       $CONFIG->lastcache = $lastcached;
+
+       unset($CONFIG->pagesetupdone);
+}
+
+/**
+ * Is simple cache enabled
+ *
+ * @return bool
+ * @since 1.8.0
+ */
+function elgg_view_is_simplecache_enabled() {
+       global $CONFIG;
+
+       if ($CONFIG->simplecache_enabled) {
+               return true;
+       }
+
+       return false;
+}
+
+/**
+ * Enables the simple cache.
+ *
+ * @access private
+ * @see elgg_view_register_simplecache()
+ * @return void
+ */
+function elgg_view_enable_simplecache() {
+       global $CONFIG;
+
+       datalist_set('simplecache_enabled', 1);
+       $CONFIG->simplecache_enabled = 1;
+       elgg_view_regenerate_simplecache();
+}
+
+/**
+ * Disables the simple cache.
+ *
+ * @warning Simplecache is also purged when disabled.
+ *
+ * @access private
+ * @see elgg_view_register_simplecache()
+ * @return void
+ */
+function elgg_view_disable_simplecache() {
+       global $CONFIG;
+       if ($CONFIG->simplecache_enabled) {
+               datalist_set('simplecache_enabled', 0);
+               $CONFIG->simplecache_enabled = 0;
+
+               // purge simple cache
+               if ($handle = opendir($CONFIG->dataroot . 'views_simplecache')) {
+                       while (false !== ($file = readdir($handle))) {
+                               if ($file != "." && $file != "..") {
+                                       unlink($CONFIG->dataroot . 'views_simplecache/' . $file);
+                               }
+                       }
+                       closedir($handle);
+               }
+       }
+}
+
+/**
+ * Invalidates all cached views in the simplecache
+ *
+ * @return bool
+ * @since 1.7.4
+ */
+function elgg_invalidate_simplecache() {
+       global $CONFIG;
+
+       $return = TRUE;
+
+       if ($handle = opendir($CONFIG->dataroot . 'views_simplecache')) {
+               while (false !== ($file = readdir($handle))) {
+                       if ($file != "." && $file != "..") {
+                               $return = $return && unlink($CONFIG->dataroot . 'views_simplecache/' . $file);
+                       }
+               }
+               closedir($handle);
+       } else {
+               $return = FALSE;
+       }
+
+       return $return;
+}
index 865212a062c2040ba2ab8b64aa11dfa273cb6a30..49fba8bf6c6ef94aa75de4c42b7ac17c8b9a8007 100644 (file)
@@ -1452,206 +1452,6 @@ function autoregister_views($view_base, $folder, $base_location_path, $viewtype)
        return FALSE;
 }
 
-/**
- * Registers a view to simple cache.
- *
- * Simple cache is a caching mechanism that saves the output of
- * views and its extensions into a file.  If the view is called
- * by the {@link simplecache/view.php} file, the Elgg framework will
- * not be loaded and the contents of the view will returned
- * from file.
- *
- * @warning Simple cached views must take no parameters and return
- * the same content no matter who is logged in.
- *
- * @note CSS and the basic JS views are cached by the engine.
- *
- * @param string $viewname View name
- *
- * @return void
- * @link http://docs.elgg.org/Views/Simplecache
- * @see elgg_view_regenerate_simplecache()
- */
-function elgg_view_register_simplecache($viewname) {
-       global $CONFIG;
-
-       if (!isset($CONFIG->views)) {
-               $CONFIG->views = new stdClass;
-       }
-
-       if (!isset($CONFIG->views->simplecache)) {
-               $CONFIG->views->simplecache = array();
-       }
-
-       $CONFIG->views->simplecache[] = $viewname;
-}
-
-/**
- * Get the URL for the cached file
- *
- * @param string $type The file type: css or js
- * @param string $view The view name
- * @return string
- * @since 1.8.0
- */
-function elgg_view_get_simplecache_url($type, $view) {
-       global $CONFIG;
-       $lastcache = (int)$CONFIG->lastcache;
-
-       if (elgg_view_is_simplecache_enabled()) {
-               $viewtype = elgg_get_viewtype();
-               $url = elgg_get_site_url() . "cache/$type/$view/$viewtype/$view.$lastcache.$type";
-       } else {
-               $url = elgg_get_site_url() . "pg/$type/$view.$lastcache.$type";
-       }
-       return $url;
-}
-
-/**
- * Regenerates the simple cache.
- *
- * @warning This does not invalidate the cache, but actively resets it.
- *
- * @param string $viewtype Optional viewtype to regenerate
- *
- * @return void
- * @see elgg_view_register_simplecache()
- */
-function elgg_view_regenerate_simplecache($viewtype = NULL) {
-       global $CONFIG;
-
-       if (!isset($CONFIG->views->simplecache) || !is_array($CONFIG->views->simplecache)) {
-               return;
-       }
-
-       $lastcached = time();
-
-       // @todo elgg_view() checks if the page set is done (isset($CONFIG->pagesetupdone)) and
-       // triggers an event if it's not. Calling elgg_view() here breaks submenus
-       // (at least) because the page setup hook is called before any
-       // contexts can be correctly set (since this is called before page_handler()).
-       // To avoid this, lie about $CONFIG->pagehandlerdone to force
-       // the trigger correctly when the first view is actually being output.
-       $CONFIG->pagesetupdone = TRUE;
-
-       if (!file_exists($CONFIG->dataroot . 'views_simplecache')) {
-               mkdir($CONFIG->dataroot . 'views_simplecache');
-       }
-
-       if (isset($viewtype)) {
-               $viewtypes = array($viewtype);
-       } else {
-               $viewtypes = $CONFIG->view_types;
-       }
-
-       $original_viewtype = elgg_get_viewtype();
-
-       foreach ($viewtypes as $viewtype) {
-               elgg_set_viewtype($viewtype);
-               foreach ($CONFIG->views->simplecache as $view) {
-                       $viewcontents = elgg_view($view);
-                       $viewname = md5(elgg_get_viewtype() . $view);
-                       if ($handle = fopen($CONFIG->dataroot . 'views_simplecache/' . $viewname, 'w')) {
-                               fwrite($handle, $viewcontents);
-                               fclose($handle);
-                       }
-               }
-
-               datalist_set("simplecache_lastupdate_$viewtype", $lastcached);
-               datalist_set("simplecache_lastcached_$viewtype", $lastcached);
-       }
-
-       elgg_set_viewtype($original_viewtype);
-
-       // needs to be set for links in html head
-       $CONFIG->lastcache = $lastcached;
-
-       unset($CONFIG->pagesetupdone);
-}
-
-/**
- * Is simple cache enabled
- *
- * @return bool
- * @since 1.8.0
- */
-function elgg_view_is_simplecache_enabled() {
-       global $CONFIG;
-
-       if ($CONFIG->simplecache_enabled) {
-               return true;
-       }
-
-       return false;
-}
-
-/**
- * Enables the simple cache.
- *
- * @access private
- * @see elgg_view_register_simplecache()
- * @return void
- */
-function elgg_view_enable_simplecache() {
-       global $CONFIG;
-
-       datalist_set('simplecache_enabled', 1);
-       $CONFIG->simplecache_enabled = 1;
-       elgg_view_regenerate_simplecache();
-}
-
-/**
- * Disables the simple cache.
- *
- * @warning Simplecache is also purged when disabled.
- *
- * @access private
- * @see elgg_view_register_simplecache()
- * @return void
- */
-function elgg_view_disable_simplecache() {
-       global $CONFIG;
-       if ($CONFIG->simplecache_enabled) {
-               datalist_set('simplecache_enabled', 0);
-               $CONFIG->simplecache_enabled = 0;
-
-               // purge simple cache
-               if ($handle = opendir($CONFIG->dataroot . 'views_simplecache')) {
-                       while (false !== ($file = readdir($handle))) {
-                               if ($file != "." && $file != "..") {
-                                       unlink($CONFIG->dataroot . 'views_simplecache/' . $file);
-                               }
-                       }
-                       closedir($handle);
-               }
-       }
-}
-
-/**
- * Invalidates all cached views in the simplecache
- *
- * @return bool
- * @since 1.7.4
- */
-function elgg_invalidate_simplecache() {
-       global $CONFIG;
-
-       $return = TRUE;
-
-       if ($handle = opendir($CONFIG->dataroot . 'views_simplecache')) {
-               while (false !== ($file = readdir($handle))) {
-                       if ($file != "." && $file != "..") {
-                               $return = $return && unlink($CONFIG->dataroot . 'views_simplecache/' . $file);
-                       }
-               }
-               closedir($handle);
-       } else {
-               $return = FALSE;
-       }
-
-       return $return;
-}
-
 /**
  * Add the core Elgg head elements that could be cached
  */