-
Notifications
You must be signed in to change notification settings - Fork 4
/
lib.php
101 lines (90 loc) · 3.1 KB
/
lib.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
<?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/>.
/**
* New OU text editor integration.
*
* @package editor_ousupsub
* @copyright 2014 The Open University
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
/**
* This is the texteditor implementation.
* @copyright 2013 Damyon Wiese <[email protected]>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class ousupsub_texteditor extends texteditor {
/**
* Is the current browser supported by this editor?
*
* Of course!
* @return bool
*/
public function supported_by_browser() {
return true;
}
/**
* Returns array of supported text formats.
* @return array
*/
public function get_supported_formats() {
// FORMAT_MOODLE is not supported here, sorry.
return [FORMAT_HTML => FORMAT_HTML];
}
/**
* Returns text format preferred by this editor.
* @return int
*/
public function get_preferred_format() {
return FORMAT_HTML;
}
/**
* Does this editor support picking from repositories?
* @return bool
*/
public function supports_repositories() {
return false;
}
#[\Override]
public function use_editor($elementid, ?array $options = null, $fpoptions = null) {
global $PAGE, $OUTPUT;
if (empty($options['context'])) {
$options['context'] = context_system::instance();
}
if (empty($options['supsub'])) {
$options['supsub'] = 'both';
}
if (!in_array($options['supsub'], ['sup', 'sub', 'both'])) {
throw new coding_exception("Invalid value '" .$options['supsub'] .
"' for option 'supsub'. Must be one of 'both', 'sup' or 'sub'.");
}
$PAGE->requires->js_call_amd('editor_ousupsub/editor', 'loadEditor', [
[
'element' => $elementid,
'type' => $options['supsub'],
'buttons' => [
'superscript' => [
'icon' => $OUTPUT->pix_icon('e/superscript', '', 'core'),
'title' => get_string('button_sup_title', 'editor_ousupsub'),
],
'subscript' => [
'icon' => $OUTPUT->pix_icon('e/subscript', '', 'core'),
'title' => get_string('button_sub_title', 'editor_ousupsub'),
],
],
],
]);
}
}