Public Member Functions | Data Fields

ilObjSysUserTrackingGUI Class Reference

Inheritance diagram for ilObjSysUserTrackingGUI:
Collaboration diagram for ilObjSysUserTrackingGUI:

Public Member Functions

 ilObjSysUserTrackingGUI ($a_data, $a_id, $a_call_by_reference)
 saveObject ()
 save object public
 settingsObject ()
 display tracking settings form
 saveSettingsObject ()
 save user tracking settings
 manageDataObject ()
 display tracking settings form
 confirmDeletionDataObject ()
 confirm delete tracking data
 cancelDeleteDataObject ()
 cancel deletion of tracking data
 deleteDataObject ()
 delete tracking data
 trackingDataQueryFormObject ()
 display tracking query form
 outputTrackingDataObject ()
 output tracking data
 getCondition ()
 get complete condition string
 getObjectCondition ()
 get object condition string
 getLanguageCondition ()
 get language condition string
 setConditions ($con)
 getConditions ()
 numDay ($from, $to)
 Return the nums of days between 'from' and 'to'.
 numHour ($from, $to)
 Return the nums of hours between 'from' and 'to'.
 addHour ($time)
 Add one hour to the 'time' and return it.
 addDay ($time)
 Add one day to the 'time' and return it.
 selectTime ($from, $to, $condition)
 Get the access time between 'from' to 'to' and under the 'condition'.
 countNum ($from, $from1, $condition)
 Get the access num between 'from' to 'from1' and under the 'condition'.

Data Fields

 $conditions
 Constructor public.

Detailed Description

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


Member Function Documentation

ilObjSysUserTrackingGUI::addDay ( time  ) 

Add one day to the 'time' and return it.

Definition at line 1120 of file class.ilObjSysUserTrackingGUI.php.

Referenced by outputTrackingDataObject().

        {
                $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;
        }

Here is the caller graph for this function:

ilObjSysUserTrackingGUI::addHour ( time  ) 

Add one hour to the 'time' and return it.

Definition at line 1103 of file class.ilObjSysUserTrackingGUI.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;
        }

ilObjSysUserTrackingGUI::cancelDeleteDataObject (  ) 

cancel deletion of tracking data

Definition at line 209 of file class.ilObjSysUserTrackingGUI.php.

References $_GET, ilUtil::redirect(), and sendInfo().

        {
                sendInfo($this->lng->txt("msg_cancel"),true);

                ilUtil::redirect("adm_object.php?ref_id=".$_GET["ref_id"]."&cmd=manageData");
        }

Here is the call graph for this function:

ilObjSysUserTrackingGUI::confirmDeletionDataObject (  ) 

confirm delete tracking data

Definition at line 179 of file class.ilObjSysUserTrackingGUI.php.

References $_GET, $_POST, ilObjectGUI::$lng, $rbacsystem, and ilObjectGUI::$tpl.

        {
                global $tpl, $lng, $rbacsystem;

                if (!$rbacsystem->checkAccess('delete',$this->object->getRefId()))
                {
                        $this->ilias->raiseError($this->lng->txt("msg_no_perm_delete_track"),$this->ilias->error_obj->WARNING);
                }

                if (!isset($_POST["month"]))
                {
                        $this->ilias->raiseError($this->lng->txt("no_checkbox"),$this->ilias->error_obj->MESSAGE);
                }
                $nr = $this->object->getTotalOlderThanMonth($_POST["month"]);
                $tpl->addBlockFile("ADM_CONTENT", "adm_content", "tpl.tracking_confirm_data_deletion.html");
                $tpl->setVariable("FORMACTION", "adm_object.php?ref_id=".$_GET["ref_id"].
                        "&cmd=gateway&month=".$_POST["month"]);
                $tpl->setVariable("TXT_CONFIRMATION", $this->lng->txt("tracking_data_del_confirm"));
                $tpl->setVariable("TXT_MONTH", $lng->txt("month"));
                $tpl->setVariable("VAL_MONTH", $_POST["month"]);
                $tpl->setVariable("TXT_NUMBER_OF_RECORDS", $lng->txt("number_of_records"));
                $tpl->setVariable("VAL_NUMBER_OF_RECORDS", $nr);
                $tpl->setVariable("TXT_NUMBER_OF_ACC", $lng->txt("number_of_accesses"));
                $tpl->setVariable("TXT_DELETE_DATA", $lng->txt("delete_tr_data"));
                $tpl->setVariable("TXT_CANCEL", $lng->txt("cancel"));
        }

ilObjSysUserTrackingGUI::countNum ( from,
from1,
condition 
)

Get the access num between 'from' to 'from1' and under the 'condition'.

Definition at line 1154 of file class.ilObjSysUserTrackingGUI.php.

References $q, $res, and $result.

Referenced by outputTrackingDataObject().

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

Here is the caller graph for this function:

ilObjSysUserTrackingGUI::deleteDataObject (  ) 

delete tracking data

Definition at line 219 of file class.ilObjSysUserTrackingGUI.php.

References $_GET, $rbacsystem, ilUtil::redirect(), and sendInfo().

        {
                global $rbacsystem;
                
                if (!$rbacsystem->checkAccess('read',$this->object->getRefId()))
                {
                        $this->ilias->raiseError($this->lng->txt("msg_no_perm_delete_track"),$this->ilias->error_obj->WARNING);
                }

                $this->object->deleteTrackingDataBeforeMonth($_GET["month"]);

                sendInfo($this->lng->txt("tracking_data_deleted"),true);
                ilUtil::redirect("adm_object.php?ref_id=".$_GET["ref_id"]."&cmd=manageData");
        }

Here is the call graph for this function:

ilObjSysUserTrackingGUI::getCondition (  ) 

get complete condition string

Definition at line 959 of file class.ilObjSysUserTrackingGUI.php.

References getLanguageCondition(), getObjectCondition(), and setConditions().

