Public Member Functions | Data Fields

ilTracking Class Reference

Public Member Functions

 ilTracking ()
 _getLastAccess ()
 get last access data of current user
 _hasEntry ($a_obj_id, $a_obj_type, $a_sub_id=0, $a_sub_type="")
 _trackAccess ($a_obj_id, $a_obj_type, $a_sub_id=0, $a_sub_type="", $a_action_type="read")
 track access to an object by current user
 TestTitle ($user_id)
 numDay ($from, $to)
 numHour ($from, $to)
 addHour ($time)
 addDay ($time)
 getSubId ($id)
 getSubTest ($id)
 getTestId ($id)
 countResults ($condition)
 searchResults ($condition)
 searchTestResults ($condition)
 searchUserId ($condition)
 searchTestId ($condition)
 getPerTestId ($test)
 countNum ($from, $from1, $condition)
 selectTime ($from, $to, $condition)
 getTest ($id)

Data Fields

 $objId
 $userId
 $actionType
 $phpScript
 $clientIp
 $accObjType
 $accObjId
 $accSubType
 $accSubId
 $lanugage
 $browser
 $sessionId
 $acc_time
 $db

Detailed Description

Definition at line 36 of file class.ilTracking.php.


Member Function Documentation

ilTracking::_getLastAccess (  ) 

get last access data of current user

Definition at line 68 of file class.ilTracking.php.

References $q, and $res.

        {
                global $ilUser, $ilDB;

                $q = "SELECT * from ut_access "
                ." WHERE "
                ." user_id = ".$ilDB->quote($ilUser->getId())
                ." order by acc_time desc limit 1 ";
                $res = $ilDB->query($q);
                return $res->fetchRow(DB_FETCHMODE_ASSOC);
        }

ilTracking::_hasEntry ( a_obj_id,
a_obj_type,
a_sub_id = 0,
a_sub_type = "" 
)

Definition at line 80 of file class.ilTracking.php.

References $query, $res, and $row.

Referenced by _trackAccess().

        {
                global $ilDB;
                
                // We query for the session_id since it is more unique than the user_id. 
                
                $query = "SELECT COUNT(id) as num_entries FROM ut_access ".
                        "WHERE session_id = ".$ilDB->quote(session_id())." ".
                        "AND acc_obj_id = ".$ilDB->quote($a_obj_id)." ".
                        "AND acc_sub_id = ".$ilDB->quote($a_sub_id);
                $res = $ilDB->query($query);
                $row = $res->fetchRow(DB_FETCHMODE_OBJECT);
                
                return $row->num_entries ? true : false;
        }

Here is the caller graph for this function:

ilTracking::_trackAccess ( a_obj_id,
a_obj_type,
a_sub_id = 0,
a_sub_type = "",
a_action_type = "read" 
)

track access to an object by current user

Parameters:
int $a_obj_id object id
string $a_obj_type object type (e.g. "lm")
int $a_sub_id subobject id
string $a_sub_type subobject type (e.g. "pg")
string $a_action_type "read", "write", ...

Definition at line 105 of file class.ilTracking.php.

References $q, $user_id, ilObjUserTracking::_enabledLearningProgress(), ilObjUserTracking::_enabledTracking(), ilObjUserTracking::_enabledUserRelatedData(), _hasEntry(), and ilLearningProgress::_tracProgress().

