MDL-47162 badges: site & profile badges do not have courseid
authorEloy Lafuente (stronk7) <stronk7@moodle.org>
Tue, 1 Nov 2016 11:47:54 +0000 (12:47 +0100)
committerEloy Lafuente (stronk7) <stronk7@moodle.org>
Tue, 1 Nov 2016 11:47:54 +0000 (12:47 +0100)
Because of that, we need to set the, now mandatory, SITEID for
those message events to be happy. This does not affect course or
activity badges, both coming with correct courseid.

lib/badgeslib.php

index 9724bf7..70ba3ba 100644 (file)
@@ -723,7 +723,7 @@ function badges_notify_badge_award(badge $badge, $userid, $issued, $filepathhash
 
     // Notify recipient.
     $eventdata = new \core\message\message();
-    $eventdata->courseid          = $badge->courseid;
+    $eventdata->courseid          = is_null($badge->courseid) ? SITEID : $badge->courseid; // Profile/site come with no courseid.
     $eventdata->component         = 'moodle';
     $eventdata->name              = 'badgerecipientnotice';
     $eventdata->userfrom          = $userfrom;