Referenced by outputTrackingDataObject().

        {
                $lang_cond = $this->getLanguageCondition();
                //echo ":$lang_cond:";
                if ($lang_cond == "")
                {
                        $this->setConditions($this->getObjectCondition());
                        return $this->getObjectCondition();
                }
                else
                {
                        $this->setConditions($lang_cond." AND ".$this->getObjectCondition());
                        return $lang_cond." AND ".$this->getObjectCondition();
                }
        }

Here is the call graph for this function:

Here is the caller graph for this function:

ilObjSysUserTrackingGUI::getConditions (  ) 

Definition at line 1058 of file class.ilObjSysUserTrackingGUI.php.

Referenced by outputTrackingDataObject().

        {
                return $this->conditions;
        }

Here is the caller graph for this function:

ilObjSysUserTrackingGUI::getLanguageCondition (  ) 

get language condition string

Definition at line 1043 of file class.ilObjSysUserTrackingGUI.php.

References $_POST.

Referenced by getCondition().

        {
                global $ilDB;

                if ($_POST["language"] != "0")
                {
                        return "ut_access.language =".$ilDB->quote($_POST["language"]);
                }

                return "";
        }       

Here is the caller graph for this function:

ilObjSysUserTrackingGUI::getObjectCondition (  ) 

get object condition string

Definition at line 979 of file class.ilObjSysUserTrackingGUI.php.

References $_POST, $author, $type, ilObjSysUserTracking::allAuthor(), and ilObjSysUserTracking::authorLms().

Referenced by getCondition().

        {
                global $ilDB;

                $type = $_POST["object_type"];
                $condition = "";
                if($_POST["object_type"]=="lm")
                {
                        if($_POST["author"]=="0")
                        {
                                return " acc_obj_type = 'lm'";
                        }
                        elseif($_POST["lm"]=="0" or $_POST["lm"]=="")
                        {
                                $authors = ilObjSysUserTracking::allAuthor("usr","lm");
                                foreach ($authors as $author)
                                {
                                        if($author["title"]==$_POST["author"])
                                        $lms = ilObjSysUserTracking::authorLms($author["obj_id"],"lm");
                                        foreach ($lms as $lm)
                                        {
                                                $condition = $condition." or acc_obj_id = ".$lm["obj_id"];
                                        }
                                }
                                return " ( 0 ".$condition." ) ";
                        }
                        else
                        {
                                $condition.= " acc_obj_id = ".ilObjSysUserTracking::getObjId($_POST["lm"],$type);
                                return $condition;
                        }

                }
                else
                {
                        if($_POST["author1"]=="0")
                        {
                                return " acc_obj_type = 'tst'";
                        }
                        elseif($_POST["tst"]=="0" or $_POST["tst"]=="")
                        {
                                $authors = ilObjSysUserTracking::allAuthor("usr","tst");
                                foreach ($authors as $author)
                                {
                                        if($author["title"]==$_POST["author1"])
                                        $lms = ilObjSysUserTracking::authorLms($author["obj_id"],"tst");
                                        foreach ($lms as $lm)
                                        {
                                                $condition = $condition." or acc_obj_id = ".$lm["obj_id"];
                                        }
                                }
                                return " ( 0 ".$condition." ) ";
                        }
                        else
                        {
                                $condition.= " acc_obj_id = ".ilObjSysUserTracking::getObjId($_POST["tst"],$type);
                                return $condition;
                        }
                }
        }

Here is the call graph for this function:

Here is the caller graph for this function:

ilObjSysUserTrackingGUI::ilObjSysUserTrackingGUI ( a_data,
a_id,
a_call_by_reference 
)

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

References $rbacsystem, and ilObjectGUI::ilObjectGUI().

        {
                global $rbacsystem;

                $this->type = "trac";
                $this->ilObjectGUI($a_data,$a_id,$a_call_by_reference);

                if (!$rbacsystem->checkAccess('read',$this->object->getRefId()))
                {
                        $this->ilias->raiseError($this->lng->txt("msg_no_perm_read_track"),$this->ilias->error_obj->WARNING);
                }

        }

Here is the call graph for this function:

ilObjSysUserTrackingGUI::manageDataObject (  ) 

display tracking settings form

Definition at line 151 of file class.ilObjSysUserTrackingGUI.php.

References $_GET, ilObjectGUI::$ilias, ilObjectGUI::$lng, and ilObjectGUI::$tpl.

        {
                global $tpl,$lng,$ilias;

                // tracking settings
                $tpl->addBlockFile("ADM_CONTENT", "adm_content", "tpl.tracking_manage_data.html");
                $tpl->setVariable("FORMACTION", "adm_object.php?ref_id=".$_GET["ref_id"].
                        "&cmd=gateway");
                $tpl->setVariable("TXT_TRACKING_DATA", $this->lng->txt("tracking_data"));
                $tpl->setVariable("TXT_MONTH", $lng->txt("month"));
                $tpl->setVariable("TXT_NUMBER_OF_ACC", $lng->txt("number_of_accesses"));
                $tpl->setVariable("TXT_DELETE_OLDER", $lng->txt("delete"));
                $overw = $this->object->getMonthTotalOverview();
                foreach($overw as $month)
                {
                        $tpl->setCurrentBlock("load_row");
                        $rcol = ($rcol != "tblrow1") ? "tblrow1" : "tblrow2";
                        $tpl->setVariable("ROWCOL", $rcol);
                        $tpl->setVariable("VAL_MONTH", $month["month"]);
                        $tpl->setVariable("VAL_NUMBER_OF_ACC", $month["cnt"]);
                        $tpl->parseCurrentBlock();
                }
                $tpl->parseCurrentBlock();
        }

ilObjSysUserTrackingGUI::numDay ( from,
to 
)

Return the nums of days between 'from' and 'to'.

Definition at line 1066 of file class.ilObjSysUserTrackingGUI.php.

