diff --git a/lib/outputrenderers.php b/lib/outputrenderers.php index 4b9f5576729..7ea701bf00b 100644 --- a/lib/outputrenderers.php +++ b/lib/outputrenderers.php @@ -84,8 +84,20 @@ class renderer_base { $themename = $this->page->theme->name; $themerev = theme_get_revision(); + // Create new localcache directory. $cachedir = make_localcache_directory("mustache/$themerev/$themename"); + // Remove old localcache directories. + $mustachecachedirs = glob("{$CFG->localcachedir}/mustache/*", GLOB_ONLYDIR); + foreach ($mustachecachedirs as $localcachedir) { + $cachedrev = []; + preg_match("/\/mustache\/([0-9]+)$/", $localcachedir, $cachedrev); + $cachedrev = isset($cachedrev[1]) ? intval($cachedrev[1]) : 0; + if ($cachedrev > 0 && $cachedrev < $themerev) { + fulldelete($localcachedir); + } + } + $loader = new \core\output\mustache_filesystem_loader(); $stringhelper = new \core\output\mustache_string_helper(); $quotehelper = new \core\output\mustache_quote_helper();