mirror of
https://github.com/moodle/moodle.git
synced 2025-06-02 14:15:11 +02:00
MDL-72720 tinymce: Implement enable_plugin() method
This commit is contained in:
parent
9cb8534590
commit
8c8dfed278
@ -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;
|
||||
}
|
||||
|
@ -42,25 +42,12 @@ if ($return === 'settings') {
|
||||
$returnurl = new moodle_url('/admin/plugins.php');
|
||||
}
|
||||
|
||||
$disabled = array();
|
||||
$disabledsubplugins = get_config('editor_tinymce', 'disabledsubplugins');
|
||||
if ($disabledsubplugins) {
|
||||
$disabledsubplugins = explode(',', $disabledsubplugins);
|
||||
foreach ($disabledsubplugins as $sp) {
|
||||
$sp = trim($sp);
|
||||
if ($sp !== '') {
|
||||
$disabled[$sp] = $sp;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if ($disable) {
|
||||
$disabled[$disable] = $disable;
|
||||
$class = \core_plugin_manager::resolve_plugininfo_class('tinymce');
|
||||
$class::enable_plugin($disable, false);
|
||||
} else if ($enable) {
|
||||
unset($disabled[$enable]);
|
||||
$class = \core_plugin_manager::resolve_plugininfo_class('tinymce');
|
||||
$class::enable_plugin($enable, true);
|
||||
}
|
||||
|
||||
set_config('disabledsubplugins', implode(',', $disabled), 'editor_tinymce');
|
||||
core_plugin_manager::reset_caches();
|
||||
|
||||
redirect($returnurl);
|
||||
|
Loading…
x
Reference in New Issue
Block a user