source: moodle/trunk/fuentes/admin/editors.php @ 136

Last change on this file since 136 was 136, checked in by mabarracus, 4 years ago

Ported code to xenial

File size: 2.7 KB
Line 
1<?php
2
3/**
4 * Allows admin to configure editors.
5 */
6
7require_once('../config.php');
8require_once($CFG->libdir.'/adminlib.php');
9require_once($CFG->libdir.'/tablelib.php');
10
11$action  = required_param('action', PARAM_ALPHANUMEXT);
12$editor  = required_param('editor', PARAM_PLUGIN);
13$confirm = optional_param('confirm', 0, PARAM_BOOL);
14
15$PAGE->set_url('/admin/editors.php', array('action'=>$action, 'editor'=>$editor));
16$PAGE->set_context(context_system::instance());
17
18require_login();
19require_capability('moodle/site:config', context_system::instance());
20
21$returnurl = "$CFG->wwwroot/$CFG->admin/settings.php?section=manageeditors";
22
23// get currently installed and enabled auth plugins
24$available_editors = editors_get_available();
25if (!empty($editor) and empty($available_editors[$editor])) {
26    redirect ($returnurl);
27}
28
29$active_editors = explode(',', $CFG->texteditors);
30foreach ($active_editors as $key=>$active) {
31    if (empty($available_editors[$active])) {
32        unset($active_editors[$key]);
33    }
34}
35
36////////////////////////////////////////////////////////////////////////////////
37// process actions
38
39if (!confirm_sesskey()) {
40    redirect($returnurl);
41}
42
43
44$return = true;
45switch ($action) {
46    case 'disable':
47        // remove from enabled list
48        $key = array_search($editor, $active_editors);
49        unset($active_editors[$key]);
50        break;
51
52    case 'enable':
53        // add to enabled list
54        if (!in_array($editor, $active_editors)) {
55            $active_editors[] = $editor;
56            $active_editors = array_unique($active_editors);
57        }
58        break;
59
60    case 'down':
61        $key = array_search($editor, $active_editors);
62        // check auth plugin is valid
63        if ($key !== false) {
64            // move down the list
65            if ($key < (count($active_editors) - 1)) {
66                $fsave = $active_editors[$key];
67                $active_editors[$key] = $active_editors[$key + 1];
68                $active_editors[$key + 1] = $fsave;
69            }
70        }
71        break;
72
73    case 'up':
74        $key = array_search($editor, $active_editors);
75        // check auth is valid
76        if ($key !== false) {
77            // move up the list
78            if ($key >= 1) {
79                $fsave = $active_editors[$key];
80                $active_editors[$key] = $active_editors[$key - 1];
81                $active_editors[$key - 1] = $fsave;
82            }
83        }
84        break;
85
86    default:
87        break;
88}
89
90// at least one editor must be active
91if (empty($active_editors)) {
92    $active_editors = array('textarea');
93}
94
95set_config('texteditors', implode(',', $active_editors));
96core_plugin_manager::reset_caches();
97
98if ($return) {
99    redirect ($returnurl);
100}
Note: See TracBrowser for help on using the repository browser.