Referenced by outputTrackingDataObject().

        {
                $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; 
        }

Here is the caller graph for this function:

ilObjSysUserTrackingGUI::numHour ( from,
to 
)

Return the nums of hours between 'from' and 'to'.

Definition at line 1083 of file class.ilObjSysUserTrackingGUI.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; 
        }

ilObjSysUserTrackingGUI::outputTrackingDataObject (  ) 

output tracking data

Definition at line 477 of file class.ilObjSysUserTrackingGUI.php.

References $_GET, $_POST, $_SESSION, $count, ilObjectGUI::$data, ilObjectGUI::$ilias, ilObjectGUI::$lng, $num, $obj, $tbl, ilObjectGUI::$tpl, $user, ilObject::_lookupTitle(), addDay(), countNum(), ilObjSysUserTracking::countResults(), getCondition(), getConditions(), numDay(), and selectTime().

        {
                global $tpl,$lng,$ilias;

                // save selected values in session
                $_SESSION["il_track_yearf"] = $_POST["yearf"];
                $_SESSION["il_track_yeart"] = $_POST["yeart"];
                $_SESSION["il_track_monthf"] = $_POST["monthf"];
                $_SESSION["il_track_montht"] = $_POST["montht"];
                $_SESSION["il_track_dayf"] = $_POST["dayf"];
                $_SESSION["il_track_dayt"] = $_POST["dayt"];
                $_SESSION["il_track_stat"] = $_POST["stat"];
                $_SESSION["il_track_language"] = $_POST["language"];
                $_SESSION["il_track_author"] = $_POST["author"];
                $_SESSION["il_track_author1"] = $_POST["author1"];
                $_SESSION["il_track_lm"] = $_POST["lm"];
                $_SESSION["il_track_tst"] = $_POST["tst"];
                $_SESSION["il_object_type"] = $_POST["object_type"];

                $yearf = $_POST["yearf"];
                $monthf = $_POST["monthf"];
                $dayf = $_POST["dayf"];
                $yeart = $_POST["yeart"];
                $montht= $_POST["montht"];
                $dayt = $_POST["dayt"];
                $from = $yearf."-".$monthf."-".$dayf;
                $to = $yeart."-".$montht."-".$dayt;

                if(($yearf > $yeart)or($yearf==$yeart and $monthf>$montht)or($yearf==$yeart and $monthf==$montht and $dayf>$dayt))
                {
                        $this->ilias->raiseError($lng->txt("msg_err_search_time"),
                                $this->ilias->error_obj->MESSAGE);
                }

                /*
                if($_POST["stat"]!='h' and $_POST["stat"]!='d')
                {
                        $this->ilias->raiseError($lng->txt("msg_no_search_time"),
                                $this->ilias->error_obj->MESSAGE);
                }*/

                $condition = $this->getCondition()." and acc_time >='".$from."' and acc_time< '".$to."'";
                if(count(ilObjSysUserTracking::countResults($condition))== 0)
                {
                        $this->ilias->raiseError($lng->txt("msg_no_search_result"),
                                $this->ilias->error_obj->MESSAGE);
                }

                include_once "./classes/class.ilTableGUI.php";
                $tbl = new ilTableGUI();
                $tpl->addBlockfile("ADM_CONTENT", "adm_content", "tpl.tracking_result.html");
                $tpl->addBlockFile("STATUSLINE", "statusline", "tpl.statusline.html");
                $tpl->addBlockfile("TRACK_TABLE", "track_table", "tpl.table.html");
                $tpl->addBlockfile("TBL_CONTENT", "tbl_content", "tpl.obj_tbl_rows.html");

                // user access statistic
                if($_POST["stat"] == "u")       // user access
                {
                        
                        if($_POST["mode"] == "user")
                        {
                                $tpl->setCurrentBlock("user_mode");
                                $tpl->setVariable("FORMACTION", "adm_object.php?ref_id=".$_GET["ref_id"].
                                "&cmd=gateway");
                                if($_POST["object_type"]=="lm")
                                {
                                        $tpl->setVariable("AUTHOR", "author");
                                        $tpl->setVariable("AUTHORS", $_POST["author"]);
                                        $tpl->setVariable("OBJECT", "lm");
                                        $tpl->setVariable("OBJECTS", $_POST["lm"]);
                                }
                                else
                                {
                                        $tpl->setVariable("AUTHOR", "author1");
                                        $tpl->setVariable("AUTHORS", $_POST["author1"]);
                                        $tpl->setVariable("OBJECT", "tst");
                                        $tpl->setVariable("OBJECTS", $_POST["tst"]);
                                }
                                $tpl->setVariable("YEARF",$_POST["yearf"]);
                                $tpl->setVariable("MONTHF",$_POST["monthf"]);
                                $tpl->setVariable("DAYF",$_POST["dayf"]);
                                $tpl->setVariable("YEART",$_POST["yeart"]);
                                $tpl->setVariable("MONTHT",$_POST["montht"]);
                                $tpl->setVariable("DAYT",$_POST["dayt"]);
                                $tpl->setVariable("LAN", $_POST["language"]);
                                $tpl->setVariable("TYPE", $_POST["object_type"]);
                                $tpl->setVariable("FROM", $from);
                                $tpl->setVariable("TO", $to);
                                $tpl->setVariable("TXT_SHOW_USER_DATA", $lng->txt("user_statistics"));
                                $tpl->parseCurrentBlock();
                                $title_new = array("user","client_ip","language","object","time");
                                $condition = $this->getConditions()." and acc_time>='".$from."' and acc_time<'".$to."'";
                                $user_acc = $this->object->getAccessPerUserDetail($condition);
                                $this->maxcount = count($user_acc);
                                if (count($user_acc) < 1)
                                {
                                        $this->ilias->raiseError($lng->txt("msg_no_search_result"),
                                                $this->ilias->error_obj->MESSAGE);
                                }

                                $tbl->setTitle($lng->txt("search_result"),0,0);
                                foreach ($title_new as $val)
                                {
                                        $header_names[] = $lng->txt($val);
                                }
                                $tbl->disable("sort");
                                $tbl->setHeaderNames($header_names);
                                //$tbl->setColumnWidth(array("15","75%","25%"));
                                $tbl->setMaxCount($this->maxcount);
                                $tbl->setStyle("table", "std");
                                $tbl->render();
                                $max = 0;

                                foreach ($user_acc as $user)
                                {
                                        $data[0] = $user["name"];
                                        $data[1] = $user["client_ip"];
                                        $data[2] = $user["language"];
                                        $data[3] = $user["acc_obj_id"];
                                        $data[4] = $user["acc_time"];
                                        $css_row = $i%2==0?"tblrow1":"tblrow2";
                                        foreach ($data as $key => $val)
                                        {
                                                if($val=="")
                                                {
                                                        $val=0;
                                                }
                                                $tpl->setCurrentBlock("text");
                                                $tpl->setVariable("TEXT_CONTENT", $val);
                                                $tpl->parseCurrentBlock();
                                                $tpl->setCurrentBlock("table_cell");
                                                $tpl->parseCurrentBlock();
                                        } //foreach
                                        $tpl->setCurrentBlock("tbl_content");
                                        $tpl->setVariable("CSS_ROW", $css_row);
                                        $tpl->parseCurrentBlock();
                                } //for
                        }
                        else
                        {
                                $tpl->setCurrentBlock("user_mode");
                                $tpl->setVariable("FORMACTION", "adm_object.php?ref_id=".$_GET["ref_id"].
                                "&cmd=gateway");
                                if($_POST["object_type"]=="lm")
                                {
                                        $tpl->setVariable("AUTHOR", "author");
                                        $tpl->setVariable("AUTHORS", $_POST["author"]);
                                        $tpl->setVariable("OBJECT", "lm");
                                        $tpl->setVariable("OBJECTS", $_POST["lm"]);
                                }
                                else
                                {
                                        $tpl->setVariable("AUTHOR", "author1");
                                        $tpl->setVariable("AUTHORS", $_POST["author1"]);
                                        $tpl->setVariable("OBJECT", "tst");
                                        $tpl->setVariable("OBJECTS", $_POST["tst"]);
                                }
                                $tpl->setVariable("YEARF",$_POST["yearf"]);
                                $tpl->setVariable("MONTHF",$_POST["monthf"]);
                                $tpl->setVariable("DAYF",$_POST["dayf"]);
                                $tpl->setVariable("YEART",$_POST["yeart"]);
                                $tpl->setVariable("MONTHT",$_POST["montht"]);
                                $tpl->setVariable("DAYT",$_POST["dayt"]);
                                $tpl->setVariable("USER", "user");
                                $tpl->setVariable("LAN", $_POST["language"]);
                                $tpl->setVariable("TYPE", $_POST["object_type"]);
                                $tpl->setVariable("FROM", $from);
                                $tpl->setVariable("TO", $to);
                                $tpl->setVariable("TXT_SHOW_USER_DATA", $lng->txt("user_detail"));
                                $tpl->parseCurrentBlock();
                                $title_new = array("user", "count", "");

                                $user_acc = $this->object->getAccessTotalPerUser($condition);

                                $this->maxcount = count($user_acc);

                                // check if result is given
                                if ($this->maxcount < 1)
                                {
                                        $this->ilias->raiseError($lng->txt("msg_no_search_result"),
                                                $this->ilias->error_obj->MESSAGE);
                                }

                                $tbl->setTitle($lng->txt("search_result"),0,0);
                                foreach ($title_new as $val)
                                {
                                        $header_names[] = $lng->txt($val);
                                }
                                $tbl->disable("sort");
                                $tbl->setHeaderNames($header_names);
                                //$tbl->setColumnWidth(array("15","75%","25%"));
                                $tbl->setMaxCount($this->maxcount);
                                $tbl->setStyle("table", "std");
                                $tbl->render();
                                $max = 0;
                                foreach ($user_acc as $user)
                                {
                                        $max = ($max > $user["cnt"]) ? $max : $user["cnt"];
                                }

                                foreach ($user_acc as $user)
                                {
                                        $data[0] = $user["name"];
                                        $data[1] = $user["cnt"];
                                        $width = ($max > 0)
                                                ? round($data[1] / $max * 100)
                                                : 0;
                                        $data[2] = "<img src=\"".ilUtil::getImagePath("ray.gif")."\" border=\"0\" ".
                                                "width=\"".$width."\" height=\"10\"/>";

                                        $css_row = $i%2==0?"tblrow1":"tblrow2";
                                        foreach ($data as $key => $val)
                                        {
                                                if($val=="")
                                                {
                                                        $val=0;
                                                }
                                                $tpl->setCurrentBlock("text");
                                                $tpl->setVariable("TEXT_CONTENT", $val);
                                                $tpl->parseCurrentBlock();
                                                $tpl->setCurrentBlock("table_cell");
                                                $tpl->parseCurrentBlock();
                                        } //foreach
                                        $tpl->setCurrentBlock("tbl_content");
                                        $tpl->setVariable("CSS_ROW", $css_row);
                                        $tpl->parseCurrentBlock();
                                } //for
                        }

                }
                elseif($_POST["stat"] == "o") //Object Access
                {
                        if(($_POST["object_type"]=="lm" and $_POST["author"] =="0") or ($_POST["object_type"]=="tst" and $_POST["author1"]=="0"))
                        {
                                $title_new = array("author", "subject", "count","");    
                        }
                        else
                        {
                                $title_new = array("subject", "count","");
                        }
                        $acc_object = $this->object->getAccessTotalPerObj($condition);
                        
                        $this->maxcount = count($acc_object);
                        if ($this->maxcount < 1)
                        {
                                $this->ilias->raiseError($lng->txt("msg_no_search_result"),
                                        $this->ilias->error_obj->MESSAGE);
                        }

                        $tbl->setTitle($lng->txt("search_result"),0,0);
                        
                        include_once "./classes/class.ilTableGUI.php";
                        $tbl = new ilTableGUI();
                        $tbl->setTitle($lng->txt("obj_trac"),0,0);
                        foreach ($title_new as $val)
                        {
                                $header_names[] = $lng->txt($val);
                        }
                        $tbl->disable("sort");
                        $tbl->setHeaderNames($header_names);
                        $tbl->setMaxCount($this->maxcount);
                        $tbl->setStyle("table", "std");
                        $tbl->render();
                        $max = 0;
                        foreach ($acc_object as $obj)
                        {
                                $max = ($max > $obj["cnt"]) ? $max : $obj["cnt"];
                        }

                        foreach ($acc_object as $obj)
                        {
                                if(($_POST["object_type"]=="lm" and $_POST["author"]=="0") or ($_POST["object_type"]=="tst" and $_POST["author1"]=="0"))
                                {
                                        $data[0] = $obj["author"];
                                        $data[1] = $obj["title"];
                                        $data[2] = $obj["cnt"];
                                        $width = ($max > 0)
                                                ? round($data[2] / $max * 100)
                                                : 0;
                                        $data[3] = "<img src=\"".ilUtil::getImagePath("ray.gif")."\" border=\"0\" ".
                                                "width=\"".$width."\" height=\"10\"/>";
                                }
                                else
                                {
                                        $data[0] = $obj["title"];
                                        $data[1] = $obj["cnt"];
                                        $width = ($max > 0)
                                                ? round($data[1] / $max * 100)
                                                : 0;
                                        $data[2] = "<img src=\"".ilUtil::getImagePath("ray.gif")."\" border=\"0\" ".
                                                "width=\"".$width."\" height=\"10\"/>";
                                }
                                $css_row = $i%2==0?"tblrow1":"tblrow2";
                                foreach ($data as $key => $val)
                                {
                                        if($val=="")
                                        {
                                                $val=0;
                                        }
                                        $tpl->setCurrentBlock("text");
                                        $tpl->setVariable("TEXT_CONTENT", $val);
                                        $tpl->parseCurrentBlock();
                                        $tpl->setCurrentBlock("table_cell");
                                        $tpl->parseCurrentBlock();
                                } //foreach
                                $tpl->setCurrentBlock("tbl_content");
                                $tpl->setVariable("CSS_ROW", $css_row);
                                $tpl->parseCurrentBlock();
                        } //for
        
                }
                else //user not selected
                {
                        $title_new = array("time", "count", "");

                        include_once "./classes/class.ilTableGUI.php";
                        $tbl = new ilTableGUI();
                        $tbl->setTitle($lng->txt("obj_trac"),0,0);
                        foreach ($title_new as $val)
                        {
                                $header_names[] = $lng->txt($val);
                        }
                        $tbl->disable("sort");
                        $tbl->setHeaderNames($header_names);

                        if($_POST["stat"]=='h')
                        {
                                $num = 24;
                                $tbl->setMaxCount($num);
                        }
                        else
                        {
                                $num = $this->numDay($from,$to);
                                $from1 = $this->addDay($from);
                                $tbl->setMaxCount($num);
                        }
                        $tbl->setStyle("table", "std");
                        $tbl->render();

                        // contition
                        $condition = $this->getCondition();

                        if($_POST["stat"]=='h')         //hours of day
                        {
                                $time = $this->selectTime($from,$to,$condition);
                                $max = 0;
                                for($i=0;$i<24;$i++)
                                {
                                        $k = $i+1;

                                        // count number of accesses in hour $i
                                        $cou = 0;
                                        for($j=0;$j<count($time);$j++)
                                        {
                                                $time1 = strtotime($time[$j][0]);
                                                $day = date("d",$time1);
                                                $month = date("m",$time1);
                                                $year = date("Y",$time1);
                                                $hour = date("H",$time1);
                                                $min = date("i",$time1);
                                                $sec = date("s",$time1);
                                                $numb = date("H",mktime($hour,$min,$sec,$month,$day,$year));
                                                $numb = intval($numb);
                                                if($numb >=$i and $numb <$k)
                                                {
                                                        $cou=$cou+1;
                                                }
                                        }
                                        $count[$i] = $cou;
                                        $max = ($cou > $max) ? $cou : $max;
                                }

                                for($i=0;$i<24;$i++)
                                {
                                        $k = $i+1;
                                        $data[0] = $i.":00:00  ~  ".$k.":00:00";
                                        $data[1] = $count[$i];
                                        $width = ($max > 0)
                                                ? round($count[$i] / $max * 100)
                                                : 0;
                                        $data[2] = "<img src=\"".ilUtil::getImagePath("ray.gif")."\" border=\"0\" ".
                                                "width=\"".$width."\" height=\"10\"/>";
                                        $css_row = $i%2==0?"tblrow1":"tblrow2";
                                        foreach ($data as $key => $val)
                                        {

                                                $tpl->setCurrentBlock("text");
                                                $tpl->setVariable("TEXT_CONTENT", $val);
                                                $tpl->parseCurrentBlock();
                                                $tpl->setCurrentBlock("table_cell");
                                                $tpl->parseCurrentBlock();
                                        }
                                        $tpl->setCurrentBlock("tbl_content");
                                        $tpl->setVariable("CSS_ROW", $css_row);
                                        $tpl->parseCurrentBlock();

                                } //for
                        }
                        else //day selected
                        {
                                $max = 0;
                                for($i=0;$i<$num;$i++)
                                {
                                        $fro[$i] = $from;
                                        $cou[$i] = $this->countNum($from,$from1,$condition);
                                        $from = $from1;
                                        $from1 = $this->addDay($from);
                                        $max = ($max > $cou[$i]) ? $max : $cou[$i];
                                }
                                for($i=0;$i<$num;$i++)
                                {
                                        $data[0] = $fro[$i];
                                        $data[1] = $cou[$i];
                                        $width = ($max > 0)
                                                ? round($cou[$i] / $max * 100)
                                                : 0;
                                        $data[2] = "<img src=\"".ilUtil::getImagePath("ray.gif")."\" border=\"0\" ".
                                                "width=\"".$width."\" height=\"10\"/>";

                                        $css_row = $i%2==0?"tblrow1":"tblrow2";

                                        foreach ($data as $key => $val)
                                        {
                                                $tpl->setCurrentBlock("text");
                                                $tpl->setVariable("TEXT_CONTENT", $val);
                                                $tpl->parseCurrentBlock();
                                                $tpl->setCurrentBlock("table_cell");
                                                $tpl->parseCurrentBlock();
                                        }
                                        $tpl->setCurrentBlock("tbl_content");
                                        $tpl->setVariable("CSS_ROW", $css_row);
                                        $tpl->parseCurrentBlock();
                                } //for
                        }
                }//else
                $tpl->setCurrentBlock("adm_content");

                // output statistic settings
                $tpl->setVariable("TXT_TIME_PERIOD", $lng->txt("time_segment"));
                switch ($_POST["stat"])
                {
                        case "h":
                                $tpl->setVariable("TXT_STATISTIC", $lng->txt("hours_of_day"));
                                break;

                        case "u":
                                $tpl->setVariable("TXT_STATISTIC", $lng->txt("user_access"));
                                break;

                        case "d":
                                $tpl->setVariable("TXT_STATISTIC", $lng->txt("days_of_period"));
                                break;
                }
                $tpl->setVariable("VAL_DATEF", date("Y-m-d", mktime(0,0,0,$monthf,$dayf,$yearf)));
                $tpl->setVariable("TXT_TO", $lng->txt("to"));
                $tpl->setVariable("VAL_DATET", date("Y-m-d", mktime(0,0,0,$montht,$dayt,$yeart)));
                $tpl->setVariable("TXT_USER_LANGUAGE", $lng->txt("user_language"));
                if ($_POST["language"] == "0")
                {
                        $tpl->setVariable("VAL_LANGUAGE", $lng->txt("any_language"));
                }
                else
                {
                        $tpl->setVariable("VAL_LANGUAGE", $lng->txt("lang_".$_POST["language"]));
                }
                $tpl->setVariable("TXT_TRACKED_OBJECTS", $lng->txt("tracked_objects"));
                if ($_POST[$_POST["object_type"]] != 0)
                {
                        $tpl->setVariable("VAL_TRACKED_OBJECTS",
                                ilObject::_lookupTitle($_POST[$_POST["object_type"]]));
                }
                else
                {
                        $tpl->setVariable("VAL_TRACKED_OBJECTS",
                                $lng->txt("all_".$_POST["object_type"]."s"));
                }
                $tpl->parseCurrentBlock();
        }

