|
@@ -172,178 +172,7 @@ function LoginDelete($user_id)
|
|
|
Database::query($query);
|
|
|
}
|
|
|
|
|
|
-/**
|
|
|
- * Gives a list of people online now (and in the last $valid minutes)
|
|
|
- * @return array For each line, a list of user IDs and login dates, or FALSE on error or empty results
|
|
|
- */
|
|
|
-function who_is_online($from, $number_of_items, $column = null, $direction = null, $time_limit = null, $friends = false)
|
|
|
-{
|
|
|
- // Time limit in seconds?
|
|
|
- if (empty($time_limit)) {
|
|
|
- $time_limit = api_get_setting('display.time_limit_whosonline');
|
|
|
- } else {
|
|
|
- $time_limit = intval($time_limit);
|
|
|
- }
|
|
|
|
|
|
- $from = intval($from);
|
|
|
- $number_of_items = intval($number_of_items);
|
|
|
-
|
|
|
- if (empty($column)) {
|
|
|
- $column = 'picture_uri';
|
|
|
- if ($friends) {
|
|
|
- $column = 'login_date';
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- if (empty($direction)) {
|
|
|
- $direction = 'DESC';
|
|
|
- } else {
|
|
|
- if (!in_array(strtolower($direction), array('asc', 'desc'))) {
|
|
|
- $direction = 'DESC';
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- $online_time = time() - $time_limit * 60;
|
|
|
- $current_date = api_get_utc_datetime($online_time);
|
|
|
- $track_online_table = Database::get_main_table(TABLE_STATISTIC_TRACK_E_ONLINE);
|
|
|
- $friend_user_table = Database::get_main_table(TABLE_MAIN_USER_REL_USER);
|
|
|
- $table_user = Database::get_main_table(TABLE_MAIN_USER);
|
|
|
-
|
|
|
- if ($friends) {
|
|
|
- // who friends from social network is online
|
|
|
- $query = "SELECT DISTINCT login_user_id, login_date
|
|
|
- FROM $track_online_table INNER JOIN $friend_user_table
|
|
|
- ON (friend_user_id = login_user_id)
|
|
|
- WHERE
|
|
|
- login_date >= '".$current_date."' AND
|
|
|
- friend_user_id <> '".api_get_user_id()."' AND
|
|
|
- relation_type='".USER_RELATION_TYPE_FRIEND."' AND
|
|
|
- user_id = '".api_get_user_id()."'
|
|
|
- ORDER BY $column $direction
|
|
|
- LIMIT $from, $number_of_items";
|
|
|
- } else {
|
|
|
- $query = "SELECT DISTINCT login_user_id, login_date
|
|
|
- FROM ".$track_online_table ." e
|
|
|
- INNER JOIN ".$table_user ." u ON (u.id = e.login_user_id)
|
|
|
- WHERE u.status != ".ANONYMOUS." AND login_date >= '".$current_date."'
|
|
|
- ORDER BY $column $direction
|
|
|
- LIMIT $from, $number_of_items";
|
|
|
- }
|
|
|
-
|
|
|
- if (api_get_multiple_access_url()) {
|
|
|
- $access_url_id = api_get_current_access_url_id();
|
|
|
- if ($access_url_id != -1) {
|
|
|
- if ($friends) {
|
|
|
- // friends from social network is online
|
|
|
- $query = "SELECT distinct login_user_id, login_date
|
|
|
- FROM $track_online_table track INNER JOIN $friend_user_table
|
|
|
- ON (friend_user_id = login_user_id)
|
|
|
- WHERE track.access_url_id = $access_url_id AND
|
|
|
- login_date >= '".$current_date."' AND
|
|
|
- friend_user_id <> '".api_get_user_id()."' AND
|
|
|
- relation_type='".USER_RELATION_TYPE_FRIEND."'
|
|
|
- ORDER BY $column $direction
|
|
|
- LIMIT $from, $number_of_items";
|
|
|
- } else {
|
|
|
- // all users online
|
|
|
- $query = "SELECT login_user_id, login_date
|
|
|
- FROM ".$track_online_table ." track
|
|
|
- INNER JOIN ".$table_user ." u
|
|
|
- ON (u.id=track.login_user_id)
|
|
|
- WHERE u.status != ".ANONYMOUS." AND track.access_url_id = $access_url_id AND
|
|
|
- login_date >= '".$current_date."'
|
|
|
- ORDER BY $column $direction
|
|
|
- LIMIT $from, $number_of_items";
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- //This query will show all registered users. Only for dev purposes.
|
|
|
- /*$query = "SELECT DISTINCT u.id as login_user_id, login_date FROM ".$track_online_table ." e , $table_user u
|
|
|
- GROUP by u.id
|
|
|
- ORDER BY $column $direction
|
|
|
- LIMIT $from, $number_of_items";*/
|
|
|
-
|
|
|
- $result = Database::query($query);
|
|
|
- if ($result) {
|
|
|
- $users_online = array();
|
|
|
- while (list($login_user_id, $login_date) = Database::fetch_row($result)) {
|
|
|
- $users_online[] = $login_user_id;
|
|
|
- }
|
|
|
- return $users_online;
|
|
|
- } else {
|
|
|
- return false;
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
-function who_is_online_count($time_limit = null, $friends = false)
|
|
|
-{
|
|
|
- if (empty($time_limit)) {
|
|
|
- $time_limit = api_get_setting('display.time_limit_whosonline');
|
|
|
- } else {
|
|
|
- $time_limit = intval($time_limit);
|
|
|
- }
|
|
|
- $track_online_table = Database::get_main_table(TABLE_STATISTIC_TRACK_E_ONLINE);
|
|
|
- $friend_user_table = Database::get_main_table(TABLE_MAIN_USER_REL_USER);
|
|
|
- $table_user = Database::get_main_table(TABLE_MAIN_USER);
|
|
|
- $online_time = time() - $time_limit * 60;
|
|
|
- $current_date = api_get_utc_datetime($online_time);
|
|
|
-
|
|
|
- if ($friends) {
|
|
|
- // who friends from social network is online
|
|
|
- $query = "SELECT DISTINCT count(login_user_id) as count
|
|
|
- FROM $track_online_table INNER JOIN $friend_user_table
|
|
|
- ON (friend_user_id = login_user_id)
|
|
|
- WHERE
|
|
|
- login_date >= '$current_date' AND
|
|
|
- friend_user_id <> '".api_get_user_id()."' AND
|
|
|
- relation_type='".USER_RELATION_TYPE_FRIEND."' AND
|
|
|
- user_id = '".api_get_user_id()."' ";
|
|
|
- } else {
|
|
|
- // All users online
|
|
|
- $query = "SELECT count(login_id) as count
|
|
|
- FROM $track_online_table track INNER JOIN $table_user u
|
|
|
- ON (u.id=track.login_user_id)
|
|
|
- WHERE u.status != ".ANONYMOUS." AND login_date >= '$current_date' ";
|
|
|
- }
|
|
|
-
|
|
|
- if (api_get_multiple_access_url()) {
|
|
|
- $access_url_id = api_get_current_access_url_id();
|
|
|
- if ($access_url_id != -1) {
|
|
|
- if ($friends) {
|
|
|
- // friends from social network is online
|
|
|
- $query = "SELECT DISTINCT count(login_user_id) as count
|
|
|
- FROM $track_online_table track
|
|
|
- INNER JOIN $friend_user_table ON (friend_user_id = login_user_id)
|
|
|
- WHERE
|
|
|
- track.access_url_id = $access_url_id AND
|
|
|
- login_date >= '".$current_date."' AND
|
|
|
- friend_user_id <> '".api_get_user_id()."' AND
|
|
|
- relation_type='".USER_RELATION_TYPE_FRIEND."' ";
|
|
|
- } else {
|
|
|
- // all users online
|
|
|
- $query = "SELECT count(login_id) as count FROM $track_online_table track
|
|
|
- INNER JOIN $table_user u ON (u.id=track.login_user_id)
|
|
|
- WHERE
|
|
|
- u.status != ".ANONYMOUS." AND
|
|
|
- track.access_url_id = $access_url_id AND
|
|
|
- login_date >= '$current_date' ";
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- // Dev purposes show all users online
|
|
|
- /*$table_user = Database::get_main_table(TABLE_MAIN_USER);
|
|
|
- $query = "SELECT count(*) as count FROM ".$table_user;*/
|
|
|
-
|
|
|
- $result = Database::query($query);
|
|
|
- if (Database::num_rows($result) > 0) {
|
|
|
- $row = Database::fetch_array($result);
|
|
|
- return $row['count'];
|
|
|
- } else {
|
|
|
- return false;
|
|
|
- }
|
|
|
-}
|
|
|
|
|
|
|
|
|
/**
|