You are here

function opigno_statistics_app_query_course_number_of_interactions in Opigno Statistics App 7

Query total number of interaction for a course (cached for 1 day)

Parameters

int $course_nid:

Return value

array

1 call to opigno_statistics_app_query_course_number_of_interactions()
opigno_statistics_app_present_course_number_of_interactions in includes/group/course/presenters.inc
Present number of interaction graph for course

File

includes/group/course/queries.inc, line 219

Code

function opigno_statistics_app_query_course_number_of_interactions($course_nid) {
  $cache_key = __FUNCTION__ . ':' . $course_nid;
  $cached_object = cache_get($cache_key);
  if ($cached_object) {
    $number_of_interactions = $cached_object->data;
  }
  else {
    $number_of_interactions = array();
    $result = db_query("\n      SELECT uc.username, uc.score, j1.page_views as number_of_interactions\n      FROM {opigno_statistics_user_course} uc\n      INNER JOIN (\n        SELECT SUM(page_views) as page_views, uid\n        FROM {opigno_statistics_user_group} ug\n        WHERE group_nid = :course_nid\n        GROUP BY uid\n      ) j1 ON uc.uid = j1.uid\n      WHERE course_nid = :course_nid\n      ORDER BY j1.page_views\n    ", array(
      ':course_nid' => $course_nid,
    ));
    while ($record = $result
      ->fetchAssoc()) {
      $number_of_interactions[] = $record;
    }
    cache_set($cache_key, $number_of_interactions, 'cache', time() + 7200);

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