Here is the call graph for this function:

ilObjSysUserTrackingGUI::saveObject (  ) 

save object public

Reimplemented from ilObjectGUI.

Definition at line 64 of file class.ilObjSysUserTrackingGUI.php.

References $rbacadmin, exit, ilObjectGUI::getReturnLocation(), and sendInfo().

        {
                global $rbacadmin;

                // create and insert forum in objecttree
                $newObj = parent::saveObject();

                // setup rolefolder & default local roles
                //$roles = $newObj->initDefaultRoles();

                // ...finally assign role to creator of object
                //$rbacadmin->assignUser($roles[0], $newObj->getOwner(), "y");

                // put here object specific stuff

                // always send a message
                sendInfo($this->lng->txt("object_added"),true);

                header("Location:".$this->getReturnLocation("save","adm_object.php?".$this->link_params));
                exit();
        }

Here is the call graph for this function:

ilObjSysUserTrackingGUI::saveSettingsObject (  ) 

save user tracking settings

Definition at line 122 of file class.ilObjSysUserTrackingGUI.php.

References $_GET, $_POST, and ilUtil::redirect().

        {
                // (de)activate tracking
                if ($_POST["act_track"] == "y")
                {
                        $this->object->enableTracking(true);
                }
                else
                {
                        $this->object->enableTracking(false);
                }

                // (de)activate tracking of user related data
                if ($_POST["user_related"] == "y")
                {
                        $this->object->enableUserRelatedData(true);
                }
                else
                {
                        $this->object->enableUserRelatedData(false);
                }

                sendinfo($this->lng->txt("msg_obj_modified"), true);
                ilUtil::redirect("adm_object.php?ref_id=".$_GET["ref_id"]."&cmd=settings");
        }

