ILIAS  release_5-2 Revision v5.2.25-18-g3f80b828510
class.ilSCORM2004TrackingItemsTableGUI.php
Go to the documentation of this file.
1<?php
2/* Copyright (c) 1998-2013 ILIAS open source, Extended GPL, see docs/LICENSE */
3
4include_once './Services/Table/classes/class.ilTable2GUI.php';
5include_once './Modules/Scorm2004/classes/class.ilSCORM2004TrackingItems.php';
6
14{
15 private $obj_id = 0;
16 private $user_id = 0;
17 private $bySCO = false;
18 private $scosSelected = array();
19 private $userSelected = array();
20 private $allowExportPrivacy = false;
21 private $scoTite = "";
22
26 public function __construct($a_obj_id, $a_parent_obj, $a_parent_cmd, $a_userSelected, $a_scosSelected, $a_report)
27 {
28
29 global $ilCtrl, $lng, $ilAccess, $lng, $rbacsystem;
30 $lng->loadLanguageModule("scormtrac");
31
32 $this->obj_id = $a_obj_id;
33 $this->report = $a_report;
34 $this->scosSelected=$a_scosSelected;
35 $this->userSelected=$a_userSelected;
36 if ($a_parent_cmd == "showTrackingItemsBySco") $this->bySCO = true;
37 $this->lmTitle = $a_parent_obj->object->getTitle();
38
39 $this->setId('2004'.$this->report);
40 parent::__construct($a_parent_obj, $a_parent_cmd);
41 $this->setLimit(9999);
42
43 include_once('./Services/PrivacySecurity/classes/class.ilPrivacySettings.php');
45 $this->allowExportPrivacy = $privacy->enabledExportSCORM();
46
47
48 // if($a_print_view)
49 // {
50 // $this->setPrintMode(true);
51 // }
52
53
54 foreach ($this->getSelectedColumns() as $c)
55 {
56 $l = $c;
57 if (in_array($l, array("status", "time", "score"))) {
58 $l = "cont_".$l;
59 // } else {
60 // $l =
61 }
62 $s = $this->lng->txt($l);
63 if (substr($l,0,14) == "interaction_id") $s = $this->lng->txt(substr($l,0,14)).' '.substr($l,14);
64 if (substr($l,0,17) == "interaction_value") $s = sprintf($this->lng->txt(substr($l,0,17)),substr($l,17,(strpos($l,' ')-17))).substr($l,strpos($l,' '));
65 if (substr($l,0,23) == "interaction_description") $s = $this->lng->txt(substr($l,0,23)).' '.substr($l,23);
66 $this->addColumn($s, $c);
67 }
68
69 $this->setRowTemplate('tpl.scorm2004_tracking_items.html', 'Modules/Scorm2004');
70 $this->setFormAction($ilCtrl->getFormAction($this->getParentObject()));
71
72 $this->setExternalSorting(true);
73// $this->setExternalSegmentation(true);
74 $this->setEnableHeader(true);
75 $this->setEnableTitle(true);
76// $this->setDefaultOrderField("cp_node_id, user_id");
77 $this->setDefaultOrderField("");
78 $this->setDefaultOrderDirection("asc");
79 $this->setShowTemplates(true);
80
81 $this->setExportFormats(array(self::EXPORT_CSV, self::EXPORT_EXCEL));
82// $this->initFilter();
83 $this->getItems();
84 }
92 {
93 // default fields
94 $cols = array();
95
96 switch($this->report) {
97 case "exportSelectedCore":
98 $cols=ilSCORM2004TrackingItems::exportSelectedCoreColumns($this->bySCO, $this->allowExportPrivacy);
99 break;
100 case "exportSelectedInteractions":
102 break;
103 case "exportSelectedObjectives":
105 break;
106 case "exportObjGlobalToSystem":
108 break;
109 case "tracInteractionItem":
110 $cols=ilSCORM2004TrackingItems::tracInteractionItemColumns($this->bySCO, $this->allowExportPrivacy);
111 break;
112 case "tracInteractionUser":
113 $cols=ilSCORM2004TrackingItems::tracInteractionUserColumns($this->bySCO, $this->allowExportPrivacy);
114 break;
115 case "tracInteractionUserAnswers":
116 $cols=ilSCORM2004TrackingItems::tracInteractionUserAnswersColumns($this->userSelected, $this->scosSelected, $this->bySCO, $this->allowExportPrivacy);
117 break;
118 case "exportSelectedSuccess":
119 $cols=ilSCORM2004TrackingItems::exportSelectedSuccessColumns($this->allowExportPrivacy);
120 break;
121 }
122
123 return $cols;
124 }
125
130 public function getObjId()
131 {
132 return $this->obj_id;
133 }
134
135
136 function getItems() {
137 global $lng;
138
140 $ilSCORM2004TrackingItems = new ilSCORM2004TrackingItems();
141 switch($this->report) {
142 case "exportSelectedCore":
143 $tr_data = $ilSCORM2004TrackingItems->exportSelectedCore($this->userSelected, $this->scosSelected, $this->bySCO, $this->allowExportPrivacy, $this->getObjId());
144 break;
145 case "exportSelectedInteractions":
146 $tr_data = $ilSCORM2004TrackingItems->exportSelectedInteractions($this->userSelected, $this->scosSelected, $this->bySCO, $this->allowExportPrivacy, $this->getObjId());
147 break;
148 case "exportSelectedObjectives":
149 $tr_data = $ilSCORM2004TrackingItems->exportSelectedObjectives($this->userSelected, $this->scosSelected, $this->bySCO, $this->allowExportPrivacy, $this->getObjId());
150 break;
151 case "exportObjGlobalToSystem":
152 $tr_data = $ilSCORM2004TrackingItems->exportObjGlobalToSystem($this->userSelected, $this->allowExportPrivacy, $this->getObjId());
153 break;
154 case "tracInteractionItem":
155 $tr_data = $ilSCORM2004TrackingItems->tracInteractionItem($this->userSelected, $this->scosSelected, $this->bySCO, $this->allowExportPrivacy, $this->getObjId());
156 break;
157 case "tracInteractionUser":
158 $tr_data = $ilSCORM2004TrackingItems->tracInteractionUser($this->userSelected, $this->scosSelected, $this->bySCO, $this->allowExportPrivacy, $this->getObjId());
159 break;
160 case "tracInteractionUserAnswers":
161 $tr_data = $ilSCORM2004TrackingItems->tracInteractionUserAnswers($this->userSelected, $this->scosSelected, $this->bySCO, $this->allowExportPrivacy, $this->getObjId());
162 break;
163 case "exportSelectedSuccess":
164 $tr_data = $ilSCORM2004TrackingItems->exportSelectedSuccess($this->userSelected, $this->allowExportPrivacy, $this->getObjId());
165 break;
166 }
167 $this->setMaxCount($tr_data["cnt"]);
168 if (ilUtil::stripSlashes($this->getOrderField()) !="") {
169 include_once "Services/Utilities/classes/class.ilStr.php";
171 }
172
173 $this->setData($tr_data);
174 }
175 protected function parseValue($id, $value, $type)
176 {
177 global $lng;
178 $lng->loadLanguageModule("trac");
179 switch($id)
180 {
181 case "status":
182 include_once("./Services/Tracking/classes/class.ilLearningProgressBaseGUI.php");
185 $value = ilUtil::img($path, $text);
186 break;
187 }
188 //BLUM round
189 if ($id=="launch_data" || $id=="suspend_data") return $value;
190 if (is_numeric($value)) return round($value,2);
191 return $value;
192 }
196 protected function fillRow($data)
197 {
198 global $ilCtrl, $lng;
199 foreach ($this->getSelectedColumns() as $c)
200 {
201 $this->tpl->setCurrentBlock("user_field");
202 $val = $this->parseValue($c, $data[$c], "scormtrac");
203 $this->tpl->setVariable("VAL_UF", $val);
204 $this->tpl->parseCurrentBlock();
205 }
206
207 }
208
209 protected function fillHeaderExcel(ilExcel $worksheet, &$a_row)
210 {
211 $labels = $this->getSelectableColumns();
212 $cnt = 0;
213 foreach ($this->getSelectedColumns() as $c)
214 {
215 $worksheet->setCell($a_row, $cnt, $labels[$c]["txt"]);
216 $cnt++;
217 }
218 }
219
220 protected function fillRowExcel(ilExcel $worksheet, &$a_row, $a_set)
221 {
222 global $lng;
223 $lng->loadLanguageModule("trac");
224 include_once("./Services/Tracking/classes/class.ilLearningProgressBaseGUI.php");
225 $cnt = 0;
226 foreach ($this->getSelectedColumns() as $c)
227 {
228 if($c != 'status')
229 {
230 $val = $this->parseValue($c, $a_set[$c], "user");
231 }
232 else
233 {
234 $val = ilLearningProgressBaseGUI::_getStatusText((int)$a_set[$c]);
235 }
236 $worksheet->setCell($a_row, $cnt, $val);
237 $cnt++;
238 }
239 }
240
241 protected function fillHeaderCSV($a_csv)
242 {
243 $labels = $this->getSelectableColumns();
244 foreach ($this->getSelectedColumns() as $c)
245 {
246 $a_csv->addColumn($labels[$c]["txt"]);
247 }
248
249 $a_csv->addRow();
250 }
251
252 protected function fillRowCSV($a_csv, $a_set)
253 {
254 global $lng;
255 $lng->loadLanguageModule("trac");
256 include_once("./Services/Tracking/classes/class.ilLearningProgressBaseGUI.php");
257 foreach ($this->getSelectedColumns() as $c)
258 {
259 if($c != 'status')
260 {
261 $val = $this->parseValue($c, $a_set[$c], "user");
262 }
263 else
264 {
265 $val = ilLearningProgressBaseGUI::_getStatusText((int)$a_set[$c]);
266 }
267 $a_csv->addColumn($val);
268 }
269
270 $a_csv->addRow();
271 }
272
273}
274?>
sprintf('%.4f', $callTime)
$worksheet
global $l
Definition: afr.php:30
$path
Definition: aliased.php:25
An exception for terminatinating execution or to throw for unit testing.
static _getStatusText($a_status, $a_lng=null)
Get status alt text.
static _getImagePathForStatus($a_status)
Get image path for status.
static _getInstance()
Get instance of ilPrivacySettings.
__construct($a_obj_id, $a_parent_obj, $a_parent_cmd, $a_userSelected, $a_scosSelected, $a_report)
Constructor.
fillRowCSV($a_csv, $a_set)
CSV Version of Fill Row.
fillHeaderExcel(ilExcel $worksheet, &$a_row)
Excel Version of Fill Header.
fillRowExcel(ilExcel $worksheet, &$a_row, $a_set)
Excel Version of Fill Row.
Class ilSCORM2004TrackingItems.
static tracInteractionItemColumns($b_orderBySCO, $b_allowExportPrivacy)
static tracInteractionUserColumns($b_orderBySCO, $b_allowExportPrivacy)
static exportSelectedCoreColumns($b_orderBySCO, $b_allowExportPrivacy)
static tracInteractionUserAnswersColumns($a_user=array(), $a_sco=array(), $b_orderBySCO, $b_allowExportPrivacy)
Class ilTable2GUI.
getSelectedColumns()
Get selected columns.
setEnableHeader($a_enableheader)
Set Enable Header.
setExternalSorting($a_val)
Set external sorting.
addColumn($a_text, $a_sort_field="", $a_width="", $a_is_checkbox_action_column=false, $a_class="", $a_tooltip="", $a_tooltip_with_html=false)
Add a column to the header.
setExportFormats(array $formats)
Set available export formats.
determineOffsetAndOrder($a_omit_offset=false)
Determine offset and order.
setData($a_data)
set table data @access public
setEnableTitle($a_enabletitle)
Set Enable Title.
setRowTemplate($a_template, $a_template_dir="")
Set row template.
setLimit($a_limit=0, $a_default_limit=0)
set max.
setDefaultOrderField($a_defaultorderfield)
Set Default order field.
setId($a_val)
Set id.
setFormAction($a_form_action, $a_multipart=false)
Set Form action parameter.
setDefaultOrderDirection($a_defaultorderdirection)
Set Default order direction.
setShowTemplates($a_value)
Toggle templates.
getOrderDirection()
Get order direction.
setMaxCount($a_max_count)
set max.
static img($a_src, $a_alt="", $a_width="", $a_height="", $a_border=0, $a_id="", $a_class="")
Build img tag.
static stripSlashes($a_str, $a_strip_html=true, $a_allow="")
strip slashes if magic qoutes is enabled
static stableSortArray($array, $a_array_sortby, $a_array_sortorder=0, $a_numeric=false)
$text
global $ilCtrl
Definition: ilias.php:18
global $lng
Definition: privfeed.php:17