$from = "FROM {user} u\n        INNER JOIN {role_assignments} a ON a.userid = u.id\n        LEFT JOIN {campusclash_points} r ON r.userid = u.id AND r.courseid = :r_courseid\n        INNER JOIN {context} c ON c.id = a.contextid";
$where = "WHERE a.contextid = :contextid\n        AND a.userid = u.id\n        AND a.roleid = :roleid\n        AND c.instanceid = :courseid";
$params['contextid'] = $context->id;
$params['roleid'] = 5;
$params['courseid'] = $COURSE->id;
$params['r_courseid'] = $params['courseid'];
$order = "ORDER BY r.points DESC, u.firstname ASC\n        LIMIT " . $perpage;
if ($group) {
    $from .= " INNER JOIN {groups_members} gm ON gm.userid = u.id AND gm.groupid = :groupid";
    $params['groupid'] = $group;
}
$sql = "SELECT {$userfields}, r.points {$from} {$where} {$order}";
$students = array_values($DB->get_records_sql($sql, $params));
$strcoursereport = get_string('nostudents', 'block_campusclash');
if (count($students)) {
    $strcoursereport = get_string('report_head', 'block_campusclash', count($students));
}
echo $OUTPUT->header();
echo $OUTPUT->heading($strcoursereport);
$PAGE->set_title($strcoursereport);
// Output group selector if there are groups in the course.
echo $OUTPUT->container_start('campusclash-report');
if (has_capability('moodle/site:accessallgroups', $context)) {
    $groups = groups_get_all_groups($course->id);
    if (!empty($groups)) {
        groups_print_course_menu($course, $PAGE->url);
    }
}
echo block_campusclash_generate_table($students);
echo $OUTPUT->container_end();
echo $OUTPUT->footer();
Beispiel #2
0
function block_campusclash_print_students($rankinggeral)
{
    global $PAGE;
    $tablegeral = block_campusclash_generate_table($rankinggeral);
    $PAGE->requires->js_init_call('M.block_ranking.init_tabview');
    return '<div id="ranking-tabs">
                <ul>
                    <li><a href="#geral">' . get_string('general', 'block_campusclash') . '</a></li>
                </ul>
                <div>
                    <div id="geral">' . $tablegeral . '</div>
                </div>
            </div>';
}