Here is the call graph for this function:

ilObjSysUserTrackingGUI::selectTime ( from,
to,
condition 
)

Get the access time between 'from' to 'to' and under the 'condition'.

Definition at line 1137 of file class.ilObjSysUserTrackingGUI.php.

References $q, $res, and $result.

Referenced by outputTrackingDataObject().

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

Here is the caller graph for this function:

ilObjSysUserTrackingGUI::setConditions ( con  ) 

Definition at line 1054 of file class.ilObjSysUserTrackingGUI.php.

Referenced by getCondition().

        {
                $this->conditions = $con;
        }

Here is the caller graph for this function:

ilObjSysUserTrackingGUI::settingsObject (  ) 

display tracking settings form

Definition at line 90 of file class.ilObjSysUserTrackingGUI.php.

References $_GET, ilObjectGUI::$ilias, ilObjectGUI::$lng, and ilObjectGUI::$tpl.

        {
                global $tpl,$lng,$ilias;

                // tracking settings
                $tpl->addBlockFile("ADM_CONTENT", "adm_content", "tpl.tracking_settings.html");
                $tpl->setVariable("FORMACTION", "adm_object.php?ref_id=".$_GET["ref_id"].
                        "&cmd=gateway");
                $tpl->setVariable("TXT_TRACKING_SETTINGS", $this->lng->txt("tracking_settings"));
                $tpl->setVariable("TXT_ACTIVATE_TRACKING", $this->lng->txt("activate_tracking"));
                $tpl->setVariable("TXT_USER_RELATED_DATA", $this->lng->txt("save_user_related_data"));
                $tpl->setVariable("TXT_NUMBER_RECORDS", $this->lng->txt("number_of_records"));
                $tpl->setVariable("NUMBER_RECORDS", $this->object->getRecordsTotal());
                $tpl->setVariable("TXT_SAVE", $this->lng->txt("save"));

                if($this->object->_enabledTracking())
                {
                        $this->tpl->setVariable("ACT_TRACK_CHECKED", " checked=\"1\" ");
                }

                if($this->object->_enabledUserRelatedData())
                {
                        $this->tpl->setVariable("USER_RELATED_CHECKED", " checked=\"1\" ");
                }

                $tpl->parseCurrentBlock();

        }

