You are here

function advanced_forum_statistics_online_users in Advanced Forum 7.2

Same name and namespace in other branches
  1. 5 advanced_forum.module \advanced_forum_statistics_online_users()
  2. 6.2 advanced_forum.module \advanced_forum_statistics_online_users()
  3. 6 advanced_forum.module \advanced_forum_statistics_online_users()

Return an array of online usernames, linked to their profiles.

1 call to advanced_forum_statistics_online_users()
advanced_forum_preprocess_advanced_forum_statistics in includes/theme.inc
Preprocesses template variables for the forum statistics template.

File

./advanced_forum.module, line 830
Enables the look and feel of other popular forum software.

Code

function advanced_forum_statistics_online_users() {
  $list = array();
  $interval = REQUEST_TIME - variable_get('user_block_seconds_online', 900);
  $query = db_select("users", "u")
    ->distinct()
    ->fields("u", array(
    "uid",
    "name",
  ));
  $s_alias = $query
    ->join("sessions", "s", "u.uid = s.uid");
  $query
    ->addExpression("MAX({$s_alias}.timestamp)", "maxtime");
  $query
    ->condition("{$s_alias}.timestamp", $interval, ">=")
    ->condition("{$s_alias}.uid", "0", ">")
    ->groupBy("u.uid, u.name")
    ->orderBy("maxtime", "DESC");
  $authenticated_users = $query
    ->execute();
  while ($account = $authenticated_users
    ->fetchObject()) {
    $list[] = theme('username', array(
      'account' => $account,
    ));
  }
  return $list;
}