ILIAS  release_5-1 Revision 5.0.0-5477-g43f3e3fab5f
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 switch($this->report) {
141 case "exportSelectedCore":
142 $tr_data = ilSCORM2004TrackingItems::exportSelectedCore($this->userSelected, $this->scosSelected, $this->bySCO, $this->allowExportPrivacy);
143 break;
144 case "exportSelectedInteractions":
145 $tr_data = ilSCORM2004TrackingItems::exportSelectedInteractions($this->userSelected, $this->scosSelected, $this->bySCO, $this->allowExportPrivacy);
146 break;
147 case "exportSelectedObjectives":
148 $tr_data = ilSCORM2004TrackingItems::exportSelectedObjectives($this->userSelected, $this->scosSelected, $this->bySCO, $this->allowExportPrivacy);
149 break;
150 case "exportObjGlobalToSystem":
151 $tr_data = ilSCORM2004TrackingItems::exportObjGlobalToSystem($this->userSelected, $this->allowExportPrivacy);
152 break;
153 case "tracInteractionItem":
154 $tr_data = ilSCORM2004TrackingItems::tracInteractionItem($this->userSelected, $this->scosSelected, $this->bySCO, $this->allowExportPrivacy);
155 break;
156 case "tracInteractionUser":
157 $tr_data = ilSCORM2004TrackingItems::tracInteractionUser($this->userSelected, $this->scosSelected, $this->bySCO, $this->allowExportPrivacy);
158 break;
159 case "tracInteractionUserAnswers":
160 $tr_data = ilSCORM2004TrackingItems::tracInteractionUserAnswers($this->userSelected, $this->scosSelected, $this->bySCO, $this->allowExportPrivacy);
161 break;
162 case "exportSelectedSuccess":
163 $tr_data = ilSCORM2004TrackingItems::exportSelectedSuccess($this->userSelected, $this->allowExportPrivacy);
164 break;
165 }
166 $this->setMaxCount($tr_data["cnt"]);
167 if (ilUtil::stripSlashes($this->getOrderField()) !="") {
168 include_once "Services/Utilities/classes/class.ilStr.php";
170 }
171
172 $this->setData($tr_data);
173 }
174 protected function parseValue($id, $value, $type)
175 {
176 global $lng;
177 $lng->loadLanguageModule("trac");
178 switch($id)
179 {
180 case "status":
181 include_once("./Services/Tracking/classes/class.ilLearningProgressBaseGUI.php");
184 $value = ilUtil::img($path, $text);
185 break;
186 }
187 //BLUM round
188 if ($id=="launch_data" || $id=="suspend_data") return $value;
189 if (is_numeric($value)) return round($value,2);
190 return $value;
191 }
195 protected function fillRow($data)
196 {
197 global $ilCtrl, $lng;
198 foreach ($this->getSelectedColumns() as $c)
199 {
200 $this->tpl->setCurrentBlock("user_field");
201 $val = $this->parseValue($c, $data[$c], "scormtrac");
202 $this->tpl->setVariable("VAL_UF", $val);
203 $this->tpl->parseCurrentBlock();
204 }
205
206 }
207
208 protected function fillHeaderExcel($worksheet, &$a_row)
209 {
210 $labels = $this->getSelectableColumns();
211 $cnt = 0;
212 foreach ($this->getSelectedColumns() as $c)
213 {
214 $worksheet->write($a_row, $cnt, $labels[$c]["txt"]);
215 $cnt++;
216 }
217 }
218
219 protected function fillRowExcel($worksheet, &$a_row, $a_set)
220 {
221 global $lng;
222 $lng->loadLanguageModule("trac");
223 include_once("./Services/Tracking/classes/class.ilLearningProgressBaseGUI.php");
224 $cnt = 0;
225 foreach ($this->getSelectedColumns() as $c)
226 {
227 if($c != 'status')
228 {
229 $val = $this->parseValue($c, $a_set[$c], "user");
230 }
231 else
232 {
233 $val = ilLearningProgressBaseGUI::_getStatusText((int)$a_set[$c]);
234 }
235 $worksheet->write($a_row, $cnt, $val);
236 $cnt++;
237 }
238 }
239
240 protected function fillHeaderCSV($a_csv)
241 {
242 $labels = $this->getSelectableColumns();
243 foreach ($this->getSelectedColumns() as $c)
244 {
245 $a_csv->addColumn($labels[$c]["txt"]);
246 }
247
248 $a_csv->addRow();
249 }
250
251 protected function fillRowCSV($a_csv, $a_set)
252 {
253 global $lng;
254 $lng->loadLanguageModule("trac");
255 include_once("./Services/Tracking/classes/class.ilLearningProgressBaseGUI.php");
256 foreach ($this->getSelectedColumns() as $c)
257 {
258 if($c != 'status')
259 {
260 $val = $this->parseValue($c, $a_set[$c], "user");
261 }
262 else
263 {
264 $val = ilLearningProgressBaseGUI::_getStatusText((int)$a_set[$c]);
265 }
266 $a_csv->addColumn($val);
267 }
268
269 $a_csv->addRow();
270 }
271
272}
273?>
global $l
Definition: afr.php:30
_getImagePathForStatus($a_status)
Get image path for status.
_getStatusText($a_status, $a_lng=null)
Get status alt text.
static _getInstance()
Get instance of ilPrivacySettings.
fillHeaderExcel($worksheet, &$a_row)
Excel Version of Fill Header.
fillRowExcel($worksheet, &$a_row, $a_set)
Excel Version of Fill Row.
__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.
tracInteractionItemColumns($b_orderBySCO, $b_allowExportPrivacy)
tracInteractionUserAnswers($a_user=array(), $a_sco=array(), $b_orderBySCO=false, $allowExportPrivacy=false)
exportSelectedSuccess($a_user=array(), $allowExportPrivacy=false)
exportSelectedCoreColumns($b_orderBySCO, $b_allowExportPrivacy)
exportSelectedCore($a_user=array(), $a_sco=array(), $b_orderBySCO=false, $allowExportPrivacy=false)
tracInteractionUserColumns($b_orderBySCO, $b_allowExportPrivacy)
exportSelectedObjectives($a_user=array(), $a_sco=array(), $b_orderBySCO=false, $allowExportPrivacy=false)
exportObjGlobalToSystem($a_user=array(), $allowExportPrivacy=false)
tracInteractionUserAnswersColumns($a_user=array(), $a_sco=array(), $b_orderBySCO, $b_allowExportPrivacy)
tracInteractionUser($a_user=array(), $a_sco=array(), $b_orderBySCO=false, $allowExportPrivacy=false)
tracInteractionItem($a_user=array(), $a_sco=array(), $b_orderBySCO=false, $allowExportPrivacy=false)
exportSelectedInteractions($a_user=array(), $a_sco=array(), $b_orderBySCO=false, $allowExportPrivacy=false)
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:40
$path
Definition: index.php:22