MDL-51830 course: Add course section deletion event.
[moodle.git] / lib / classes / event / course_section_deleted.php
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/>.
17 /**
18  * Course section deleted event.
19  *
20  * @package    core
21  * @copyright  2015 Ruslan Kabalin, Lancaster University.
22  * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
23  */
25 namespace core\event;
27 defined('MOODLE_INTERNAL') || die();
29 /**
30  * Course section deleted event class.
31  *
32  * @property-read array $other {
33  *      Extra information about event.
34  *
35  *      - int sectionnum: section number.
36  *      - string sectionname: section name.
37  * }
38  *
39  * @package    core
40  * @since      Moodle 3.1
41  * @copyright  2015 Ruslan Kabalin, Lancaster University.
42  * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
43  */
44 class course_section_deleted extends base {
46     /**
47      * Init method.
48      *
49      * @return void
50      */
51     protected function init() {
52         $this->data['objecttable'] = 'course_sections';
53         $this->data['crud'] = 'd';
54         $this->data['edulevel'] = self::LEVEL_TEACHING;
55     }
57     /**
58      * Return localised event name.
59      *
60      * @return string
61      */
62     public static function get_name() {
63         return get_string('eventcoursesectiondeleted');
64     }
66     /**
67      * Returns non-localised event description with id's for admin use only.
68      *
69      * @return string
70      */
71     public function get_description() {
72         return "The user with id '$this->userid' deleted section number '{$this->other['sectionnum']}' " .
73                 "(section name '{$this->other['sectionname']}') for the course with id '$this->courseid'";
74     }
76     /**
77      * Return legacy data for add_to_log().
78      *
79      * @return array
80      */
81     protected function get_legacy_logdata() {
82         return array($this->courseid, 'course', 'delete section', 'view.php?id=' . $this->courseid, $this->other['sectionnum']);
83     }
85     /**
86      * Custom validation.
87      *
88      * @throws \coding_exception
89      * @return void
90      */
91     protected function validate_data() {
92         parent::validate_data();
94         if (!isset($this->other['sectionnum'])) {
95             throw new \coding_exception('The \'sectionnum\' value must be set in other.');
96         }
97         if (!isset($this->other['sectionname'])) {
98             throw new \coding_exception('The \'sectionname\' value must be set in other.');
99         }
100     }