diff --git a/.gitignore b/.gitignore
index 83d45fb1..1aafcd90 100644
--- a/.gitignore
+++ b/.gitignore
@@ -241,7 +241,6 @@ inc/tiny_mce/3.5.11/utils/mctabs.js
inc/tiny_mce/3.5.11/utils/validate.js
inc/treemenu/TreeMenu.php
inc/treemenu/index.htm
-inc/users_online.inc.php
inc/zip/Zip.php
inc/zip/index.htm
inc/zip/pclzip.lib.php
diff --git a/inc/users_online.inc.php b/inc/users_online.inc.php
new file mode 100755
index 00000000..350d5237
--- /dev/null
+++ b/inc/users_online.inc.php
@@ -0,0 +1,143 @@
+
+
+
+
+
+ !['.$hesklang['onlinep'].' '.$hesklang['onlinep'].'](../img/online_on.png) |
+
+ ';
+ $i = '';
+ foreach ($hesk_settings['users_online'] as $tmp)
+ {
+ $i .= '';
+ $i .= ($tmp['id'] == $_SESSION['id']) ? $tmp['name'] : '' . $tmp['name'] . '';
+ $i .= ', ';
+ }
+ echo substr($i,0,-2);
+ echo '
+ |
+
+
+
+
';
+
+} // END hesk_printOnline()
+
+
+function hesk_listOnline($list_names=1)
+{
+ global $hesk_settings, $hesklang, $hesk_db_link;
+
+ $users_online = array();
+
+ /* Clean expired entries */
+ hesk_cleanOnline();
+
+ /* Get a list of online users */
+ /* --> 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()