Referenced by ilLMPresentationGUI::ilPage(), and ilObjFileBasedLMGUI::showLearningModule().

        {
                global $ilUser, $ilDB;


                include_once("Services/Tracking/classes/class.ilObjUserTracking.php");
                if(!ilObjUserTracking::_enabledTracking() and !ilObjUserTracking::_enabledLearningProgress())
                {
                        return false;
                }

                include_once 'Services/Tracking/classes/class.ilLearningProgress.php';
                ilLearningProgress::_tracProgress($ilUser->getId(),$a_obj_id,$a_obj_type);

                if (ilObjUserTracking::_enabledUserRelatedData())
                {
                        $user_id = $ilUser->getId();
                }
                else
                {
                        $user_id = 0;
                }

                $client_ip = getenv("REMOTE_ADDR");
                $script = substr($_SERVER["SCRIPT_FILENAME"], strlen(IL_ABSOLUTE_PATH) - 1,
                        strlen($_SERVER["SCRIPT_FILENAME"]) - strlen(IL_ABSOLUTE_PATH) + 1);
                $language = $ilUser->getLanguage();
                $session_id = session_id();

                #$last_access = ilTracking::_getLastAccess();

                if(ilTracking::_hasEntry($a_obj_id, $a_obj_type,$a_sub_id, $a_sub_type))
                {
                        return true;
                }
                $q = "INSERT INTO ut_access ("
                        ."user_id, action_type, php_script, client_ip,"
                        ."acc_obj_type, acc_obj_id, acc_sub_type, acc_sub_id,"
                        ."language, browser, session_id, acc_time"
                        .") VALUES ("
                        .$ilDB->quote($user_id).","
                        .$ilDB->quote($a_action_type).","
                        .$ilDB->quote($script).","
                        .$ilDB->quote($client_ip).","
                        .$ilDB->quote($a_obj_type).","
                        .$ilDB->quote($a_obj_id).","
                        .$ilDB->quote($a_sub_type).","
                        .$ilDB->quote($a_sub_id).","
                        .$ilDB->quote($language).","
                        .$ilDB->quote($_SERVER["HTTP_USER_AGENT"]).","
                        .$ilDB->quote($session_id).", now()"
                        .")";
           $ilDB->query($q);
                
                /*
                if(($session_id == $last_access["session_id"]) &&
                        ($a_obj_id == $last_access["acc_obj_id"]) &&
                        ($a_obj_type == $last_access["acc_obj_type"]) &&
                        ($a_sub_id == $last_access["acc_sub_id"]) &&
                        ($a_sub_type == $last_access["acc_sub_type"])
                        )
                {
                        return true;
                }
                else
                {
                        $q = "INSERT INTO ut_access ("
                                ."user_id, action_type, php_script, client_ip,"
                                ."acc_obj_type, acc_obj_id, acc_sub_type, acc_sub_id,"
                                ."language, browser, session_id, acc_time"
                                .") VALUES ("
                                .$ilDB->quote($user_id).","
                                .$ilDB->quote($a_action_type).","
                                .$ilDB->quote($script).","
                                .$ilDB->quote($client_ip).","
                                .$ilDB->quote($a_obj_type).","
                                .$ilDB->quote($a_obj_id).","
                                .$ilDB->quote($a_sub_type).","
                                .$ilDB->quote($a_sub_id).","
                                .$ilDB->quote($language).","
                                .$ilDB->quote($_SERVER["HTTP_USER_AGENT"]).","
                                .$ilDB->quote($session_id).", now()"
                                .")";
                   $ilDB->query($q);
                }
                */
        }

Here is the call graph for this function:

Here is the caller graph for this function:

ilTracking::addDay ( time  ) 

Definition at line 262 of file class.ilTracking.php.

        {
                $time = strtotime($time);
                $day = date("d",$time);
                $month = date("m",$time);
                $year = date("y",$time);
                $min = date("i",$time);
                $hour = date("h",$time);
                $sec = date("s",$time);
                $day = $day + 1;
                $ret = date ("Y-m-d", mktime($hour,$min,$sec,$month,$day,$year));
                return $ret;
        }

ilTracking::addHour ( time  ) 

Definition at line 249 of file class.ilTracking.php.

        {
                $time = strtotime($time);
                $day = date("d",$time);
                $month = date("m",$time);
                $year = date("Y",$time);
                $hour = date("H",$time);
                $min = date("i",$time);
                $sec = date("s",$time);
                $hour = $hour+1;
                $ret = date("H:i:s", mktime($hour,$min,$sec,$month,$day,$year));
                return $ret;
        }

ilTracking::countNum ( from,
from1,
condition 
)

Definition at line 377 of file class.ilTracking.php.

References $q, $res, and $result.

        {
                $q = "SELECT count(*) from ut_access "
                        ." WHERE (acc_time > '".$from
                        ."' AND acc_time <='".$from1."')"
                        ." AND ".$condition;
                        //echo $condition;echo "<br>";
//echo $q;
                $res = $this->ilias->db->query($q);
                $result = $res->fetchRow();
                return $result[0];
        }

