Fixing whoisonline wrong date validation

skala
Julio Montoya 12 years ago
parent 3b3e65bb39
commit 34198f38e3
  1. 6
      main/inc/lib/main_api.lib.php
  2. 36
      main/inc/lib/online.inc.php
  3. 2
      main/inc/lib/social.lib.php
  4. 2
      whoisonline.php

@ -1035,10 +1035,6 @@ function api_get_user_courses($userid, $fetch_session = true) {
function _api_format_user($user, $add_password = false) {
$result = array();
if (api_is_anonymous()) {
return $user;
}
if (isset($user['firstname']) && isset($user['lastname'])) {
$firstname = $user['firstname'];
$lastname = $user['lastname'];
@ -1168,7 +1164,7 @@ function api_get_user_info($user_id = '', $check_if_user_is_online = false, $sho
}
$result_array['user_is_online_in_chat'] = $user_online_in_chat;
}
$user = _api_format_user($result_array, $show_password);
$user = _api_format_user($result_array, $show_password);
return $user;
}
return false;

@ -233,15 +233,17 @@ function who_is_online($from, $number_of_items, $column = null, $direction = nul
$result = Database::query($query);
if ($result) {
$valid_date_time = new DateTime();
/*$valid_date_time = new DateTime();
$diff = "PT".$time_limit.'M';
$valid_date_time->sub(new DateInterval($diff));
$valid_date_time->sub(new DateInterval($diff));*/
$users_online = array();
while(list($login_user_id, $login_date) = Database::fetch_row($result)) {
$user_login_date = new DateTime($login_date);
$users_online[] = $login_user_id;
/*$user_login_date = new DateTime($login_date);
var_dump($user_login_date->format('Y-m-d H:i:s'), $valid_date_time->format('Y-m-d H:i:s'));
if ($user_login_date->format('Y-m-d H:i:s') > $valid_date_time->format('Y-m-d H:i:s')) {
$users_online[] = $login_user_id;
}
}*/
}
return $users_online;
} else {
@ -257,11 +259,9 @@ function who_is_online_count($time_limit = null, $friends = false) {
}
$track_online_table = Database::get_statistic_table(TABLE_STATISTIC_TRACK_E_ONLINE);
$friend_user_table = Database::get_main_table(TABLE_MAIN_USER_REL_USER);
$query = '';
$table_user = Database::get_main_table(TABLE_MAIN_USER);
/*$current_date = api_get_utc_datetime();
$current_date = api_strtotime($current_date, 'UTC');
$current_date = date('Y-m-d H:i:s', $current_date);*/
$query = '';
$online_time = time() - $time_limit*60;
$current_date = api_get_utc_datetime($online_time);
@ -273,8 +273,9 @@ function who_is_online_count($time_limit = null, $friends = false) {
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
WHERE login_user_id <> 2 AND login_date >= '$current_date' ";
$query = "SELECT count(login_id) as count
FROM $track_online_table track INNER JOIN $table_user u ON (u.user_id=track.login_user_id)
WHERE u.status != ".ANONYMOUS." AND login_date >= '$current_date' ";
}
if (api_get_multiple_access_url()) {
@ -289,7 +290,8 @@ function who_is_online_count($time_limit = null, $friends = false) {
} else {
// all users online
$query = "SELECT count(login_id) as count FROM $track_online_table track
WHERE login_user_id <> 2 AND track.access_url_id = $access_url_id AND login_date >= '$current_date' ";
INNER JOIN $table_user u ON (u.user_id=track.login_user_id)
WHERE u.status != ".ANONYMOUS." AND track.access_url_id = $access_url_id AND login_date >= '$current_date' ";
}
}
}
@ -339,16 +341,16 @@ function who_is_online_in_this_course($from, $number_of_items, $uid, $time_limit
$result = Database::query($query);
if ($result) {
$valid_date_time = new DateTime();
/*$valid_date_time = new DateTime();
$diff = "PT".$time_limit.'M';
$valid_date_time->sub(new DateInterval($diff));
$valid_date_time->sub(new DateInterval($diff));*/
$users_online = array();
while(list($login_user_id, $login_date) = Database::fetch_row($result)) {
$user_login_date = new DateTime($login_date);
if ($user_login_date > $valid_date_time->format('Y-m-d H:i:s')) {
/*$user_login_date = new DateTime($login_date);
if ($user_login_date > $valid_date_time->format('Y-m-d H:i:s')) {*/
$users_online[] = $login_user_id;
}
//}
}
return $users_online;
} else {

@ -779,7 +779,6 @@ class SocialManager extends UserManager
public static function display_user_list($user_list)
{
if ($_GET['id'] == '') {
$column_size = '9';
$add_row = false;
if (api_is_anonymous()) {
@ -801,6 +800,7 @@ class SocialManager extends UserManager
$html .= '<div class="span'.$column_size.'">';
$html .= '<ul id="online_grid_container" class="thumbnails">';
foreach ($user_list as $uid) {
$user_info = api_get_user_info($uid);
//Anonymous users can't have access to the profile

@ -116,7 +116,6 @@ if ((api_get_setting('showonline', 'world') == 'true' && !$_user['user_id']) ||
} else {
$user_list = who_is_online(0, 9);
}
if (!isset($_GET['id'])) {
if (api_get_setting('allow_social_tool') == 'true') {
if (!api_is_anonymous()) {
@ -155,7 +154,6 @@ $tpl = new Template(get_lang('UsersOnLineList'));
if (api_get_setting('allow_social_tool') == 'true' && !api_is_anonymous()) {
$tpl->assign('social_left_content', $social_left_content);
//$tpl->assign('social_left_menu', $social_left_menu);
$tpl->assign('social_right_content', $social_right_content);
$social_layout = $tpl->get_template('layout/social_layout.tpl');
$tpl->display($social_layout);

Loading…
Cancel
Save