You are here

function opigno_statistics_app_query_active_users_last_week_percentage in Opigno Statistics App 7

Retrieve active user last week percentage (cached for 1 day)

Return value

float

1 call to opigno_statistics_app_query_active_users_last_week_percentage()
opigno_statistics_app_present_active_users_last_week_percentage in includes/dashboard/presenters.inc
Present active users last week percentage

File

includes/dashboard/queries.inc, line 287

Code

function opigno_statistics_app_query_active_users_last_week_percentage() {
  $cache_key = __FUNCTION__;
  $cached_object = cache_get($cache_key);
  if ($cached_object) {
    $percentage = $cached_object->data;
  }
  else {
    $number_of_users_last_week = db_query('SELECT COUNT(distinct uid) FROM {accesslog} WHERE timestamp BETWEEN :start_of_last_week AND :end_of_last_week ', array(
      ':start_of_last_week' => opigno_statistics_app_start_of_last_week(),
      ':end_of_last_week' => opigno_statistics_app_end_of_last_week(),
    ))
      ->fetchField();
    $total_number_of_users = db_query('SELECT COUNT(distinct uid) FROM {accesslog}')
      ->fetchField();
    $percentage = $total_number_of_users != 0 && $number_of_users_last_week != 0 ? $number_of_users_last_week / $total_number_of_users : 0;
    cache_set($cache_key, $percentage, 'cache', time() + 7200);

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