ILIAS  Release_4_0_x_branch Revision 61816
 All Data Structures Namespaces Files Functions Variables Groups Pages
class.ilOnlineTracking.php
Go to the documentation of this file.
1 <?php
2 /* Copyright (c) 1998-2009 ILIAS open source, Extended GPL, see docs/LICENSE */
3 
19 {
20  // Static
21  function _getOnlineTime($a_user_id)
22  {
23  global $ilDB;
24 
25  $res = $ilDB->query("SELECT * FROM ut_online WHERE usr_id = ".
26  $ilDB->quote($a_user_id, "integer"));
27  while ($row = $ilDB->fetchObject($res))
28  {
29  $access_time = $row->access_time;
30  $online_time = $row->online_time;
31  }
32  return (int) $online_time;
33  }
34 
35 
36 
42  function _addUser($a_user_id)
43  {
44  global $ilDB;
45 
46  $res = $ilDB->query("SELECT * FROM ut_online WHERE usr_id = ".
47  $ilDB->quote($a_user_id, "integer"));
48 
49  if($res->numRows())
50  {
51  return false;
52  }
53 
54  $ilDB->manipulate(sprintf("INSERT INTO ut_online (usr_id, access_time) VALUES (%s,%s)",
55  $ilDB->quote($a_user_id, "integer"),
56  $ilDB->quote(time(), "integer")));
57 
58  return true;
59  }
60 
66  function _updateAccess($a_usr_id)
67  {
68  global $ilDB,$ilias;
69 
70  $query = "SELECT * FROM ut_online WHERE usr_id = ".
71  $ilDB->quote($a_usr_id,'integer');
72  $res = $ilDB->query($query);
73 
74  if(!$res->numRows())
75  {
76  return false;
77  }
78  while($row = $res->fetchRow(DB_FETCHMODE_OBJECT))
79  {
80  $access_time = $row->access_time;
81  $online_time = $row->online_time;
82  }
83  $time_span = (int) $ilias->getSetting("tracking_time_span",300);
84 
85  if(($diff = time() - $access_time) <= $time_span)
86  {
87  $ilDB->manipulate(sprintf("UPDATE ut_online SET online_time = online_time + %s, ".
88  "access_time = %s WHERE usr_id = %s",
89  $ilDB->quote($diff, "integer"),
90  $ilDB->quote(time(), "integer"),
91  $ilDB->quote($a_usr_id, "integer")));
92  }
93  else
94  {
95  $ilDB->manipulate(sprintf("UPDATE ut_online SET ".
96  "access_time = %s WHERE usr_id = %s",
97  $ilDB->quote(time(), "integer"),
98  $ilDB->quote($a_usr_id, "integer")));
99  }
100  return true;
101  }
102 }
103 ?>