MDL-36088 questions: Add new events
[moodle.git] / lib / classes / event / question_created.php
CommitLineData
93e435b9
SB
1<?php
2// This file is part of Moodle - http://moodle.org/
3//
4// Moodle is free software: you can redistribute it and/or modify
5// it under the terms of the GNU General Public License as published by
6// the Free Software Foundation, either version 3 of the License, or
7// (at your option) any later version.
8//
9// Moodle is distributed in the hope that it will be useful,
10// but WITHOUT ANY WARRANTY; without even the implied warranty of
11// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12// GNU General Public License for more details.
13//
14// You should have received a copy of the GNU General Public License
15// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
16
17/**
18 * Question created event.
19 *
20 * @package core
4ca60a56 21 * @copyright 2019 Stephen Bourget
93e435b9
SB
22 * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
23 */
24
25namespace core\event;
26
27defined('MOODLE_INTERNAL') || die();
28
29/**
30 * Question created event class.
31 *
32 * @property-read array $other {
33 * Extra information about the event.
34 *
35 * - int categoryid: The ID of the category where the question resides
36 * }
37 *
38 * @package core
4ca60a56
V
39 * @since Moodle 3.7
40 * @copyright 2019 Stephen Bourget
93e435b9
SB
41 * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
42 */
43class question_created extends question_base {
44
45 /**
46 * Init method.
47 */
48 protected function init() {
4ca60a56 49 parent::init();
93e435b9 50 $this->data['crud'] = 'c';
93e435b9
SB
51 }
52
53 /**
54 * Returns localised general event name.
55 *
56 * @return string
57 */
58 public static function get_name() {
59 return get_string('eventquestioncreated', 'question');
60 }
61
62 /**
63 * Returns description of what happened.
64 *
65 * @return string
66 */
67 public function get_description() {
4ca60a56
V
68 return "The user with id '$this->userid' created a question with the id of '$this->objectid'" .
69 " in the category with the id '" . $this->other['categoryid'] . "'.";
93e435b9
SB
70 }
71
72 /**
73 * Returns relevant URL.
74 *
75 * @return \moodle_url
76 */
77 public function get_url() {
78 if ($this->courseid) {
79 if ($this->contextlevel == CONTEXT_MODULE) {
4ca60a56 80 return new \moodle_url('/question/preview.php', ['cmid' => $this->contextinstanceid, 'id' => $this->objectid]);
93e435b9 81 }
4ca60a56 82 return new \moodle_url('/question/preview.php', ['courseid' => $this->courseid, 'id' => $this->objectid]);
93e435b9
SB
83 }
84 // Lets try editing from the frontpage for contexts above course.
4ca60a56 85 return new \moodle_url('/question/preview.php', ['courseid' => SITEID, 'id' => $this->objectid]);
93e435b9
SB
86 }
87}