mirror of
https://github.com/moodle/moodle.git
synced 2025-04-21 00:12:56 +02:00
Merge branch 'w43_MDL-37813_m26_filterall' of https://github.com/skodak/moodle
This commit is contained in:
commit
295825feb6
@ -112,11 +112,25 @@ class filter extends base {
|
||||
* @private
|
||||
*/
|
||||
public function uninstall_cleanup() {
|
||||
global $DB;
|
||||
global $DB, $CFG;
|
||||
|
||||
$DB->delete_records('filter_active', array('filter' => $this->name));
|
||||
$DB->delete_records('filter_config', array('filter' => $this->name));
|
||||
|
||||
if (empty($CFG->filterall)) {
|
||||
$stringfilters = array();
|
||||
} else if (!empty($CFG->stringfilters)) {
|
||||
$stringfilters = explode(',', $CFG->stringfilters);
|
||||
$stringfilters = array_combine($stringfilters, $stringfilters);
|
||||
} else {
|
||||
$stringfilters = array();
|
||||
}
|
||||
|
||||
unset($stringfilters[$this->name]);
|
||||
|
||||
set_config('stringfilters', implode(',', $stringfilters));
|
||||
set_config('filterall', !empty($stringfilters));
|
||||
|
||||
parent::uninstall_cleanup();
|
||||
}
|
||||
}
|
||||
|
@ -721,13 +721,23 @@ function filter_get_string_filters() {
|
||||
*/
|
||||
function filter_set_applies_to_strings($filter, $applytostrings) {
|
||||
$stringfilters = filter_get_string_filters();
|
||||
$numstringfilters = count($stringfilters);
|
||||
$prevfilters = $stringfilters;
|
||||
$allfilters = core_component::get_plugin_list('filter');
|
||||
|
||||
if ($applytostrings) {
|
||||
$stringfilters[$filter] = $filter;
|
||||
} else {
|
||||
unset($stringfilters[$filter]);
|
||||
}
|
||||
if (count($stringfilters) != $numstringfilters) {
|
||||
|
||||
// Remove missing filters.
|
||||
foreach ($stringfilters as $filter) {
|
||||
if (!isset($allfilters[$filter])) {
|
||||
unset($stringfilters[$filter]);
|
||||
}
|
||||
}
|
||||
|
||||
if ($prevfilters != $stringfilters) {
|
||||
set_config('stringfilters', implode(',', $stringfilters));
|
||||
set_config('filterall', !empty($stringfilters));
|
||||
}
|
||||
|
@ -606,23 +606,39 @@ class core_filterlib_testcase extends advanced_testcase {
|
||||
|
||||
public function test_set() {
|
||||
global $CFG;
|
||||
|
||||
$this->assertFileExists("$CFG->dirroot/filter/emailprotect"); // Any standard filter.
|
||||
$this->assertFileExists("$CFG->dirroot/filter/tidy"); // Any standard filter.
|
||||
$this->assertFileNotExists("$CFG->dirroot/filter/grgrggr"); // Any non-existent filter
|
||||
|
||||
// Setup fixture.
|
||||
$CFG->filterall = 0;
|
||||
$CFG->stringfilters = '';
|
||||
set_config('filterall', 0);
|
||||
set_config('stringfilters', '');
|
||||
// Exercise SUT.
|
||||
filter_set_applies_to_strings('name', true);
|
||||
filter_set_applies_to_strings('tidy', true);
|
||||
// Validate.
|
||||
$this->assertEquals('name', $CFG->stringfilters);
|
||||
$this->assertEquals('tidy', $CFG->stringfilters);
|
||||
$this->assertEquals(1, $CFG->filterall);
|
||||
|
||||
filter_set_applies_to_strings('grgrggr', true);
|
||||
$this->assertEquals('tidy', $CFG->stringfilters);
|
||||
$this->assertEquals(1, $CFG->filterall);
|
||||
|
||||
filter_set_applies_to_strings('emailprotect', true);
|
||||
$this->assertEquals('tidy,emailprotect', $CFG->stringfilters);
|
||||
$this->assertEquals(1, $CFG->filterall);
|
||||
}
|
||||
|
||||
public function test_unset_to_empty() {
|
||||
global $CFG;
|
||||
|
||||
$this->assertFileExists("$CFG->dirroot/filter/tidy"); // Any standard filter.
|
||||
|
||||
// Setup fixture.
|
||||
$CFG->filterall = 1;
|
||||
$CFG->stringfilters = 'name';
|
||||
set_config('filterall', 1);
|
||||
set_config('stringfilters', 'tidy');
|
||||
// Exercise SUT.
|
||||
filter_set_applies_to_strings('name', false);
|
||||
filter_set_applies_to_strings('tidy', false);
|
||||
// Validate.
|
||||
$this->assertEquals('', $CFG->stringfilters);
|
||||
$this->assertEquals('', $CFG->filterall);
|
||||
@ -630,13 +646,18 @@ class core_filterlib_testcase extends advanced_testcase {
|
||||
|
||||
public function test_unset_multi() {
|
||||
global $CFG;
|
||||
|
||||
$this->assertFileExists("$CFG->dirroot/filter/emailprotect"); // Any standard filter.
|
||||
$this->assertFileExists("$CFG->dirroot/filter/tidy"); // Any standard filter.
|
||||
$this->assertFileExists("$CFG->dirroot/filter/multilang"); // Any standard filter.
|
||||
|
||||
// Setup fixture.
|
||||
$CFG->filterall = 1;
|
||||
$CFG->stringfilters = 'name,other';
|
||||
set_config('filterall', 1);
|
||||
set_config('stringfilters', 'emailprotect,tidy,multilang');
|
||||
// Exercise SUT.
|
||||
filter_set_applies_to_strings('name', false);
|
||||
filter_set_applies_to_strings('tidy', false);
|
||||
// Validate.
|
||||
$this->assertEquals('other', $CFG->stringfilters);
|
||||
$this->assertEquals('emailprotect,multilang', $CFG->stringfilters);
|
||||
$this->assertEquals(1, $CFG->filterall);
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user