You are here

function opigno_statistics_app_query_user_courses_results in Opigno Statistics App 7

Query courses results statistics for a user (cached for 1 day)

Parameters

int $uid:

Return value

array

1 call to opigno_statistics_app_query_user_courses_results()
opigno_statistics_app_present_user_courses_results in includes/user/presenters.inc
Present courses results statistics for a user

File

includes/user/queries.inc, line 147

Code

function opigno_statistics_app_query_user_courses_results($uid) {
  $cache_key = __FUNCTION__ . ':' . $uid;
  $cached_object = cache_get($cache_key);
  if ($cached_object) {
    $courses_results = $cached_object->data;
  }
  else {
    $courses_results = array();
    $result = db_query("\n      SELECT course_name, score, course_nid, status\n      FROM {opigno_statistics_user_course} uc\n      WHERE uc.uid = :uid\n    ", array(
      ':uid' => $uid,
    ));
    while ($record = $result
      ->fetchAssoc()) {
      $averages = opigno_statistics_app_query_course_students_results($record['course_nid']);
      foreach ($averages as $average) {
        if ($average['uid'] == $uid) {
          $averages = $average;
          break;
        }
      }
      $record['avg_number_of_interactions'] = $averages['avg_number_of_interactions'];
      $record['avg_score'] = $averages['avg_score'];
      $record['number_of_interactions'] = $averages['number_of_interactions'];
      $courses_results[] = $record;
    }
    cache_set($cache_key, $courses_results, 'cache', time() + 7200);

    // 7200s = 2h cache
  }
  return $courses_results;
}