function opigno_statistics_app_query_class_quiz_completion_percentage in Opigno Statistics App 7
Retrieve course quiz completion percentage for a class (cached for 1 day)
Parameters
int $class_nid:
int $month_year:
boolean $filter_month:
Return value
int
1 call to opigno_statistics_app_query_class_quiz_completion_percentage()
- opigno_statistics_app_present_class_general_statistics in includes/
group/ class/ presenters.inc - Present class general statistics
File
- includes/
group/ class/ queries.inc, line 67
Code
function opigno_statistics_app_query_class_quiz_completion_percentage($class_nid, $month_year, $filter_month) {
$cache_key = __FUNCTION__ . ':' . $class_nid . ':' . $month_year . ':' . $filter_month;
$cached_object = cache_get($cache_key);
if ($cached_object) {
$percentage = $cached_object->data;
}
else {
if ($filter_month) {
$result = db_query('SELECT AVG(cd.status) FROM {opigno_statistics_user_course_details} cd
INNER JOIN opigno_statistics_user_course uc
ON cd.opigno_statistics_user_course_fk = uc.opigno_statistics_user_course_pk
WHERE uc.uid IN (
SELECT uid FROM {opigno_statistics_user_group} ug
WHERE ug.group_nid = :group_nid
)
AND cd.type = :type
AND DATE_FORMAT(FROM_UNIXTIME(cd.timestamp),\'%m-%Y\') = DATE_FORMAT(FROM_UNIXTIME(:timestamp),\'%m-%Y\')', array(
':group_nid' => $class_nid,
':type' => 'quiz',
':timestamp' => $month_year,
))
->fetchCol();
}
else {
$result = db_query('SELECT AVG(cd.status) FROM {opigno_statistics_user_course_details} cd
INNER JOIN opigno_statistics_user_course uc
ON cd.opigno_statistics_user_course_fk = uc.opigno_statistics_user_course_pk
WHERE uc.uid IN (
SELECT uid FROM {opigno_statistics_user_group} ug
WHERE ug.group_nid = :group_nid
)
AND cd.type = :type
AND DATE_FORMAT(FROM_UNIXTIME(cd.timestamp),\'%Y\') = DATE_FORMAT(FROM_UNIXTIME(:timestamp),\'%Y\')', array(
':group_nid' => $class_nid,
':type' => 'quiz',
':timestamp' => $month_year,
))
->fetchCol();
}
$percentage = $result[0];
cache_set($cache_key, $percentage, 'cache', time() + 7200);
// 7200s = 2h cache
}
return $percentage;
}