function _get_quiz_status_chart in Quiz 8.5
Same name and namespace in other branches
- 8.6 modules/quiz_stats/quiz_stats.admin.inc \_get_quiz_status_chart()
- 8.4 modules/quiz_stats/quiz_stats.admin.inc \_get_quiz_status_chart()
- 6.6 includes/quiz_dashboard/quiz_dashboard.admin.inc \_get_quiz_status_chart()
- 6.4 includes/quiz_stats/quiz_stats.admin.inc \_get_quiz_status_chart()
- 7.6 modules/quiz_stats/quiz_stats.admin.inc \_get_quiz_status_chart()
- 7 includes/quiz_stats/quiz_stats.admin.inc \_get_quiz_status_chart()
- 7.4 includes/quiz_stats/quiz_stats.admin.inc \_get_quiz_status_chart()
- 7.5 modules/quiz_stats/quiz_stats.admin.inc \_get_quiz_status_chart()
- 6.x modules/quiz_stats/quiz_stats.admin.inc \_get_quiz_status_chart()
Generates a chart showing the status for all registered responses to a quiz.
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_status_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 185 - Administration file for Quiz stats Module.
Code
function _get_quiz_status_chart($vid, $uid = 0) {
// Get the pass rate of the given quiz by vid.
$pass_rate = db_select('quiz_node_properties', 'qnp')
->fields('qnp', array(
'pass_rate',
))
->condition('vid', $vid)
->execute()
->fetchField();
if (!$pass_rate) {
return FALSE;
}
// Get the count value of results row above and below pass rate.
$query = db_select('quiz_node_results', 'qnr');
$query
->addExpression("SUM(score >= {$pass_rate})", 'no_pass');
$query
->addExpression("SUM(score < {$pass_rate})", 'no_fail');
$query
->addExpression('SUM(is_evaluated = 0)', 'no_incomplete');
$query
->condition('vid', $vid);
$query
->condition('is_invalid', 0);
$quiz = $query
->execute()
->fetchAssoc();
if ($quiz['no_pass'] + $quiz['no_fail'] + $quiz['no_incomplete'] < 1) {
// No sufficient data.
return FALSE;
}
// Generates quiz status chart 3D pie chart.
$chart = '<div id="get_quiz_status_chart" class="quiz-stats-chart-space">';
$chart .= theme('get_quiz_status_chart', array(
'quiz' => $quiz,
));
$chart .= '</div>';
return array(
'chart' => $chart,
'title' => t('Status'),
'explanation' => t('This chart shows the status for all attempts made to answer this revision of the quiz.'),
);
}