ilObjSysUserTrackingGUI::trackingDataQueryFormObject (  ) 

display tracking query form

Definition at line 237 of file class.ilObjSysUserTrackingGUI.php.

References $_GET, $_SESSION, $author, ilObjectGUI::$ilias, $languages, ilObjectGUI::$lng, ilObjectGUI::$tpl, $type, ilObjSysUserTracking::_enabledUserRelatedData(), ilObject::_getObjectsDataForType(), ilObjSysUserTracking::allAuthor(), ilObjSysUserTracking::authorLms(), and ilObjSysUserTracking::getTestId().

        {
                global $tpl,$lng,$ilias;
                $year = array(2004,2005,2006,2007);
                $month = array(1,2,3,4,5,6,7,8,9,10,11,12);
                $day = array(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31);
                //subject module
                $tpl->addBlockFile("ADM_CONTENT", "adm_content", "tpl.usr_tracking.html");

                if (ilObjSysUserTracking::_enabledUserRelatedData())
                {
                        $tpl->setCurrentBlock("user_stat");
                        $tpl->setVariable("TXT_STATISTIC_U", $lng->txt("user_access"));
                        if ($_SESSION["il_track_stat"] == "u")
                        {
                                $tpl->setVariable("U_CHK", " checked=\"1\" ");
                        }
                        $tpl->parseCurrentBlock();
                }

                //$tpl->addBlockFile("STATUSLINE", "statusline", "tpl.statusline.html");
                $tpl->setVariable("SEARCH_ACTION", "adm_object.php?ref_id=".$_GET["ref_id"].
                        "&cmd=gateway");
                $tpl->setVariable("TXT_TRACKING_DATA", $lng->txt("tracking_data"));
                $tpl->setVariable("TXT_TIME_SEGMENT", $lng->txt("time_segment"));
                $tpl->setVariable("TXT_STATISTIC", $lng->txt("statistic"));
                $tpl->setVariable("TXT_STATISTIC_H", $lng->txt("hours_of_day"));
                $tpl->setVariable("TXT_STATISTIC_D", $lng->txt("days_of_period"));
                $tpl->setVariable("TXT_STATISTIC_O", $lng->txt("per_object"));
                $tpl->setVariable("TXT_USER_LANGUAGE",$lng->txt("user_language"));
                $tpl->setVariable("TXT_LM",$lng->txt("lm"));
                $tpl->setVariable("TXT_SHOW_TR_DATA",$lng->txt("query_data"));
                $tpl->setVariable("TXT_TRACKED_OBJECTS",$lng->txt("tracked_objects"));

                $languages = $lng->getInstalledLanguages();

                // get all learning modules
                // $lms = ilObject::_getObjectsDataForType("lm", true);
                $authors = ilObjSysUserTracking::allAuthor("usr","lm");
                if(count($authors)>0)
                {
                        $tpl->setCurrentBlock("javascript");
                        $tpl->setVariable("ALL_LMS", $this->lng->txt("all_lms"));
                        foreach ($authors as $author)
                        {
                                $lms = ilObjSysUserTracking::authorLms($author["obj_id"],"lm");
                                //echo count($lms);
                                foreach ($lms as $lm)
                                {
                                        $tpl->setCurrentBlock("select_value");
                                        $tpl->setVariable("VALUE", $author["title"]);
                                        $tpl->setVariable("LMVALUE", $lm["title"]);
                                        $tpl->parseCurrentBlock();
                                }
                        
                        }
                        $tpl->parseCurrentBlock();
                }
                $authors1 = ilObjSysUserTracking::allAuthor("usr","tst");
                if(count($authors1)>0)
                {
                        $tpl->setCurrentBlock("javascript1");
                        $tpl->setVariable("ALL_TSTS", $this->lng->txt("all_tsts"));
                        foreach ($authors1 as $author1)
                        {
                                $tsts = ilObjSysUserTracking::authorLms($author1["obj_id"],"tst");
                                foreach ($tsts as $tst)
                                {
                                        $tpl->setCurrentBlock("select_value1");
                                        $tpl->setVariable("VALUE1", $author1["title"]);
                                        $tpl->setVariable("TSTVALUE", $tst["title"]);
                                        $tpl->parseCurrentBlock();
                                }
                        }
                        $tpl->parseCurrentBlock();
                }
                foreach($year as $key)
                {
                        $tpl->setCurrentBlock("fromyear_selection");
                        $tpl->setVariable("YEARFR", $key);
                        $tpl->setVariable("YEARF", $key);
                        if ($_SESSION["il_track_yearf"] == $key)
                        {
                                $tpl->setVariable("YEARF_SEL", " selected=\"1\" ");
                        }
                        $tpl->parseCurrentBlock();
                }
                foreach($month as $key)
                {
                        $tpl->setCurrentBlock("frommonth_selection");
                        $tpl->setVariable("MONTHFR", $key);
                        $tpl->setVariable("MONTHF", $key);
                        if ($_SESSION["il_track_monthf"] == $key)
                        {
                                $tpl->setVariable("MONTHF_SEL", " selected=\"1\" ");
                        }
                        $tpl->parseCurrentBlock();
                }
                foreach($day as $key)
                {
                        $tpl->setCurrentBlock("fromday_selection");
                        $tpl->setVariable("DAYFR", $key);
                        $tpl->setVariable("DAYF", $key);
                        if ($_SESSION["il_track_dayf"] == $key)
                        {
                                $tpl->setVariable("DAYF_SEL", " selected=\"1\" ");
                        }
                        $tpl->parseCurrentBlock();
                }
                foreach($day as $key)
                {
                        $tpl->setCurrentBlock("today_selection");
                        $tpl->setVariable("DAYTO", $key);
                        $tpl->setVariable("DAYT", $key);
                        if ($_SESSION["il_track_dayt"] == $key)
                        {
                                $tpl->setVariable("DAYT_SEL", " selected=\"1\" ");
                        }
                        $tpl->parseCurrentBlock();
                }
                foreach($month as $key)
                {
                        $tpl->setCurrentBlock("tomonth_selection");
                        $tpl->setVariable("MONTHTO", $key);
                        $tpl->setVariable("MONTHT", $key);
                        if ($_SESSION["il_track_montht"] == $key)
                        {
                                $tpl->setVariable("MONTHT_SEL", " selected=\"1\" ");
                        }
                        $tpl->parseCurrentBlock();
                }
                foreach($year as $key)
                {
                        $tpl->setCurrentBlock("toyear_selection");
                        $tpl->setVariable("YEARTO", $key);
                        $tpl->setVariable("YEART", $key);
                        if ($_SESSION["il_track_yeart"] == $key)
                        {
                                $tpl->setVariable("YEART_SEL", " selected=\"1\" ");
                        }
                        $tpl->parseCurrentBlock();
                }
                // language selection
                $tpl->setCurrentBlock("language_selection");
                $tpl->setVariable("LANG", $lng->txt("any_language"));
                $tpl->setVariable("LANGSHORT", "0");
                $tpl->parseCurrentBlock();
                foreach ($languages as $lang_key)
                {
                        $tpl->setCurrentBlock("language_selection");
                        $tpl->setVariable("LANG", $lng->txt("lang_".$lang_key));
                        $tpl->setVariable("LANGSHORT", $lang_key);
                        if ($_SESSION["il_track_language"] == $lang_key)
                        {
                                $tpl->setVariable("LANG_SEL", " selected=\"1\" ");
                        }
                        $tpl->parseCurrentBlock();
                }

                // statistic type
                if ($_SESSION["il_track_stat"] == "d")
                {
                        $tpl->setVariable("D_CHK", " checked=\"1\" ");
                }
                elseif ($_SESSION["il_track_stat"] == "h")
                {
                        $tpl->setVariable("H_CHK", " checked=\"1\" ");
                }
                elseif($_SESSION["il_track_stat"] == "o")
                {
                        $tpl->setVariable("O_CHK", " checked=\"1\" ");
                }
                
                // tracked object type
                if ($_SESSION["il_object_type"] == "tst")
                {
                        $tpl->setVariable("TST_CHK", " checked=\"1\" ");
                }
                else
                {
                        $tpl->setVariable("LM_CHK", " checked=\"1\" ");
                }

                // author selection
                $tpl->setCurrentBlock("author_selection");
                $tpl->setVariable("AUTHOR", 0);
                $tpl->setVariable("AUTHOR_SELECT", $this->lng->txt("all_authors"));
                $tpl->parseCurrentBlock();
                foreach ($authors as $author)
                {
                        $tpl->setCurrentBlock("author_selection");
                        $tpl->setVariable("AUTHOR", $author["title"]);
                        $tpl->setVariable("AUTHOR_SELECT", $author["title"]);
                        if ($_SESSION["il_track_author"] == $author["title"])
                        {
                                $tpl->setVariable("AUTHOR_SEL", " selected=\"1\" ");
                        }
                        $tpl->parseCurrentBlock();
                }
                $tpl->setCurrentBlock("author_selection_tst");
                $tpl->setVariable("AUTHOR1", 0);
                $tpl->setVariable("AUTHOR1_SELECT", $this->lng->txt("all_authors"));
                $tpl->parseCurrentBlock();
                foreach ($authors1 as $author1)
                {
                        $tpl->setCurrentBlock("author_selection_tst");
                        $tpl->setVariable("AUTHOR1", $author1["title"]);
                        $tpl->setVariable("AUTHOR1_SELECT", $author1["title"]);
                        if ($_SESSION["il_track_author1"] == $author1["title"])
                        {
                                $tpl->setVariable("AUTHOR1_SEL", " selected=\"1\" ");
                        }
                        $tpl->parseCurrentBlock();
                }
                //test module
                
                $result_test = ilObjSysUserTracking::getTestId($_SESSION["AccountId"]);

                $tpl->setVariable("TXT_TEST",$lng->txt("test"));

                //$test = $tracking->TestTitle($_SESSION["AccountId"]);

                $tsts = ilObject::_getObjectsDataForType($type, true);
                $tpl->setCurrentBlock("test_selection");
                $tpl->setVariable("TEST", 0);
                $tpl->setVariable("TEST_SELECT", $this->lng->txt("all_tsts"));
                $tpl->parseCurrentBlock();
                foreach($tsts as $tst)
                {
                        $tpl->setCurrentBlock("test_selection");
                        $tpl->setVariable("TEST", $tst["id"]);
                        $tpl->setVariable("TEST_SELECT", $tst["title"]." [".$tst["id"]."]");
                        $tpl->parseCurrentBlock();
                }

        }

Here is the call graph for this function:


Field Documentation

ilObjSysUserTrackingGUI::$conditions

Constructor public.

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


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