diff --git a/lib/classes/message/message.php b/lib/classes/message/message.php index 6f4e26e7becb3..30301c5dd970a 100644 --- a/lib/classes/message/message.php +++ b/lib/classes/message/message.php @@ -132,6 +132,9 @@ class message { /** @var mixed Custom data to be passed to the message processor. Must be serialisable using json_encode(). */ private $customdata; + /** @var boolean If message is anonymous. */ + private $anonymous; + /** @var array a list of properties that is allowed for each message. */ private $properties = array( 'courseid', @@ -158,6 +161,7 @@ class message { 'timecreated', 'fullmessagetrust', 'customdata', + 'anonymous', ); /** @var array property to store any additional message processor specific content */ diff --git a/message/output/popup/message_output_popup.php b/message/output/popup/message_output_popup.php index 69a9cd365e3ae..32b2c014ccd4b 100644 --- a/message/output/popup/message_output_popup.php +++ b/message/output/popup/message_output_popup.php @@ -49,12 +49,15 @@ public function send_message($eventdata) { global $DB; // Prevent users from getting popup notifications from themselves (happens with forum notifications). - if ($eventdata->userfrom->id != $eventdata->userto->id && $eventdata->notification) { - if (!$DB->record_exists('message_popup_notifications', ['notificationid' => $eventdata->savedmessageid])) { - $record = new stdClass(); - $record->notificationid = $eventdata->savedmessageid; - - $DB->insert_record('message_popup_notifications', $record); + if ($eventdata->notification) { + if (($eventdata->userfrom->id != $eventdata->userto->id) || + (isset($eventdata->anonymous) && $eventdata->anonymous)) { + if (!$DB->record_exists('message_popup_notifications', ['notificationid' => $eventdata->savedmessageid])) { + $record = new stdClass(); + $record->notificationid = $eventdata->savedmessageid; + + $DB->insert_record('message_popup_notifications', $record); + } } } diff --git a/mod/feedback/lib.php b/mod/feedback/lib.php index 458cb7315bd93..621bb385b4376 100644 --- a/mod/feedback/lib.php +++ b/mod/feedback/lib.php @@ -2639,6 +2639,7 @@ function feedback_send_email($cm, $feedback, $course, $user, $completed = null) ]; if ($feedback->anonymous == FEEDBACK_ANONYMOUS_NO) { $eventdata = new \core\message\message(); + $eventdata->anonymous = false; $eventdata->courseid = $course->id; $eventdata->name = 'submission'; $eventdata->component = 'mod_feedback'; @@ -2661,6 +2662,7 @@ function feedback_send_email($cm, $feedback, $course, $user, $completed = null) message_send($eventdata); } else { $eventdata = new \core\message\message(); + $eventdata->anonymous = true; $eventdata->courseid = $course->id; $eventdata->name = 'submission'; $eventdata->component = 'mod_feedback'; @@ -2726,6 +2728,7 @@ function feedback_send_email_anonym($cm, $feedback, $course) { } $eventdata = new \core\message\message(); + $eventdata->anonymous = true; $eventdata->courseid = $course->id; $eventdata->name = 'submission'; $eventdata->component = 'mod_feedback';