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 * The mod_glossary course module viewed event.
19 *
20 * @package    mod_glossary
21 * @copyright  2014 Marina Glancy
22 * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
23 */
24
25namespace mod_glossary\event;
26defined('MOODLE_INTERNAL') || die();
27
28/**
29 * The mod_glossary course module viewed event class.
30 *
31 * @property-read array $other {
32 *     Extra information about event.
33 *
34 *     - string mode: (optional)
35 * }
36 *
37 * @package    mod_glossary
38 * @since      Moodle 2.7
39 * @copyright  2014 Marina Glancy
40 * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
41 */
42class course_module_viewed extends \core\event\course_module_viewed {
43
44    /**
45     * Init method.
46     */
47    protected function init() {
48        $this->data['crud'] = 'r';
49        $this->data['edulevel'] = self::LEVEL_PARTICIPATING;
50        $this->data['objecttable'] = 'glossary';
51    }
52
53    /**
54     * Get URL related to the action.
55     *
56     * @return \moodle_url
57     */
58    public function get_url() {
59        $params = array('id' => $this->contextinstanceid);
60        if (!empty($this->other['mode'])) {
61            $params['mode'] = $this->other['mode'];
62        }
63        return new \moodle_url("/mod/$this->objecttable/view.php", $params);
64    }
65
66    /**
67     * Return the legacy event log data.
68     *
69     * @return array|null
70     */
71    public function get_legacy_logdata() {
72        // In moodle 2.6 and below the url was logged incorrectly, always having tab=-1 .
73        return array($this->courseid, $this->objecttable, 'view',
74            'view.php?id=' . $this->contextinstanceid . '&amp;tab=-1',
75            $this->objectid, $this->contextinstanceid);
76    }
77
78    public static function get_objectid_mapping() {
79        return array('db' => 'glossary', 'restore' => 'glossary');
80    }
81
82    public static function get_other_mapping() {
83        // Nothing to map.
84        return false;
85    }
86}
87