function _get_quiz_top_scorers_chart in Quiz 7.6
Same name and namespace in other branches
- 8.6 modules/quiz_stats/quiz_stats.admin.inc \_get_quiz_top_scorers_chart()
- 8.4 modules/quiz_stats/quiz_stats.admin.inc \_get_quiz_top_scorers_chart()
- 8.5 modules/quiz_stats/quiz_stats.admin.inc \_get_quiz_top_scorers_chart()
- 6.6 includes/quiz_dashboard/quiz_dashboard.admin.inc \_get_quiz_top_scorers_chart()
- 6.4 includes/quiz_stats/quiz_stats.admin.inc \_get_quiz_top_scorers_chart()
- 7 includes/quiz_stats/quiz_stats.admin.inc \_get_quiz_top_scorers_chart()
- 7.4 includes/quiz_stats/quiz_stats.admin.inc \_get_quiz_top_scorers_chart()
- 7.5 modules/quiz_stats/quiz_stats.admin.inc \_get_quiz_top_scorers_chart()
- 6.x modules/quiz_stats/quiz_stats.admin.inc \_get_quiz_top_scorers_chart()
Generates the top scorers chart
Parameters
$vid: revision id of quiz node
$uid: User id
Return value
array with chart and metadata
1 call to _get_quiz_top_scorers_chart()
- quiz_stats_get_adv_stats in modules/
quiz_stats/ quiz_stats.admin.inc - Get stats for a single quiz. Maybe also for a single user.
File
- modules/
quiz_stats/ quiz_stats.admin.inc, line 136 - Administration file for Quiz stats Module
Code
function _get_quiz_top_scorers_chart($vid, $uid = 0) {
$top_scorers = array();
$sql = 'SELECT name, score FROM {quiz_node_results} qnr
LEFT JOIN {users} u ON (u.uid = qnr.uid)
WHERE vid = :vid';
$arg[':vid'] = $vid;
if ($uid != 0) {
$sql .= ' AND qnr.uid = :uid';
$arg[':uid'] = $uid;
}
$sql .= ' ORDER by score DESC LIMIT 10';
$results = db_query($sql, $arg);
while ($result = $results
->fetchAssoc()) {
$key = $result['name'] . '-' . $result['score'];
$top_scorers[$key] = $result;
}
if (count($top_scorers) == 0) {
return FALSE;
}
$chart = '<div id="quiz_top_scorers" class="quiz-stats-chart-space">';
$chart .= theme('quiz_top_scorers', array(
'scorer' => $top_scorers,
));
$chart .= '</div>';
return array(
'chart' => $chart,
'title' => t('Top scorers'),
'explanation' => t('This chart shows which quiz takers have the highest scores.'),
);
}