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

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

Ported code to xenial

File size: 2.9 KB
Line 
1<?php
2// This file is part of Moodle - http://moodle.org/
3//
4// Moodle is free software: you can redistribute it and/or modify
5// it under the terms of the GNU General Public License as published by
6// the Free Software Foundation, either version 3 of the License, or
7// (at your option) any later version.
8//
9// Moodle is distributed in the hope that it will be useful,
10// but WITHOUT ANY WARRANTY; without even the implied warranty of
11// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12// GNU General Public License for more details.
13//
14// You should have received a copy of the GNU General Public License
15// along with Moodle.  If not, see <http://www.gnu.org/licenses/>.
16
17/**
18 * Allows the admin to enable, disable and uninstall course formats
19 *
20 * @package    core_admin
21 * @copyright  2012 Marina Glancy
22 * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
23 */
24
25require_once('../config.php');
26require_once($CFG->libdir.'/adminlib.php');
27
28$action  = required_param('action', PARAM_ALPHANUMEXT);
29$formatname   = required_param('format', PARAM_PLUGIN);
30
31$syscontext = context_system::instance();
32$PAGE->set_url('/admin/courseformats.php');
33$PAGE->set_context($syscontext);
34
35require_login();
36require_capability('moodle/site:config', $syscontext);
37require_sesskey();
38
39$return = new moodle_url('/admin/settings.php', array('section' => 'manageformats'));
40
41$formatplugins = core_plugin_manager::instance()->get_plugins_of_type('format');
42$sortorder = array_flip(array_keys($formatplugins));
43
44if (!isset($formatplugins[$formatname])) {
45    print_error('courseformatnotfound', 'error', $return, $formatname);
46}
47
48switch ($action) {
49    case 'disable':
50        if ($formatplugins[$formatname]->is_enabled()) {
51            if (get_config('moodlecourse', 'format') === $formatname) {
52                print_error('cannotdisableformat', 'error', $return);
53            }
54            set_config('disabled', 1, 'format_'. $formatname);
55            core_plugin_manager::reset_caches();
56        }
57        break;
58    case 'enable':
59        if (!$formatplugins[$formatname]->is_enabled()) {
60            unset_config('disabled', 'format_'. $formatname);
61            core_plugin_manager::reset_caches();
62        }
63        break;
64    case 'up':
65        if ($sortorder[$formatname]) {
66            $currentindex = $sortorder[$formatname];
67            $seq = array_keys($formatplugins);
68            $seq[$currentindex] = $seq[$currentindex-1];
69            $seq[$currentindex-1] = $formatname;
70            set_config('format_plugins_sortorder', implode(',', $seq));
71        }
72        break;
73    case 'down':
74        if ($sortorder[$formatname] < count($sortorder)-1) {
75            $currentindex = $sortorder[$formatname];
76            $seq = array_keys($formatplugins);
77            $seq[$currentindex] = $seq[$currentindex+1];
78            $seq[$currentindex+1] = $formatname;
79            set_config('format_plugins_sortorder', implode(',', $seq));
80        }
81        break;
82}
83redirect($return);
Note: See TracBrowser for help on using the repository browser.