forked from Ghostthinker/moodle-mod_ivs
-
Notifications
You must be signed in to change notification settings - Fork 0
/
settings.php
113 lines (87 loc) · 4.99 KB
/
settings.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
<?php
// This file is part of Moodle - http://moodle.org/
//
// Moodle is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// Moodle is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
/**
* File for the settings
* @package mod_ivs
* @author Ghostthinker GmbH <info@interactive-video-suite.de>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
* @copyright (C) 2017 onwards Ghostthinker GmbH (https://ghostthinker.de/)
*/
use mod_ivs\admin_setting_configtext_ivs_custom;
use mod_ivs\admin_setting_configtext_ivs_custom_with_lock;
defined('MOODLE_INTERNAL') || die;
require_once($CFG->libdir . '/adminlib.php');
require_login(null, false);
$ADMIN->add('modsettings', new admin_category('interactive_video_suite_settings', get_string('modulecategory', 'ivs'),
$module->is_enabled() === false));
$settings = new admin_settingpage($section, get_string('settings', 'ivs'), 'moodle/site:config', $module->is_enabled() === false);
if ($ADMIN->fulltree) {
require_once($CFG->dirroot . '/mod/ivs/lib.php');
// IVS-Settings.
$settings->add(new admin_setting_heading('mod_ivs/ivssettings', get_string('ivs_settings', 'ivs'), ''));
$settings->add(new admin_setting_configcheckbox('mod_ivs/ivs_opencast_external_files_enabled',
get_string('ivs_setting_opencast_external_files_title', 'ivs'),
get_string('ivs_setting_opencast_external_files_help', 'ivs'), 1));
$settings->add(new admin_setting_configcheckbox('mod_ivs/ivs_panopto_external_files_enabled',
get_string('ivs_setting_panopto_external_files_title', 'ivs'),
get_string('ivs_setting_panopto_external_files_help', 'ivs'), 1));
$settings->add(new admin_setting_configcheckbox('mod_ivs/ivs_opencast_internal_files_enabled',
get_string('ivs_setting_opencast_internal_files_title', 'ivs'),
get_string('ivs_setting_opencast_internal_files_help', 'ivs'), 1));
// Player-Settings.
$settings->add(new admin_setting_heading('mod_ivs/playersettings', get_string('ivs_player_settings', 'ivs'), ''));
$ivssettings = \mod_ivs\settings\SettingsService::get_settings_definitions();
foreach ($ivssettings as $playersetting) {
switch ($playersetting->type) {
case 'checkbox':
if ($playersetting->lockedsite) {
$settings->add(new admin_setting_configcheckbox_with_lock("mod_ivs/" . $playersetting->name,
$playersetting->title, get_string($playersetting->description . '_help', 'ivs'),
['value' => $playersetting->default]));
} else {
$settings->add(new admin_setting_configcheckbox($playersetting->name, $playersetting->title,
$playersetting->description, ['value' => $playersetting->default]));
}
break;
case 'select':
if ($playersetting->lockedsite) {
$settings->add(new admin_setting_configselect_with_lock("mod_ivs/" . $playersetting->name,
$playersetting->title,
get_string($playersetting->description . '_help', 'ivs'), 0, $playersetting->options));
} else {
$settings->add(new admin_setting_configselect("mod_ivs/" . $playersetting->name, $playersetting->name,
get_string($playersetting->description . '_help', 'ivs'), 0, $playersetting->options));
}
break;
case 'text':
if ($playersetting->lockedsite) {
$settings->add(new admin_setting_configtext_ivs_custom_with_lock("mod_ivs/" . $playersetting->name,
$playersetting->title,
get_string($playersetting->description . '_help', 'ivs'), ['value' => 120], PARAM_INT));
} else {
$settings->add(new admin_setting_configtext_ivs_custom("mod_ivs/" . $playersetting->name, $playersetting->title,
get_string($playersetting->description . '_helpcd', 'ivs'), 120), PARAM_INT);
}
break;
}
}
}
$ADMIN->add('interactive_video_suite_settings', $settings);
// Tell core we already added the settings structure.
$settings = null;
$ADMIN->add('interactive_video_suite_settings', new admin_externalpage('admin_settings_license', get_string('ivs_license', 'ivs'),
$CFG->wwwroot . '/mod/ivs/admin/admin_settings_license.php',
'moodle/site:config'));