ILIAS  Release_4_1_x_branch Revision 61804
 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  $access_time = 0;
71 
72  $query = "SELECT * FROM ut_online WHERE usr_id = ".
73  $ilDB->quote($a_usr_id,'integer');
74  $res = $ilDB->query($query);
75 
76  if(!$res->numRows())
77  {
78  return false;
79  }
80  while($row = $res->fetchRow(DB_FETCHMODE_OBJECT))
81  {
82  $access_time = $row->access_time;
83  $online_time = $row->online_time;
84  }
85  $time_span = (int) $ilias->getSetting("tracking_time_span",300);
86 
87  if(($diff = time() - $access_time) <= $time_span)
88  {
89  $ilDB->manipulate(sprintf("UPDATE ut_online SET online_time = online_time + %s, ".
90  "access_time = %s WHERE usr_id = %s",
91  $ilDB->quote($diff, "integer"),
92  $ilDB->quote(time(), "integer"),
93  $ilDB->quote($a_usr_id, "integer")));
94  }
95  else
96  {
97  $ilDB->manipulate(sprintf("UPDATE ut_online SET ".
98  "access_time = %s WHERE usr_id = %s",
99  $ilDB->quote(time(), "integer"),
100  $ilDB->quote($a_usr_id, "integer")));
101  }
102  return true;
103  }
104 }
105 ?>