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 * Activity base class. 19 * 20 * @package mod_chat 21 * @copyright 2017 onwards Ankit Agarwal <ankit.agrr@gmail.com> 22 * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later 23 */ 24 25 namespace mod_chat\analytics\indicator; 26 27 defined('MOODLE_INTERNAL') || die(); 28 29 /** 30 * Activity base class. 31 * 32 * @package mod_chat 33 * @copyright 2017 onwards Ankit Agarwal <ankit.agrr@gmail.com> 34 * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later 35 */ 36 abstract class activity_base extends \core_analytics\local\indicator\community_of_inquiry_activity { 37 38 /** 39 * feedback_viewed_events 40 * 41 * @return string[] 42 */ 43 protected function feedback_viewed_events() { 44 return array('\mod_chat\event\course_module_viewed', '\mod_chat\event\message_sent', 45 '\mod_chat\event\sessions_viewed'); 46 } 47 48 /** 49 * feedback_replied_events 50 * 51 * @return string[] 52 */ 53 protected function feedback_replied_events() { 54 return array('\mod_chat\event\message_sent'); 55 } 56 57 /** 58 * feedback_post_action 59 * 60 * @param \cm_info $cm 61 * @param int $contextid 62 * @param int $userid 63 * @param string[] $eventnames 64 * @param int $after 65 * @return bool 66 */ 67 protected function feedback_post_action(\cm_info $cm, $contextid, $userid, $eventnames, $after = false) { 68 69 if (empty($this->activitylogs[$contextid][$userid])) { 70 return false; 71 } 72 73 $logs = $this->activitylogs[$contextid][$userid]; 74 75 if (empty($logs['\mod_chat\event\message_sent'])) { 76 // No feedback viewed if there is no submission. 77 return false; 78 } 79 80 // First user message time. 81 $firstmessage = $logs['\mod_chat\event\message_sent']->timecreated[0]; 82 83 // We consider feedback another user messages. 84 foreach ($this->activitylogs[$contextid] as $anotheruserid => $logs) { 85 if ($anotheruserid == $userid) { 86 continue; 87 } 88 if (empty($logs['\mod_chat\event\message_sent'])) { 89 continue; 90 } 91 $firstmessagesenttime = $logs['\mod_chat\event\message_sent']->timecreated[0]; 92 93 if (parent::feedback_post_action($cm, $contextid, $userid, $eventnames, $firstmessagesenttime)) { 94 return true; 95 } 96 // Continue with the next user. 97 } 98 99 return false; 100 } 101 102 /** 103 * feedback_check_grades 104 * 105 * @return bool 106 */ 107 protected function feedback_check_grades() { 108 // Chat's feedback is not contained in grades. 109 return false; 110 } 111 }
title
Description
Body
title
Description
Body
title
Description
Body
title
Body