4 include_once(
"./Services/Tracking/classes/class.ilLPTableBaseGUI.php");
 
   20         function __construct($a_parent_obj, $a_parent_cmd, array $a_preselect = null, $a_load_items = 
true)
 
   24                 $this->preselected = $a_preselect;
 
   26                 $this->
setId(
"lpobjstattbl");
 
   35                 $this->
addColumn($lng->txt(
"trac_title"), 
"title");
 
   36                 $this->
addColumn($lng->txt(
"object_id"), 
"obj_id");
 
   37                 if(strpos($this->filter[
"yearmonth"], 
"-") === 
false)
 
   39                         foreach($this->
getMonthsYear($this->filter[
"yearmonth"]) as $num => $caption)
 
   41                                 $this->
addColumn($caption, 
"month_".$num, 
"", 
false, 
"ilRight");
 
   44                 $this->
addColumn($lng->txt(
"total"), 
"total", 
"", 
false, 
"ilRight");
 
   46                 $this->
setTitle($this->lng->txt(
"trac_object_stat_access"));
 
   49                 $this->
addMultiCommand(
"showAccessGraph", $lng->txt(
"trac_show_graph"));
 
   53                 $this->
setFormAction($ilCtrl->getFormAction($a_parent_obj, $a_parent_cmd));
 
   54                 $this->
setRowTemplate(
"tpl.lp_object_statistics_row.html", 
"Services/Tracking");
 
   71                 if($a_field != 
"title")
 
   88                 include_once(
"./Services/Form/classes/class.ilSelectInputGUI.php");
 
   92                 $si->readFromSession();
 
   97                 $this->filter[
"type"] = 
$si->getValue();
 
  100                 include_once(
"./Services/Form/classes/class.ilTextInputGUI.php");
 
  101                 $ti = 
new ilTextInputGUI($lng->txt(
"trac_title_description"), 
"query");
 
  105                 $ti->readFromSession();
 
  106                 $this->filter[
"query"] = $ti->getValue();
 
  110                 $si->setOptions(array(
"read_count"=>$lng->txt(
"trac_read_count"),
 
  111                         "spent_seconds"=>$lng->txt(
"trac_spent_seconds"),
 
  112                         "users"=>$lng->txt(
"users")));
 
  114                 $si->readFromSession();
 
  117                         $si->setValue(
"read_count");
 
  119                 $this->filter[
"measure"] = 
$si->getValue();
 
  125                 $si->readFromSession();
 
  128                         $si->setValue(date(
"Y-m"));
 
  130                 $this->filter[
"yearmonth"] = 
$si->getValue();
 
  140                         include_once 
"Services/Tracking/classes/class.ilTrQuery.php";
 
  142                         $yearmonth = explode(
"-", $this->filter[
"yearmonth"]);
 
  143                         if(
sizeof($yearmonth) == 1)
 
  147                                         $data[$obj_id][
"obj_id"] = $obj_id;
 
  150                                         foreach($months as $month => $values)
 
  152                                                 $idx = $yearmonth[0].
"-".str_pad($month, 2, 
"0", STR_PAD_LEFT);
 
  153                                                 $data[$obj_id][
"month_".$idx] = (int)$values[$this->filter[
"measure"]];
 
  154                                                 $data[$obj_id][
"total"] += (int)$values[$this->filter[
"measure"]];
 
  162                                         $data[$obj_id][
"obj_id"] = $obj_id;
 
  165                                         foreach($days as $day => $values)
 
  167                                                 $data[$obj_id][
"day_".$day] = (int)$values[$this->filter[
"measure"]];
 
  168                                                 $data[$obj_id][
"total"] += (int)$values[$this->filter[
"measure"]];
 
  174                         foreach(array_keys($objects) as $obj_id)
 
  176                                 if(!isset(
$data[$obj_id]))
 
  178                                         $data[$obj_id][
"obj_id"] = $obj_id;
 
  196                 $this->tpl->setVariable(
"OBJ_ID", $a_set[
"obj_id"]);
 
  198                 $this->tpl->setVariable(
"ICON_ALT", $this->lng->txt($type));
 
  199                 $this->tpl->setVariable(
"TITLE_TEXT", $a_set[
"title"]);
 
  201                 if($this->preselected && in_array($a_set[
"obj_id"], $this->preselected))
 
  203                         $this->tpl->setVariable(
"CHECKBOX_STATE", 
" checked=\"checked\"");
 
  207                 if(strpos($this->filter[
"yearmonth"], 
"-") === 
false)
 
  209                         $this->tpl->setCurrentBlock(
"month");
 
  210                         foreach(array_keys($this->
getMonthsYear($this->filter[
"yearmonth"])) as $num)
 
  212                                 $value = (int)$a_set[
"month_".$num];
 
  213                                 if($this->filter[
"measure"] != 
"spent_seconds")
 
  221                                 $this->tpl->setVariable(
"MONTH_VALUE", $value);
 
  222                                 $this->tpl->parseCurrentBlock();
 
  226                 if($this->filter[
"measure"] == 
"spent_seconds")
 
  234                 $this->tpl->setVariable(
"TOTAL", $sum);
 
  241                 include_once 
