diff --git a/mod/page/classes/event/course_module_viewed.php b/mod/page/classes/event/course_module_viewed.php new file mode 100644 index 00000000000..4d47818ee46 --- /dev/null +++ b/mod/page/classes/event/course_module_viewed.php @@ -0,0 +1,83 @@ +. + +/** + * This file contains an event for when a page activity is viewed. + * + * @package mod_page + * @copyright 2013 Ankit Agarwal + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later + */ + +namespace mod_page\event; +defined('MOODLE_INTERNAL') || die(); + +/** + * Event for when a page activity is viewed. + * + * @package mod_page + * @copyright 2013 Ankit Agarwal + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later + */ +class course_module_viewed extends \core\event\content_viewed { + + /** + * Init method. + */ + protected function init() { + $this->data['crud'] = 'r'; + $this->data['level'] = self::LEVEL_PARTICIPATING; + $this->data['objecttable'] = 'page'; + } + + /** + * Returns non-localised description of what happened. + * + * @return string + */ + public function get_description() { + return 'User with id ' . $this->userid . ' viewed page resource with instanceid ' . $this->objectid; + } + + /** + * Returns localised general event name. + * + * @return string + */ + public static function get_name() { + return get_string('eventcoursemoduleviewed', 'mod_page'); + } + + /** + * Get URL related to the action + * + * @return \moodle_url + */ + public function get_url() { + return new \moodle_url('/mod/page/view.php', array('id' => $this->context->instanceid)); + } + + /** + * Replace add_to_log() statement. + * + * @return array of parameters to be passed to legacy add_to_log() function. + */ + protected function get_legacy_logdata() { + return array($this->courseid, 'page', 'view', 'view.php?id=' . $this->context->instanceid, $this->other['instanceid'], + $this->context->instanceid); + } +} + diff --git a/mod/page/classes/event/instances_list_viewed.php b/mod/page/classes/event/instances_list_viewed.php new file mode 100644 index 00000000000..342a1792937 --- /dev/null +++ b/mod/page/classes/event/instances_list_viewed.php @@ -0,0 +1,74 @@ +. + +/** + * mod_page instances list viewed event. + * + * @package mod_page + * @copyright 2013 Ankit Agarwal + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later + */ + +namespace mod_page\event; +defined('MOODLE_INTERNAL') || die(); + +/** + * mod_page instances list viewed event class. + * + * @package mod_page + * @copyright 2013 Ankit Agarwal + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later + */ +class instances_list_viewed extends \core\event\course_module_instances_list_viewed { + + /** + * Returns description of what happened. + * + * @return string + */ + public function get_description() { + return "User $this->userid viewed the list of page activities in the course $this->courseid."; + } + + /** + * Return the legacy event log data. + * + * @return array + */ + protected function get_legacy_logdata() { + return array($this->courseid, 'page', 'view all', 'index.php?id=' . $this->courseid, ''); + } + + /** + * Return localised event name. + * + * @return string + */ + public static function get_name() { + return get_string('eventinstanceslistviewed', 'mod_page'); + } + + /** + * Get URL related to the action + * + * @return \moodle_url + */ + public function get_url() { + return new \moodle_url('/mod/page/index.php', array('id' => $this->courseid)); + } + +} + diff --git a/mod/page/index.php b/mod/page/index.php index 6383083e706..eeb5cf78f47 100644 --- a/mod/page/index.php +++ b/mod/page/index.php @@ -33,7 +33,9 @@ $course = $DB->get_record('course', array('id'=>$id), '*', MUST_EXIST); require_course_login($course, true); $PAGE->set_pagelayout('incourse'); -add_to_log($course->id, 'page', 'view all', "index.php?id=$course->id", ''); +// Trigger instances list viewed event. +$event = \mod_page\event\instances_list_viewed::create(array('context' => context_course::instance($course->id))); +$event->trigger(); $strpage = get_string('modulename', 'page'); $strpages = get_string('modulenameplural', 'page'); diff --git a/mod/page/lang/en/page.php b/mod/page/lang/en/page.php index 605f664af87..732415caeab 100644 --- a/mod/page/lang/en/page.php +++ b/mod/page/lang/en/page.php @@ -31,6 +31,8 @@ $string['displayoptions'] = 'Available display options'; $string['displayselect'] = 'Display'; $string['displayselectexplain'] = 'Select display type.'; $string['legacyfiles'] = 'Migration of old course file'; +$string['eventcoursemoduleviewed'] = 'Page resource viewed'; +$string['eventinstanceslistviewed'] = 'Page instances list viewed'; $string['legacyfilesactive'] = 'Active'; $string['legacyfilesdone'] = 'Finished'; $string['modulename'] = 'Page'; diff --git a/mod/page/view.php b/mod/page/view.php index 73e72e109f8..03bf8eda0fa 100644 --- a/mod/page/view.php +++ b/mod/page/view.php @@ -51,7 +51,16 @@ require_course_login($course, true, $cm); $context = context_module::instance($cm->id); require_capability('mod/page:view', $context); -add_to_log($course->id, 'page', 'view', 'view.php?id='.$cm->id, $page->id, $cm->id); +// Trigger module viewed event. +$event = \mod_page\event\course_module_viewed::create(array( + 'objectid' => $page->id, + 'context' => $context, + 'other' => array('content' => 'pageresourceview') +)); +$event->add_record_snapshot('course_modules', $cm); +$event->add_record_snapshot('course', $course); +$event->add_record_snapshot('page', $page); +$event->trigger(); // Update 'viewed' state if required by completion system require_once($CFG->libdir . '/completionlib.php');