forked from moodleou/moodle-filter_embedquestion
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtesthelper.php
81 lines (63 loc) · 3.02 KB
/
testhelper.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
<?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/>.
/**
* Script to help developers.
*
* Generates the necessary embed code and show question url.
*
* @package filter_embedquestion
* @copyright 2018 The Open University - based on question/preview.php
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
require_once(__DIR__ . '/../../config.php');
require_once($CFG->libdir . '/questionlib.php');
use filter_embedquestion\question_options;
use filter_embedquestion\utils;
use filter_embedquestion\form\embed_options_form;
$courseid = required_param('courseid', PARAM_INT);
$course = get_course($courseid);
require_login($course);
$context = context_course::instance($courseid);
if (!has_capability('moodle/question:useall', $context)) {
require_capability('moodle/question:usemine', $context);
}
$PAGE->set_url('/filter/embedquestion/testhelper.php', ['courseid' => $courseid]);
$PAGE->set_heading('Embed question filter test helper script');
$PAGE->set_title('Embed question filter test helper script');
$form = new embed_options_form(null, ['context' => $context]);
echo $OUTPUT->header();
utils::warn_if_filter_disabled($context);
if ($fromform = $form->get_data()) {
$category = utils::get_category_by_idnumber($context, $fromform->categoryidnumber);
if ($fromform->questionidnumber === '*') {
echo $OUTPUT->heading('Information for embedding question selected randomly from ' . format_string($category->name));
\filter_embedquestion\event\category_token_created::create(
['context' => $context, 'objectid' => $category->id])->trigger();
} else {
$questiondata = utils::get_question_by_idnumber($category->id, $fromform->questionidnumber);
$question = question_bank::load_question($questiondata->id);
echo $OUTPUT->heading('Information for embedding question ' . format_string($question->name));
// Log this.
\filter_embedquestion\event\token_created::create(
['context' => $context, 'objectid' => $question->id])->trigger();
}
$embedcode = question_options::get_embed_from_form_options($fromform);
echo html_writer::tag('p', 'Code to embed the question: ' . s($embedcode));
echo format_text('The embedded question: ' . s($embedcode), FORMAT_HTML, ['context' => $context]);
}
echo $OUTPUT->heading('Generate the code to embed a question');
echo $form->render();
echo $OUTPUT->footer();