mirror of
https://github.com/moodle/moodle.git
synced 2025-08-04 08:26:37 +02:00
Merge branch 'w37_MDL-35318_m24_stringrevisions' of git://github.com/skodak/moodle
This commit is contained in:
commit
a8cdd8758b
5 changed files with 66 additions and 10 deletions
|
@ -129,8 +129,10 @@ class tinymce_texteditor extends texteditor {
|
|||
|
||||
$fontselectlist = empty($config->fontselectlist) ? '' : $config->fontselectlist;
|
||||
|
||||
// TODO: MDL-35318 somehow implement cache invalidation - we need to get lang revision somehow and sync purging.
|
||||
$langrev = -1;
|
||||
if (!empty($CFG->cachejs)) {
|
||||
$langrev = get_string_manager()->get_revision();
|
||||
}
|
||||
|
||||
$params = array(
|
||||
'moodle_config' => $config,
|
||||
|
|
|
@ -24,7 +24,7 @@
|
|||
|
||||
defined('MOODLE_INTERNAL') || die();
|
||||
|
||||
$plugin->version = 2012090700; // The current plugin version (Date: YYYYMMDDXX)
|
||||
$plugin->version = 2012090900; // The current plugin version (Date: YYYYMMDDXX)
|
||||
$plugin->requires = 2012083100; // Requires this Moodle version
|
||||
$plugin->component = 'editor_tinymce'; // Full name of the plugin (used for diagnostics)
|
||||
$plugin->release = '3.6.0'; // This is NOT a directory name, see lib.php if you need to know where is the editor code!
|
||||
|
|
|
@ -6371,8 +6371,16 @@ interface string_manager {
|
|||
|
||||
/**
|
||||
* Invalidates all caches, should the implementation use any
|
||||
* @param bool $phpunitreset true means called from our PHPUnit integration test reset
|
||||
*/
|
||||
public function reset_caches();
|
||||
public function reset_caches($phpunitreset = false);
|
||||
|
||||
/**
|
||||
* Returns string revision counter, this is incremented after any
|
||||
* string cache reset.
|
||||
* @return int lang string revision counter, -1 if unknown
|
||||
*/
|
||||
public function get_revision();
|
||||
}
|
||||
|
||||
|
||||
|
@ -6938,8 +6946,9 @@ class core_string_manager implements string_manager {
|
|||
|
||||
/**
|
||||
* Clears both in-memory and on-disk caches
|
||||
* @param bool $phpunitreset true means called from our PHPUnit integration test reset
|
||||
*/
|
||||
public function reset_caches() {
|
||||
public function reset_caches($phpunitreset = false) {
|
||||
global $CFG;
|
||||
require_once("$CFG->libdir/filelib.php");
|
||||
|
||||
|
@ -6949,11 +6958,41 @@ class core_string_manager implements string_manager {
|
|||
// clear the in-memory cache of loaded strings
|
||||
$this->cache = array();
|
||||
|
||||
if (!$phpunitreset) {
|
||||
// Increment the revision counter.
|
||||
$langrev = get_config('core', 'langrev');
|
||||
$next = time();
|
||||
if ($langrev !== false and $next <= $langrev and $langrev - $next < 60*60) {
|
||||
// This resolves problems when reset is requested repeatedly within 1s,
|
||||
// the < 1h condition prevents accidental switching to future dates
|
||||
// because we might not recover from it.
|
||||
$next = $langrev+1;
|
||||
}
|
||||
set_config('langrev', $next);
|
||||
}
|
||||
|
||||
// clear the cache containing the list of available translations
|
||||
// and re-populate it again
|
||||
fulldelete($this->menucache);
|
||||
$this->get_list_of_translations(true);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns string revision counter, this is incremented after any
|
||||
* string cache reset.
|
||||
* @return int lang string revision counter, -1 if unknown
|
||||
*/
|
||||
public function get_revision() {
|
||||
global $CFG;
|
||||
if (!$this->usediskcache) {
|
||||
return -1;
|
||||
}
|
||||
if (isset($CFG->langrev)) {
|
||||
return (int)$CFG->langrev;
|
||||
} else {
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
@ -7168,8 +7207,20 @@ class install_string_manager implements string_manager {
|
|||
|
||||
/**
|
||||
* This implementation does not use any caches
|
||||
* @param bool $phpunitreset true means called from our PHPUnit integration test reset
|
||||
*/
|
||||
public function reset_caches() {}
|
||||
public function reset_caches($phpunitreset = false) {
|
||||
// Nothing to do.
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns string revision counter, this is incremented after any
|
||||
* string cache reset.
|
||||
* @return int lang string revision counter, -1 if unknown
|
||||
*/
|
||||
public function get_revision() {
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -609,7 +609,8 @@ class phpunit_util {
|
|||
|
||||
// reset all static caches
|
||||
accesslib_clear_all_caches(true);
|
||||
get_string_manager()->reset_caches();
|
||||
get_string_manager()->reset_caches(true);
|
||||
reset_text_filters_cache(true);
|
||||
events_get_handlers('reset');
|
||||
textlib::reset_caches();
|
||||
if (class_exists('repository')) {
|
||||
|
|
|
@ -1227,14 +1227,16 @@ function format_text($text, $format = FORMAT_MOODLE, $options = NULL, $courseid_
|
|||
/**
|
||||
* Resets all data related to filters, called during upgrade or when filter settings change.
|
||||
*
|
||||
* @global object
|
||||
* @global object
|
||||
* @param bool $phpunitreset true means called from our PHPUnit integration test reset
|
||||
* @return void
|
||||
*/
|
||||
function reset_text_filters_cache() {
|
||||
function reset_text_filters_cache($phpunitreset = false) {
|
||||
global $CFG, $DB;
|
||||
|
||||
$DB->delete_records('cache_text');
|
||||
if (!$phpunitreset) {
|
||||
$DB->delete_records('cache_text');
|
||||
}
|
||||
|
||||
$purifdir = $CFG->cachedir.'/htmlpurifier';
|
||||
remove_dir($purifdir, true);
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue