function _get_quiz_top_scorers_chart in Quiz 6.x
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.6 modules/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()
Generates the top scorers chart.
Parameters
int $vid: Revision id of quiz node.
int $uid: An optional user ID. If supplied, only quizzes created by that user will be returned.
Return value
array|false Array with chart and metadata, FALSE if no quiz was found.
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 142 - Administration file for Quiz stats Module.
Code
function _get_quiz_top_scorers_chart($vid, $uid = 0) {
$top_scorers = [];
// TODO: Drupal Rector Notice: Please delete the following comment after you've made any necessary changes.
// You will need to use `\Drupal\core\Database\Database::getConnection()` if you do not yet have access to the container here.
$query = \Drupal::database()
->select('quiz_node_results', 'qnr');
$query
->leftJoin('users', 'u', 'u.uid = qnr.uid');
$query
->fields('qnr', [
'score',
]);
$query
->fields('u', [
'name',
]);
$query
->condition('qnr.vid', $vid);
$query
->condition('qnr.is_invalid', 0);
if ($uid != 0) {
$query
->condition('qnr.uid', $uid);
}
$query
->orderBy('score', 'DESC');
$query
->range(0, 10);
$results = $query
->execute();
while ($result = $results
->fetchAssoc()) {
$key = $result['name'] . '-' . $result['score'];
$top_scorers[$key] = $result;
}
if (count($top_scorers) == 0) {
return FALSE;
}
// Return the chart with some meta data.
$chart = '<div id="quiz_top_scorers" class="quiz-stats-chart-space">';
$chart .= theme('quiz_top_scorers', [
'scorer' => $top_scorers,
]);
$chart .= '</div>';
return [
'chart' => $chart,
'title' => t('Top scorers'),
'explanation' => t('This chart shows which quiz takers have the highest scores.'),
];
}