You are here

function _get_quiz_top_scorers_chart in Quiz 7.6

Same name and namespace in other branches
  1. 8.6 modules/quiz_stats/quiz_stats.admin.inc \_get_quiz_top_scorers_chart()
  2. 8.4 modules/quiz_stats/quiz_stats.admin.inc \_get_quiz_top_scorers_chart()
  3. 8.5 modules/quiz_stats/quiz_stats.admin.inc \_get_quiz_top_scorers_chart()
  4. 6.6 includes/quiz_dashboard/quiz_dashboard.admin.inc \_get_quiz_top_scorers_chart()
  5. 6.4 includes/quiz_stats/quiz_stats.admin.inc \_get_quiz_top_scorers_chart()
  6. 7 includes/quiz_stats/quiz_stats.admin.inc \_get_quiz_top_scorers_chart()
  7. 7.4 includes/quiz_stats/quiz_stats.admin.inc \_get_quiz_top_scorers_chart()
  8. 7.5 modules/quiz_stats/quiz_stats.admin.inc \_get_quiz_top_scorers_chart()
  9. 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.'),
  );
}