123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101 |
- <?php
- /**
- * Allows admin to configure editors.
- */
- require_once('../config.php');
- require_once($CFG->libdir.'/adminlib.php');
- require_once($CFG->libdir.'/tablelib.php');
- $action = required_param('action', PARAM_ALPHANUMEXT);
- $editor = required_param('editor', PARAM_PLUGIN);
- $confirm = optional_param('confirm', 0, PARAM_BOOL);
- $PAGE->set_url('/admin/editors.php', array('action'=>$action, 'editor'=>$editor));
- $PAGE->set_context(context_system::instance());
- require_login();
- require_capability('moodle/site:config', context_system::instance());
- $returnurl = "$CFG->wwwroot/$CFG->admin/settings.php?section=manageeditors";
- // get currently installed and enabled auth plugins
- $available_editors = editors_get_available();
- if (!empty($editor) and empty($available_editors[$editor])) {
- redirect ($returnurl);
- }
- $active_editors = explode(',', $CFG->texteditors);
- foreach ($active_editors as $key=>$active) {
- if (empty($available_editors[$active])) {
- unset($active_editors[$key]);
- }
- }
- ////////////////////////////////////////////////////////////////////////////////
- // process actions
- if (!confirm_sesskey()) {
- redirect($returnurl);
- }
- $return = true;
- switch ($action) {
- case 'disable':
- // remove from enabled list
- $key = array_search($editor, $active_editors);
- unset($active_editors[$key]);
- break;
- case 'enable':
- // add to enabled list
- if (!in_array($editor, $active_editors)) {
- $active_editors[] = $editor;
- $active_editors = array_unique($active_editors);
- }
- break;
- case 'down':
- $key = array_search($editor, $active_editors);
- // check auth plugin is valid
- if ($key !== false) {
- // move down the list
- if ($key < (count($active_editors) - 1)) {
- $fsave = $active_editors[$key];
- $active_editors[$key] = $active_editors[$key + 1];
- $active_editors[$key + 1] = $fsave;
- }
- }
- break;
- case 'up':
- $key = array_search($editor, $active_editors);
- // check auth is valid
- if ($key !== false) {
- // move up the list
- if ($key >= 1) {
- $fsave = $active_editors[$key];
- $active_editors[$key] = $active_editors[$key - 1];
- $active_editors[$key - 1] = $fsave;
- }
- }
- break;
- default:
- break;
- }
- // at least one editor must be active
- if (empty($active_editors)) {
- $active_editors = array('textarea');
- }
- set_config('texteditors', implode(',', $active_editors));
- core_plugin_manager::reset_caches();
- if ($return) {
- redirect ($returnurl);
- }
|