Example #1
0
    $PAGE->set_pagelayout('incourse');
    $PAGE->set_heading($coursename);
    $eventotherparams = array('badgetype' => BADGE_TYPE_COURSE, 'courseid' => $course->id);
}
require_capability('moodle/badges:viewbadges', $PAGE->context);
$PAGE->set_title($title);
$output = $PAGE->get_renderer('core', 'badges');
echo $output->header();
echo $OUTPUT->heading($title);
$totalcount = count(badges_get_badges($type, $courseid, '', '', 0, 0, $USER->id));
$records = badges_get_badges($type, $courseid, $sortby, $sorthow, $page, BADGE_PERPAGE, $USER->id);
if ($totalcount) {
    echo $output->heading(get_string('badgestoearn', 'badges', $totalcount), 4);
    if ($course && $course->startdate > time()) {
        echo $OUTPUT->box(get_string('error:notifycoursedate', 'badges'), 'generalbox notifyproblem');
    }
    $badges = new badge_collection($records);
    $badges->sort = $sortby;
    $badges->dir = $sorthow;
    $badges->page = $page;
    $badges->perpage = BADGE_PERPAGE;
    $badges->totalcount = $totalcount;
    echo $output->render($badges);
} else {
    echo $output->notification(get_string('nobadges', 'badges'));
}
// Trigger event, badge listing viewed.
$eventparams = array('context' => $PAGE->context, 'other' => $eventotherparams);
$event = \core\event\badge_listing_viewed::create($eventparams);
$event->trigger();
echo $output->footer();
Example #2
0
 /**
  * Test the badge listing viewed event.
  *
  * There is no external API for viewing a badge, so the unit test will simply
  * create and trigger the event and ensure data is returned as expected.
  */
 public function test_badge_listing_viewed()
 {
     // Trigger an event: badge listing viewed.
     $context = context_system::instance();
     $eventparams = array('context' => $context, 'other' => array('badgetype' => BADGE_TYPE_SITE));
     $event = \core\event\badge_listing_viewed::create($eventparams);
     // Trigger and capture the event.
     $sink = $this->redirectEvents();
     $event->trigger();
     $events = $sink->get_events();
     $event = reset($events);
     // Check that the event data is valid.
     $this->assertInstanceOf('\\core\\event\\badge_listing_viewed', $event);
     $this->assertEquals(BADGE_TYPE_SITE, $event->other['badgetype']);
     $this->assertDebuggingNotCalled();
     $sink->close();
 }