MDL-72720 tinymce: Implement enable_plugin() method

This commit is contained in:
Sara Arjona
2021-10-15 13:00:04 +02:00
parent 9cb8534590
commit 8c8dfed278
2 changed files with 31 additions and 17 deletions
@@ -58,6 +58,33 @@ class tinymce extends base {
return $enabled;
}
public static function enable_plugin(string $pluginname, int $enabled): bool {
$haschanged = false;
$plugins = [];
$oldvalue = get_config('editor_tinymce', 'disabledsubplugins');
if (!empty($oldvalue)) {
$plugins = array_flip(explode(',', $oldvalue));
}
// Only set visibility if it's different from the current value.
if ($enabled && array_key_exists($pluginname, $plugins)) {
unset($plugins[$pluginname]);
$haschanged = true;
} else if (!$enabled && !array_key_exists($pluginname, $plugins)) {
$plugins[$pluginname] = $pluginname;
$haschanged = true;
}
if ($haschanged) {
$new = implode(',', array_flip($plugins));
add_to_config_log('disabledsubplugins', $oldvalue, $new, 'editor_tinymce');
set_config('disabledsubplugins', $new, 'editor_tinymce');
// Reset caches.
\core_plugin_manager::reset_caches();
}
return $haschanged;
}
public function is_uninstall_allowed() {
return true;
}