From ff79f49f445bd9e92e53ec017bc92b2516cf2423 Mon Sep 17 00:00:00 2001 From: Rajesh Taneja Date: Fri, 29 Nov 2013 15:33:58 +0800 Subject: [PATCH] MDL-40058 mod_wiki: Replaced add_to_log for page map viewed to event --- mod/wiki/classes/event/page_map_viewed.php | 95 ++++++++++++++++++++++ mod/wiki/lang/en/wiki.php | 1 + mod/wiki/map.php | 13 ++- 3 files changed, 108 insertions(+), 1 deletion(-) create mode 100644 mod/wiki/classes/event/page_map_viewed.php diff --git a/mod/wiki/classes/event/page_map_viewed.php b/mod/wiki/classes/event/page_map_viewed.php new file mode 100644 index 00000000000..251b7c2aa6a --- /dev/null +++ b/mod/wiki/classes/event/page_map_viewed.php @@ -0,0 +1,95 @@ +. + +/** + * mod_wiki map viewed event. + * + * @package mod_wiki + * @copyright 2013 Rajesh Taneja + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later + */ + +namespace mod_wiki\event; +defined('MOODLE_INTERNAL') || die(); + +/** + * mod_wiki map viewed event class. + * + * @package mod_wiki + * @copyright 2013 Rajesh Taneja + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later + */ +class page_map_viewed extends \core\event\base { + /** + * Init method. + * + * @return void + */ + protected function init() { + $this->data['crud'] = 'r'; + $this->data['level'] = self::LEVEL_PARTICIPATING; + $this->data['objecttable'] = 'wiki_pages'; + } + + /** + * Return localised event name. + * + * @return string + */ + public static function get_name() { + return get_string('eventmapviewed', 'mod_wiki'); + } + + /** + * Returns description of what happened. + * + * @return string + */ + public function get_description() { + return 'User with id ' . $this->userid . ' viewed wiki map for page id ' . $this->objectid; + } + + /** + * Return the legacy event log data. + * + * @return array + */ + protected function get_legacy_logdata() { + return(array($this->courseid, 'wiki', 'map', + 'map.php?pageid=' . $this->objectid, $this->objectid, $this->context->instanceid)); + } + + /** + * Get URL related to the action. + * + * @return \moodle_url + */ + public function get_url() { + return new \moodle_url('/mod/wiki/map.php', array('pageid' => $this->objectid)); + } + + /** + * Custom validation. + * + * @throws \coding_exception + * @return void + */ + protected function validate_data() { + if (!isset($this->other['option'])) { + throw new \coding_exception('The option need to be set in $other, even if 0.'); + } + } +} diff --git a/mod/wiki/lang/en/wiki.php b/mod/wiki/lang/en/wiki.php index 5d18c0c1497..d619e1ed249 100644 --- a/mod/wiki/lang/en/wiki.php +++ b/mod/wiki/lang/en/wiki.php @@ -64,6 +64,7 @@ $string['editingpage'] = 'Editing this page \'{$a}\''; $string['editsection'] = 'edit'; $string['eventdiffviewed'] = 'Wiki diff viewed'; $string['eventhistoryviewed'] = 'Wiki history viewed'; +$string['eventmapviewed'] = 'Wiki page map viewed'; $string['eventpagedeleted'] = 'Wiki page deleted'; $string['eventpagelocksdeleted'] = 'Wiki page locks deleted'; $string['eventpageviewed'] = 'Wiki page viewed'; diff --git a/mod/wiki/map.php b/mod/wiki/map.php index 745f724e07a..5f0761b32fd 100644 --- a/mod/wiki/map.php +++ b/mod/wiki/map.php @@ -58,7 +58,18 @@ $context = context_module::instance($cm->id); require_capability('mod/wiki:viewpage', $context); $wikipage = new page_wiki_map($wiki, $subwiki, $cm); -add_to_log($course->id, "wiki", "map", "map.php?pageid=".$pageid, $pageid, $cm->id); + +$event = \mod_wiki\event\page_map_viewed::create( + array( + 'context' => $context, + 'objectid' => $pageid, + 'other' => array( + 'option' => $option + ) + )); +$event->add_record_snapshot('wiki_pages', $page); +$event->add_record_snapshot('wiki', $wiki); +$event->add_record_snapshot('wiki_subwikis', $subwiki); // Print page header $wikipage->set_view($option);