ilTracking::countResults ( condition  ) 

Definition at line 312 of file class.ilTracking.php.

References $q, $res, and $result.

        {
                $q = "SELECT count(*) from ut_access "
                ." WHERE "
                .$condition;
                $res = $this->ilias->db->query($q);
                $result = $res->fetchRow();
                return $result[0];
        }

ilTracking::getPerTestId ( test  ) 

Definition at line 370 of file class.ilTracking.php.

References $q, $res, and $result.

        {
                $q = "select obj_id from object_data where type = 'tst' and title = '".$test."'";
                $res = $this->ilias->db->query($q);
                $result = $res->fetchRow();
                return $result[0];
        }

ilTracking::getSubId ( id  ) 

Definition at line 276 of file class.ilTracking.php.

References $id, $q, $res, and $result.

        {
                $q = "SELECT obj_id from object_data "
                ." WHERE type = 'lm' and "
                ." owner = ".$id;
                $res = $this->ilias->db->query($q);
                for($i=0;$i<$res->numRows();$i++)
                {
                        $result[$i]=$res->fetchRow();
                }
                return $result;
        }

ilTracking::getSubTest ( id  ) 

Definition at line 288 of file class.ilTracking.php.

References $id, $q, $res, and $result.

        {
                $q = "SELECT obj_id from object_data "
                ." WHERE type = 'tst' and "
                ." owner = ".$id;
                $res = $this->ilias->db->query($q);
                for($i=0;$i<$res->numRows();$i++)
                {
                        $result[$i]=$res->fetchRow();
                }
                return $result;
        }

ilTracking::getTest ( id  ) 

Definition at line 405 of file class.ilTracking.php.

References $id, $q, $res, and $result.

        {
                $q = "SELECT title from object_data "
                ." WHERE "
                ." type = 'tst' "
                ." and "
                ." owner = ".$id;
                $res = $this->ilias->db->query($q);
                for($i=0;$i<$res->numRows();$i++)
                {
                        $result[$i]=$res->fetchRow();
                }
                return $result;
        }

ilTracking::getTestId ( id  ) 

Definition at line 300 of file class.ilTracking.php.

References $id, $q, $res, and $result.

        {
                $q = "select obj_id from object_data "
                ." where type = 'tst' and "
                ." owner = ".$id;
                $res = $this->ilias->db->query($q);
                for ($i=0;$i<$res->numRows();$i++)
                {
                        $result[$i]=$res->fetchRow();
                }
                return $result;
        }

ilTracking::ilTracking (  ) 

Definition at line 54 of file class.ilTracking.php.

References $ilias, $lng, and $tpl.

        {
                global $ilias,$tpl,$lng,$ilDB;

                $this->ilias    =& $ilias;
                $this->tpl              =& $tpl;
                $this->lng              =& $lng;
                $this->db = $ilDB;

        }

ilTracking::numDay ( from,
to 
)

Definition at line 220 of file class.ilTracking.php.

        {
                $from = strtotime($from);
                $to = strtotime($to);
                $dayf = date ("d",$from);
                $dayt = date ("d",$to);
                $yearf = date ("Y",$from); 
                $yeart = date ("Y",$to); 
                $montht = date ("m",$to); 
                $monthf = date ("m",$from); 
                $ret = ( mktime(0,0,0,$montht,$dayt,$yeart) - mktime(0,0,0,$monthf,$dayf,$yearf))/(3600*24); 
                return $ret; 
        }

ilTracking::numHour ( from,
to 
)

Definition at line 233 of file class.ilTracking.php.

        {
                $from = strtotime($from);
                $to = strtotime($to);
                $dayf = date ("d",$from); 
                $dayt = date ("d",$to);
                $yearf = date ("Y",$from); 
                $yeart = date ("Y",$to); 
                $montht = date ("m",$to); 
                $monthf = date ("m",$from); 
                $hourt = date ("h",$to);
                $hourf = date ("h",$from);
                $ret = (mktime($hourt,0,0,$montht,$dayt,$yeart)-mktime($hourf,0,0,$monthf,$dayf,$yearf))/3600; 
                $ret = strftime($ret);
                return $ret; 
        }

