-
Notifications
You must be signed in to change notification settings - Fork 5
/
Copy pathlib.php
102 lines (89 loc) · 3.54 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
102
<?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/>.
/**
* library for component 'tinymce_panoptobutton'.
*
* @package tinymce_panoptobutton
* @copyright Panopto 2009 - 2016
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
defined('MOODLE_INTERNAL') || die();
/**
* returns the Panopto id for the given the moodle course id
*
* @param int $courseid the moodle id of the course we are looking for.
*
*/
function get_panopto_course_id($courseid) {
global $DB;
return $DB->get_field('block_panopto_foldermap', 'panopto_id', array('moodleid' => $courseid));
}
/**
* returns the Panopto server for the given the moodle course id
*
* @param int $courseid the moodle id of the course we are looking for.
*
*/
function get_panopto_course_server($courseid) {
global $DB;
return $DB->get_field('block_panopto_foldermap', 'panopto_server', array('moodleid' => $courseid));
}
/**
* class for component 'tinymce_panoptobutton'.
*
* @copyright Panopto 2009 - 2016 With contributions from Joseph Malmsten ([email protected])
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class tinymce_panoptobutton extends editor_tinymce_plugin {
/**
* @var array $buttons
*/
protected $buttons = array('panoptobutton');
/**
* used to update the params for initialization
*
* @param array $params the params to be updated
* @param context $context
* @param array $options optional params
*/
protected function update_init_params(array &$params, context $context, array $options = null) {
global $COURSE;
$servername = get_panopto_course_server($COURSE->id);
if (!empty($servername)) {
$params['panoptoservername'] = $servername;
}
$panoptoid = get_panopto_course_id($COURSE->id);
if (!empty($panoptoid)) {
$params['panoptoid'] = $panoptoid;
}
$instancename = get_config('block_panopto', 'instance_name');
if (!empty($instancename)) {
$params['instancename'] = $instancename;
}
$params['panoptobuttondescription'] = get_string('panopto_button_description', 'tinymce_panoptobutton');
$params['panoptobuttonlongdescription'] = get_string('panopto_button_long_description', 'tinymce_panoptobutton');
$params['unprovisionederror'] = get_string('panopto_button_unprovisioned_error', 'tinymce_panoptobutton');
if ($row = $this->find_button($params, 'moodlenolink')) {
// Add button after 'moodlenolink'.
$this->add_button_after($params, $row, 'panoptobutton', 'moodlenolink');
} else {
// Add this button in the end of the first row (by default 'moodlenolink' button should be in the first row).
$this->add_button_after($params, 1, 'panoptobutton');
}
// Add JS file, which uses default name.
$this->add_js_plugin($params);
}
}