fixed timeout for users connected in chat for session and groups

skala
Cristian Fasanando 15 years ago
parent f76ab2f652
commit 1d0b1c6cb0
  1. 34
      main/chat/chat_functions.lib.php
  2. 2
      main/chat/chat_hidden.php

@ -31,17 +31,11 @@ function exit_of_chat ($user_id) {
$list_course=array();
$list_course=CourseManager::get_courses_list_by_user_id($user_id);
$group_id = intval($_SESSION['_gid']);
$session_id = intval($_SESSION['id_session']);
$extra_condition = '';
if (!empty($group_id)) $extra_condition = " AND to_group_id = '$group_id'";
else $extra_condition = api_get_session_condition($session_id);
foreach($list_course as $courses) {
$response=user_connected_in_chat($user_id,$courses['db_name']);
if ($response===true) {
$tbl_chat_connected = Database::get_course_chat_connected_table($courses['db_name']);;
$sql='DELETE FROM '.$tbl_chat_connected.' WHERE user_id='.$user_id.$extra_condition;
$sql='DELETE FROM '.$tbl_chat_connected.' WHERE user_id='.$user_id;
Database::query($sql,__FILE__,__LINE__);
}
}
@ -56,13 +50,7 @@ function exit_of_chat ($user_id) {
function user_connected_in_chat ($user_id,$database_name) {
$tbl_chat_connected = Database::get_course_chat_connected_table($database_name);
$group_id = intval($_SESSION['_gid']);
$session_id = intval($_SESSION['id_session']);
$extra_condition = '';
if (!empty($group_id)) $extra_condition = " AND to_group_id = '$group_id'";
else $extra_condition = api_get_session_condition($session_id);
$sql='SELECT COUNT(*) AS count FROM '.$tbl_chat_connected .' c WHERE user_id='.$user_id.$extra_condition;
$sql='SELECT COUNT(*) AS count FROM '.$tbl_chat_connected .' c WHERE user_id='.$user_id;
$result = Database::query($sql,__FILE__,__LINE__);
$count = Database::fetch_array($result,'ASSOC');
if (1==$count['count']) {
@ -85,12 +73,6 @@ function disconnect_user_of_chat () {
$cdate_s = date('s',time());
$cd_count_time_seconds=$cdate_h*3600 + $cdate_m*60 + $cdate_s;
$group_id = intval($_SESSION['_gid']);
$session_id = intval($_SESSION['id_session']);
$extra_condition = '';
if (!empty($group_id)) $extra_condition = " AND to_group_id = '$group_id'";
else $extra_condition = api_get_session_condition($session_id);
foreach ($list_info_user_in_chat as $list_info_user) {
$date_db_date = date('Y-m-d',strtotime($list_info_user['last_connection']));
$date_db_h = date('H',strtotime($list_info_user['last_connection']));
@ -98,9 +80,9 @@ function disconnect_user_of_chat () {
$date_db_s = date('s',strtotime($list_info_user['last_connection']));
$date_count_time_seconds=$date_db_h*3600 + $date_db_m*60 + $date_db_s;
if ($cd_date==$date_db_date) {
if (($cd_count_time_seconds - $date_count_time_seconds)>10) {
if (($cd_count_time_seconds - $date_count_time_seconds)>5) {
$tbl_chat_connected = Database::get_course_chat_connected_table();
$sql='DELETE FROM '.$tbl_chat_connected.' WHERE user_id='.$list_info_user['user_id'].$extra_condition;
$sql='DELETE FROM '.$tbl_chat_connected.' WHERE user_id='.$list_info_user['user_id'];
Database::query($sql,__FILE__,__LINE__);
}
}
@ -117,13 +99,7 @@ function users_list_in_chat () {
$list_users_in_chat=array();
$tbl_chat_connected = Database::get_course_chat_connected_table();
$group_id = intval($_SESSION['_gid']);
$session_id = intval($_SESSION['id_session']);
$extra_condition = '';
if (!empty($group_id)) $extra_condition = " WHERE to_group_id = '$group_id'";
else $extra_condition = api_get_session_condition($session_id,false);
$sql='SELECT user_id,last_connection FROM '.$tbl_chat_connected.$extra_condition;
$sql='SELECT user_id,last_connection FROM '.$tbl_chat_connected;
$result=Database::query($sql,__FILE__,__LINE__);
while ($row = Database::fetch_array($result,'ASSOC')) {
$list_users_in_chat[]=$row;

@ -84,7 +84,7 @@ if (!empty($group_id)) {
$chat_size_old=intval($_POST['chat_size_old']);
$chat_size_new=filesize($chatPath.$basename_chat.'.log.html');
$sql="SELECT user_id FROM $tbl_chat_connected WHERE user_id='".$_user['user_id']."' $extra_condition";
$sql="SELECT user_id FROM $tbl_chat_connected WHERE user_id='".$_user['user_id']."'";
$result=Database::query($sql);
//The user_id exists so we must do an UPDATE and not a INSERT

Loading…
Cancel
Save