With names */ if ($list_names) { $res = hesk_dbQuery("SELECT `t1`.`user_id` , `t2`.`name` , `t2`.`isadmin` FROM `".hesk_dbEscape($hesk_settings['db_pfix'])."online` AS `t1` INNER JOIN `".hesk_dbEscape($hesk_settings['db_pfix'])."users` AS `t2` ON `t1`.`user_id` = `t2`.`id`"); while ($tmp = hesk_dbFetchAssoc($res)) { $users_online[$tmp['user_id']] = array( 'id' => $tmp['user_id'], 'name' => $tmp['name'], 'isadmin' => $tmp['isadmin'] ); } } /* --> Without names */ else { $res = hesk_dbQuery("SELECT `user_id` FROM `".hesk_dbEscape($hesk_settings['db_pfix'])."online`"); while ($tmp = hesk_dbFetchAssoc($res)) { $users_online[] = $tmp['user_id']; } } return $users_online; } // END hesk_listOnline() function hesk_setOnline($user_id) { global $hesk_settings, $hesklang, $hesk_db_link; /* If already online just update... */ hesk_dbQuery("UPDATE `".hesk_dbEscape($hesk_settings['db_pfix'])."online` SET `tmp` = `tmp` + 1 WHERE `user_id` = '".intval($user_id)."'"); /* ... else insert a new entry */ if ( ! hesk_dbAffectedRows() ) { hesk_dbQuery("INSERT INTO `".hesk_dbEscape($hesk_settings['db_pfix'])."online` (`user_id`) VALUES (".intval($user_id).") "); } return true; } // END hesk_setOnline() function hesk_setOffline($user_id) { global $hesk_settings, $hesklang, $hesk_db_link; /* If already online just update... */ hesk_dbQuery("DELETE FROM `".hesk_dbEscape($hesk_settings['db_pfix'])."online` WHERE `user_id` = '".intval($user_id)."'"); return true; } // END hesk_setOffline() function hesk_cleanOnline() { global $hesk_settings, $hesklang, $hesk_db_link; /* Delete old rows from the database */ hesk_dbQuery("DELETE FROM `".hesk_dbEscape($hesk_settings['db_pfix'])."online` WHERE `dt` < ( NOW() - INTERVAL ".intval($hesk_settings['online_min'])." MINUTE) "); return true; } // END hesk_cleanOnline()