aboutsummaryrefslogtreecommitdiff
path: root/engine/lib/elgglib.php
diff options
context:
space:
mode:
authorbrettp <brettp@36083f99-b078-4883-b0ff-0f9b5a30f544>2010-06-04 15:36:36 +0000
committerbrettp <brettp@36083f99-b078-4883-b0ff-0f9b5a30f544>2010-06-04 15:36:36 +0000
commitf4b1ebbe468e295d59bf7285b335aa51bcf132bb (patch)
tree517ed7919069d8a6c3fb34235b048a2bbab91e98 /engine/lib/elgglib.php
parent559cae5d9035f65f12c1cc25cffe05880a2734c4 (diff)
downloadelgg-f4b1ebbe468e295d59bf7285b335aa51bcf132bb.tar.gz
elgg-f4b1ebbe468e295d59bf7285b335aa51bcf132bb.tar.bz2
Merge r6301:6338 from 1.7 to trunk.
git-svn-id: http://code.elgg.org/elgg/trunk@6356 36083f99-b078-4883-b0ff-0f9b5a30f544
Diffstat (limited to 'engine/lib/elgglib.php')
-rw-r--r--engine/lib/elgglib.php45
1 files changed, 31 insertions, 14 deletions
diff --git a/engine/lib/elgglib.php b/engine/lib/elgglib.php
index f890b3518..e86b7a4c8 100644
--- a/engine/lib/elgglib.php
+++ b/engine/lib/elgglib.php
@@ -431,12 +431,19 @@ function elgg_view_register_simplecache($viewname) {
/**
* Regenerates the simple cache.
*
+ * @param string $viewtype Optional viewtype to regenerate
* @see elgg_view_register_simplecache
*
*/
-function elgg_view_regenerate_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
@@ -445,25 +452,35 @@ function elgg_view_regenerate_simplecache() {
// the trigger correctly when the first view is actually being output.
$CONFIG->pagesetupdone = TRUE;
- if (isset($CONFIG->views->simplecache)) {
- if (!file_exists($CONFIG->dataroot . 'views_simplecache')) {
- @mkdir($CONFIG->dataroot . 'views_simplecache');
- }
+ if (!file_exists($CONFIG->dataroot . 'views_simplecache')) {
+ mkdir($CONFIG->dataroot . 'views_simplecache');
+ }
- if (!empty($CONFIG->views->simplecache) && is_array($CONFIG->views->simplecache)) {
- 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);
- }
+ 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', 0);
+ datalist_set("simplecache_lastupdate_$viewtype", $lastcached);
+ datalist_set("simplecache_lastcached_$viewtype", $lastcached);
}
+ elgg_set_viewtype($original_viewtype);
+
unset($CONFIG->pagesetupdone);
}