ilTracking::searchResults ( condition  ) 

Definition at line 321 of file class.ilTracking.php.

References $q, $res, and $result.

        {
                $q = "SELECT a.login,b.acc_obj_type,b.language,b.client_ip,b.acc_time "
                        ." FROM usr_data as a,ut_access as b "
                        ." WHERE a.usr_id=b.user_id "
                        ." AND ".$condition;
//echo $q;
                $res = $this->ilias->db->query($q);
                for($i=0;$i<$res->numRows();$i++)
                {
                        $result[$i]=$res->fetchRow();
                }
                return $result;
        }

ilTracking::searchTestId ( condition  ) 

Definition at line 360 of file class.ilTracking.php.

References $q, $res, and $result.

        {
                $q = "select user_fi from tst_active where ".$condition;
                $res = $this->ilias->db->query($q);
                for($i=0;$i<$res->numRows();$i++)
                {
                        $result[$i]=$res->fetchRow();
                }
                return $result;
        }

ilTracking::searchTestResults ( condition  ) 

Definition at line 335 of file class.ilTracking.php.

References $q, $res, and $result.

        {
                $q = "SELECT a.login,b.acc_obj_type,b.client_ip,b.acc_time "
                        ." FROM usr_data as a,ut_access as b "
                        ." WHERE a.usr_id=b.user_id "
                        ." AND ".$condition;
//echo $q;
                $res = $this->ilias->db->query($q);
                for($i=0;$i<$res->numRows();$i++)
                {
                        $result[$i]=$res->fetchRow();
                }
                return $result;
        }

ilTracking::searchUserId ( condition  ) 

Definition at line 349 of file class.ilTracking.php.

References $q, $res, and $result.

        {
                $q = "SELECT user_id from ut_access where ".$condition;
//echo $q;
                $res = $this->ilias->db->query($q);
                for($i=0;$i<$res->numRows();$i++)
                {
                        $result[$i]=$res->fetchRow();
                }
                return $result;
        }

ilTracking::selectTime ( from,
to,
condition 
)

Definition at line 389 of file class.ilTracking.php.

References $q, $res, and $result.

        {
                $q = "SELECT acc_time from ut_access "
                        ." WHERE (acc_time >= '".$from
                        ."' AND acc_time <='".$to."')"
                        ." AND ".$condition;
//echo $q;
//echo "<br>";
                $res = $this->ilias->db->query($q);
                for($i=0;$i<$res->numRows();$i++)
                {
                        $result[$i]=$res->fetchRow();
                }
                return $result;
        }

ilTracking::TestTitle ( user_id  ) 

Definition at line 192 of file class.ilTracking.php.

References $q, $res, $result, and $user_id.

        {
                $q = " SELECT title from object_data "
                        ." WHERE type = 'tst'"
                        ." AND owner = ".$user_id;
                $res = $this->ilias->db->query($q);
                for($i=0;$i<$res->numRows();$i++)
                {
                        $result[$i]=$res->fetchRow();
                }
                return $result;
        }


Field Documentation

ilTracking::$acc_time

Definition at line 50 of file class.ilTracking.php.

ilTracking::$accObjId

Definition at line 44 of file class.ilTracking.php.

ilTracking::$accObjType

Definition at line 43 of file class.ilTracking.php.

ilTracking::$accSubId

Definition at line 46 of file class.ilTracking.php.

ilTracking::$accSubType

Definition at line 45 of file class.ilTracking.php.

ilTracking::$actionType

Definition at line 40 of file class.ilTracking.php.

ilTracking::$browser

Definition at line 48 of file class.ilTracking.php.

ilTracking::$clientIp

Definition at line 42 of file class.ilTracking.php.

ilTracking::$db

Definition at line 52 of file class.ilTracking.php.

ilTracking::$lanugage

Definition at line 47 of file class.ilTracking.php.

ilTracking::$objId

Definition at line 38 of file class.ilTracking.php.

ilTracking::$phpScript

Definition at line 41 of file class.ilTracking.php.

ilTracking::$sessionId

Definition at line 49 of file class.ilTracking.php.

ilTracking::$userId

Definition at line 39 of file class.ilTracking.php.


The documentation for this class was generated from the following file: