MDL-72720 qtype: Implement enable_plugin() method
This commit is contained in:
+4
-3
@@ -80,7 +80,8 @@ if (($disable = optional_param('disable', '', PARAM_PLUGIN)) && confirm_sesskey(
|
||||
print_error('unknownquestiontype', 'question', $thispageurl, $disable);
|
||||
}
|
||||
|
||||
set_config($disable . '_disabled', 1, 'question');
|
||||
$class = \core_plugin_manager::resolve_plugininfo_class('qtype');
|
||||
$class::enable_plugin($disable, false);
|
||||
redirect($thispageurl);
|
||||
}
|
||||
|
||||
@@ -94,7 +95,8 @@ if (($enable = optional_param('enable', '', PARAM_PLUGIN)) && confirm_sesskey())
|
||||
print_error('cannotenable', 'question', $thispageurl, $enable);
|
||||
}
|
||||
|
||||
unset_config($enable . '_disabled', 'question');
|
||||
$class = \core_plugin_manager::resolve_plugininfo_class('qtype');
|
||||
$class::enable_plugin($enable, true);
|
||||
redirect($thispageurl);
|
||||
}
|
||||
|
||||
@@ -251,4 +253,3 @@ function question_type_icon_html($action, $qtypename, $icon, $alt, $tip) {
|
||||
new pix_icon($icon, $alt, 'moodle', array('title' => '', 'class' => 'iconsmall')),
|
||||
null, array('title' => $tip));
|
||||
}
|
||||
|
||||
|
||||
@@ -65,6 +65,29 @@ class qtype extends base {
|
||||
return $enabled;
|
||||
}
|
||||
|
||||
public static function enable_plugin(string $pluginname, int $enabled): bool {
|
||||
$haschanged = false;
|
||||
|
||||
$settingname = $pluginname . '_disabled';
|
||||
$oldvalue = get_config('question', $settingname);
|
||||
$disabled = !$enabled;
|
||||
// Only set value if there is no config setting or if the value is different from the previous one.
|
||||
if ($oldvalue == false && $disabled) {
|
||||
set_config($settingname, $disabled, 'question');
|
||||
$haschanged = true;
|
||||
} else if ($oldvalue != false && !$disabled) {
|
||||
unset_config($settingname, 'question');
|
||||
$haschanged = true;
|
||||
}
|
||||
|
||||
if ($haschanged) {
|
||||
add_to_config_log($settingname, $oldvalue, $disabled, 'question');
|
||||
\core_plugin_manager::reset_caches();
|
||||
}
|
||||
|
||||
return $haschanged;
|
||||
}
|
||||
|
||||
public function is_uninstall_allowed() {
|
||||
global $DB;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user