mirror of
https://github.com/moodle/moodle.git
synced 2025-04-13 12:32:08 +02:00
MDL-59142 core_theme: cache post-processed css
Thanks Cameron Ball for the base patch
This commit is contained in:
parent
4c6063bff9
commit
4cc2f33b08
@ -60,6 +60,7 @@ $string['cachedef_navigation_expandcourse'] = 'Navigation expandable courses';
|
||||
$string['cachedef_observers'] = 'Event observers';
|
||||
$string['cachedef_plugin_functions'] = 'Plugins available callbacks';
|
||||
$string['cachedef_plugin_manager'] = 'Plugin info manager';
|
||||
$string['cachedef_postprocessedcss'] = 'Post processed CSS';
|
||||
$string['cachedef_tagindexbuilder'] = 'Search results for tagged items';
|
||||
$string['cachedef_questiondata'] = 'Question definitions';
|
||||
$string['cachedef_repositories'] = 'Repositories instances data';
|
||||
|
@ -328,4 +328,11 @@ $definitions = array(
|
||||
'staticaccelerationsize' => 1
|
||||
),
|
||||
|
||||
// Caches processed CSS.
|
||||
'postprocessedcss' => array(
|
||||
'mode' => cache_store::MODE_APPLICATION,
|
||||
'simplekeys' => true,
|
||||
'simpledata' => true,
|
||||
'staticacceleration' => false,
|
||||
),
|
||||
);
|
||||
|
@ -60,6 +60,9 @@ function theme_reset_all_caches() {
|
||||
$cache->purge();
|
||||
}
|
||||
|
||||
// Purge compiled post processed css.
|
||||
cache::make('core', 'postprocessedcss')->purge();
|
||||
|
||||
if ($PAGE) {
|
||||
$PAGE->reload_theme();
|
||||
}
|
||||
@ -907,6 +910,44 @@ class theme_config {
|
||||
|
||||
return $csscontent;
|
||||
}
|
||||
/**
|
||||
* Set post processed CSS content cache.
|
||||
*
|
||||
* @param string $csscontent The post processed CSS content.
|
||||
* @return bool True if the content was successfully cached.
|
||||
*/
|
||||
public function set_css_content_cache($csscontent) {
|
||||
|
||||
$cache = cache::make('core', 'postprocessedcss');
|
||||
$key = $this->get_css_cache_key();
|
||||
|
||||
return $cache->set($key, $csscontent);
|
||||
}
|
||||
|
||||
/**
|
||||
* Return cached post processed CSS content.
|
||||
*
|
||||
* @return bool|string The cached css content or false if not found.
|
||||
*/
|
||||
public function get_css_cached_content() {
|
||||
|
||||
$key = $this->get_css_cache_key();
|
||||
$cache = cache::make('core', 'postprocessedcss');
|
||||
|
||||
return $cache->get($key);
|
||||
}
|
||||
|
||||
/**
|
||||
* Generate the css content cache key.
|
||||
*
|
||||
* @return string The post processed css cache key.
|
||||
*/
|
||||
public function get_css_cache_key() {
|
||||
$nosvg = (!$this->use_svg_icons()) ? 'nosvg_' : '';
|
||||
$rtlmode = ($this->rtlmode == true) ? 'rtl' : 'ltr';
|
||||
|
||||
return $nosvg . $this->name . '_' . $rtlmode;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the theme designer css markup,
|
||||
|
@ -168,7 +168,10 @@ if ($type === 'editor') {
|
||||
}
|
||||
|
||||
// Older IEs require smaller chunks.
|
||||
$csscontent = $theme->get_css_content();
|
||||
if (!$csscontent = $theme->get_css_cached_content()) {
|
||||
$csscontent = $theme->get_css_content();
|
||||
$theme->set_css_content_cache($csscontent);
|
||||
}
|
||||
|
||||
$relroot = preg_replace('|^http.?://[^/]+|', '', $CFG->wwwroot);
|
||||
if (!empty($slashargument)) {
|
||||
|
@ -29,7 +29,7 @@
|
||||
|
||||
defined('MOODLE_INTERNAL') || die();
|
||||
|
||||
$version = 2017060800.00; // YYYYMMDD = weekly release date of this DEV branch.
|
||||
$version = 2017060800.01; // YYYYMMDD = weekly release date of this DEV branch.
|
||||
// RR = release increments - 00 in DEV branches.
|
||||
// .XX = incremental changes.
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user