$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();
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>'; }