From b2ea1793389a82ee8d02f14d3d8d992cae6f862e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petr=20S=CC=8Ckoda?= Date: Wed, 23 Oct 2013 20:20:56 +0200 Subject: [PATCH] MDL-42503 treat $CFG->filterall as a real cache flag - verify during cache resets --- lib/weblib.php | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/lib/weblib.php b/lib/weblib.php index 4bfabeb6b51..955526e6b69 100644 --- a/lib/weblib.php +++ b/lib/weblib.php @@ -1323,12 +1323,31 @@ function format_text($text, $format = FORMAT_MOODLE, $options = null, $courseidd function reset_text_filters_cache($phpunitreset = false) { global $CFG, $DB; - if (!$phpunitreset) { - $DB->delete_records('cache_text'); + if ($phpunitreset) { + // HTMLPurifier does not change, DB is already reset to defaults, + // nothing to do here. + return; } + $DB->delete_records('cache_text'); + $purifdir = $CFG->cachedir.'/htmlpurifier'; remove_dir($purifdir, true); + + // Update $CFG->filterall cache flag. + if (empty($CFG->stringfilters)) { + set_config('filterall', 0); + return; + } + $installedfilters = core_component::get_plugin_list('filter'); + $filters = explode(',', $CFG->stringfilters); + foreach ($filters as $filter) { + if (isset($installedfilters[$filter])) { + set_config('filterall', 1); + return; + } + } + set_config('filterall', 0); } /**