ILIAS  release_5-2 Revision v5.2.25-18-g3f80b828510
class.ilSCORMTrackingItemsTableGUI.php
Go to the documentation of this file.
1 <?php
2 /* Copyright (c) 1998-2013 ILIAS open source, Extended GPL, see docs/LICENSE */
3 
4 include_once './Services/Table/classes/class.ilTable2GUI.php';
5 include_once './Modules/ScormAicc/classes/class.ilSCORMTrackingItems.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('AICC'.$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.scorm_tracking_items.html', 'Modules/ScormAicc');
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=ilSCORMTrackingItems::exportSelectedCoreColumns($this->bySCO, $this->allowExportPrivacy);
99  break;
100  case "exportSelectedRaw":
102  break;
103  case "exportSelectedInteractions":
105  break;
106  case "exportSelectedObjectives":
108  break;
109  case "tracInteractionItem":
110  $cols=ilSCORMTrackingItems::tracInteractionItemColumns($this->bySCO, $this->allowExportPrivacy);
111  break;
112  case "tracInteractionUser":
113  $cols=ilSCORMTrackingItems::tracInteractionUserColumns($this->bySCO, $this->allowExportPrivacy);
114  break;
115  case "tracInteractionUserAnswers":
116  $cols=ilSCORMTrackingItems::tracInteractionUserAnswersColumns($this->userSelected, $this->scosSelected, $this->bySCO, $this->allowExportPrivacy);
117  break;
118  case "exportSelectedSuccess":
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 
139  $this->determineOffsetAndOrder();
140  $ilSCORMTrackingItems = new ilSCORMTrackingItems();
141  switch($this->report) {
142  case "exportSelectedCore":
143  $tr_data = $ilSCORMTrackingItems->exportSelectedCore($this->userSelected, $this->scosSelected, $this->bySCO, $this->allowExportPrivacy, $this->getObjId());
144  break;
145  case "exportSelectedRaw":
146  $tr_data = $ilSCORMTrackingItems->exportSelectedRaw($this->userSelected, $this->scosSelected, $this->bySCO, $this->allowExportPrivacy, $this->getObjId());
147  break;
148  case "exportSelectedInteractions":
149  $tr_data = $ilSCORMTrackingItems->exportSelectedInteractions($this->userSelected, $this->scosSelected, $this->bySCO, $this->allowExportPrivacy, $this->getObjId());
150  break;
151  case "exportSelectedObjectives":
152  $tr_data = $ilSCORMTrackingItems->exportSelectedObjectives($this->userSelected, $this->scosSelected, $this->bySCO, $this->allowExportPrivacy, $this->getObjId());
153  break;
154  case "tracInteractionItem":
155  $tr_data = $ilSCORMTrackingItems->tracInteractionItem($this->userSelected, $this->scosSelected, $this->bySCO, $this->allowExportPrivacy, $this->getObjId());
156  break;
157  case "tracInteractionUser":
158  $tr_data = $ilSCORMTrackingItems->tracInteractionUser($this->userSelected, $this->scosSelected, $this->bySCO, $this->allowExportPrivacy, $this->getObjId());
159  break;
160  case "tracInteractionUserAnswers":
161  $tr_data = $ilSCORMTrackingItems->tracInteractionUserAnswers($this->userSelected, $this->scosSelected, $this->bySCO, $this->allowExportPrivacy, $this->getObjId());
162  break;
163  case "exportSelectedSuccess":
164  $tr_data = $ilSCORMTrackingItems->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 ?>
Class ilSCORMTrackingItemsTableGUI.
$path
Definition: aliased.php:25
setExternalSorting($a_val)
Set external sorting.
$worksheet
setDefaultOrderField($a_defaultorderfield)
Set Default order field.
setExportFormats(array $formats)
Set available export formats.
static _getImagePathForStatus($a_status)
Get image path for status.
setShowTemplates($a_value)
Toggle templates.
static _getStatusText($a_status, $a_lng=null)
Get status alt text.
getOrderDirection()
Get order direction.
setId($a_val)
Set id.
static exportSelectedCoreColumns($b_orderBySCO, $b_allowExportPrivacy)
global $ilCtrl
Definition: ilias.php:18
setDefaultOrderDirection($a_defaultorderdirection)
Set Default order direction.
Class ilTable2GUI.
static stableSortArray($array, $a_array_sortby, $a_array_sortorder=0, $a_numeric=false)
Sort an aray using a stable sort algorithm, which preveserves the sequence of array elements which h...
fillRowExcel(ilExcel $worksheet, &$a_row, $a_set)
getSelectedColumns()
Get selected columns.
static stripSlashes($a_str, $a_strip_html=true, $a_allow="")
strip slashes if magic qoutes is enabled
setRowTemplate($a_template, $a_template_dir="")
Set row template.
Create styles array
The data for the language used.
setCell($a_row, $a_col, $a_value)
Set cell value.
determineOffsetAndOrder($a_omit_offset=false)
Determine offset and order.
setFormAction($a_form_action, $a_multipart=false)
Set Form action parameter.
static img($a_src, $a_alt="", $a_width="", $a_height="", $a_border=0, $a_id="", $a_class="")
Build img tag.
global $l
Definition: afr.php:30
global $lng
Definition: privfeed.php:17
$text
setEnableHeader($a_enableheader)
Set Enable Header.
static _getInstance()
Get instance of ilPrivacySettings.
setMaxCount($a_max_count)
set max.
setEnableTitle($a_enabletitle)
Set Enable Title.
Class ilSCORMTrackingItems.
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.
setLimit($a_limit=0, $a_default_limit=0)
__construct($a_obj_id, $a_parent_obj, $a_parent_cmd, $a_userSelected, $a_scosSelected, $a_report)
Constructor.