"Services/Chart/classes/class.ilChart.php";
 
  242                 $chart = 
new ilChart(
"objstacc", 700, 500);
 
  245                 $chart->setLegend($legend);
 
  248                 foreach($this->
getData() as $object)
 
  250                         if(in_array($object[
"obj_id"], $a_graph_items))
 
  255                                 if(strpos($this->filter[
"yearmonth"], 
"-") === 
false)
 
  257                                         foreach(array_keys($this->
getMonthsYear($this->filter[
"yearmonth"])) as $idx => $num)
 
  259                                                 $value = (int)$object[
"month_".$num];
 
  260                                                 $max_value = max($max_value, $value);
 
  261                                                 if($this->filter[
"measure"] != 
"spent_seconds")
 
  265                                                 $series->addPoint($idx, $value);
 
  270                                         for($loop = 1; $loop<32; $loop++)
 
  272                                                 $value = (int)$object[
"day_".$loop];
 
  273                                                 $max_value = max($max_value, $value);
 
  274                                                 if($this->filter[
"measure"] != 
"spent_seconds")
 
  278                                                 $series->addPoint($loop, $value);
 
  282                                 $chart->addData($series);
 
  286                 $value_ticks = $this->
buildValueScale($max_value, ($this->filter[
"measure"] != 
"spent_seconds"),
 
  287                         ($this->filter[
"measure"] == 
"spent_seconds"));
 
  290                 if(strpos($this->filter[
"yearmonth"], 
"-") === 
false)
 
  292                         foreach(array_values($this->
getMonthsYear($this->filter[
"yearmonth"], 
true)) as $idx => $caption)
 
  294                                 $labels[$idx] = $caption;
 
  299                         for($loop = 1; $loop<32; $loop++)
 
  301                                 $labels[$loop] = $loop.
".";
 
  304                 $chart->setTicks($labels, $value_ticks, 
true);
 
  306                 return $chart->getHTML();
 
  317                 $a_worksheet->write($a_row, 1, $a_set[
"obj_id"]);
 
  320                 if(strpos($this->filter[
"yearmonth"], 
"-") === 
false)
 
  322                         foreach(array_keys($this->
getMonthsYear($this->filter[
"yearmonth"])) as $num)
 
  324                                 $value = (int)$a_set[
"month_".$num];
 
  325                                 if($this->filter[
"measure"] != 
"spent_seconds")
 
  331                                 $a_worksheet->write($a_row, $col, $value);
 
  335                 if($this->filter[
"measure"] == 
"spent_seconds")
 
  339                         $sum = (int)$a_set[
"total"];
 
  346                 $a_worksheet->write($a_row, $col, $sum);
 
  357                 $a_csv->addColumn($a_set[
"obj_id"]);
 
  359                 if(strpos($this->filter[
"yearmonth"], 
"-") === 
false)
 
  361                         foreach(array_keys($this->
getMonthsYear($this->filter[
"yearmonth"])) as $num)
 
  363                                 $value = (int)$a_set[
"month_".$num];
 
  364                                 if($this->filter[
"measure"] != 
"spent_seconds")
 
  369                                 $a_csv->addColumn($value);
 
  373                 if($this->filter[
"measure"] == 
"spent_seconds")
 
  377                         $sum = (int)$a_set[
"total"];
 
  383                 $a_csv->addColumn($sum);