forked from logicexpertise/moodle-mod_onlyoffice
-
Notifications
You must be signed in to change notification settings - Fork 9
/
Copy pathdsconfig.php
56 lines (48 loc) · 2.33 KB
/
dsconfig.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
<?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/>.
/**
* Return json-encoded editor config.
*
* @package mod_onlyofficeeditor
* @subpackage
* @copyright 2024 Ascensio System SIA <integration@onlyoffice.com>
* @copyright based on work by 2019 Olumuyiwa Taiwo <muyi.taiwo@logicexpertise.com>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
require_once(dirname(dirname(dirname(__FILE__))) . '/config.php');
defined('AJAX_SCRIPT') || define('AJAX_SCRIPT', true);
$courseid = required_param('courseid', PARAM_INT);
$cmid = required_param('cmid', PARAM_INT);
$cm = get_coursemodule_from_id('onlyofficeeditor', $cmid, 0, false, MUST_EXIST);
$course = $DB->get_record('course', ['id' => $cm->course], '*', MUST_EXIST);
require_login($course, true, $cm);
$actiontype = optional_param('actionType', '', PARAM_TEXT);
$actiondata = optional_param('actionData', '', PARAM_TEXT);
$context = CONTEXT_MODULE::instance($cmid);
require_capability('mod/onlyofficeeditor:view', $context);
$modconfig = get_config('onlyofficeeditor');
$modinfo = get_fast_modinfo($courseid);
$cm = $modinfo->get_cm($cmid)->get_course_module_record();
$editor = new \mod_onlyofficeeditor\editor($courseid, $context, $cm, $modconfig);
$editorconfig = $editor->config();
if (!empty($actiondata) && !empty($actiontype)) {
$editorconfig['editorConfig']['actionLink']['action'] = ['type' => $actiontype, 'data' => $actiondata];
}
$addinstance = has_capability('mod/onlyofficeeditor:addinstance', $context);
$userstomention = \mod_onlyofficeeditor\util::get_users_to_mention_in_comments($context);
$data = ['config' => $editorconfig, 'userstomention' => $userstomention, 'addinstance' => $addinstance];
echo json_encode($data);
die();