ILIAS  release_5-0 Revision 5.0.0-1144-gc4397b1f87
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  switch($this->report) {
141  case "exportSelectedCore":
142  $tr_data = ilSCORMTrackingItems::exportSelectedCore($this->userSelected, $this->scosSelected, $this->bySCO, $this->allowExportPrivacy);
143  break;
144  case "exportSelectedRaw":
145  $tr_data = ilSCORMTrackingItems::exportSelectedRaw($this->userSelected, $this->scosSelected, $this->bySCO, $this->allowExportPrivacy);
146  break;
147  case "exportSelectedInteractions":
148  $tr_data = ilSCORMTrackingItems::exportSelectedInteractions($this->userSelected, $this->scosSelected, $this->bySCO, $this->allowExportPrivacy);
149  break;
150  case "exportSelectedObjectives":
151  $tr_data = ilSCORMTrackingItems::exportSelectedObjectives($this->userSelected, $this->scosSelected, $this->bySCO, $this->allowExportPrivacy);
152  break;
153  case "tracInteractionItem":
154  $tr_data = ilSCORMTrackingItems::tracInteractionItem($this->userSelected, $this->scosSelected, $this->bySCO, $this->allowExportPrivacy);
155  break;
156  case "tracInteractionUser":
157  $tr_data = ilSCORMTrackingItems::tracInteractionUser($this->userSelected, $this->scosSelected, $this->bySCO, $this->allowExportPrivacy);
158  break;
159  case "tracInteractionUserAnswers":
160  $tr_data = ilSCORMTrackingItems::tracInteractionUserAnswers($this->userSelected, $this->scosSelected, $this->bySCO, $this->allowExportPrivacy);
161  break;
162  case "exportSelectedSuccess":
163  $tr_data = ilSCORMTrackingItems::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 ?>
Class ilSCORMTrackingItemsTableGUI.
setExternalSorting($a_val)
Set external sorting.
setDefaultOrderField($a_defaultorderfield)
Set Default order field.
setExportFormats(array $formats)
Set available export formats.
setShowTemplates($a_value)
Toggle templates.
_getImagePathForStatus($a_status)
Get image path for status.
exportSelectedObjectives($a_user=array(), $a_sco=array(), $b_orderBySCO=false, $allowExportPrivacy=false)
getOrderDirection()
Get order direction.
setId($a_val)
Set id.
exportSelectedSuccess($a_user=array(), $allowExportPrivacy=false)
_getStatusText($a_status)
Get status alt text.
exportSelectedCoreColumns($b_orderBySCO, $b_allowExportPrivacy)
global $ilCtrl
Definition: ilias.php:18
setDefaultOrderDirection($a_defaultorderdirection)
Set Default order direction.
setLimit($a_limit=0, $a_default_limit=0)
set max.
Class ilTable2GUI.
exportSelectedInteractions($a_user=array(), $a_sco=array(), $b_orderBySCO=false, $allowExportPrivacy=false)
addColumn($a_text, $a_sort_field="", $a_width="", $a_is_checkbox_action_column=false, $a_class="", $a_tooltip="")
Add a column to the header.
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...
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.
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 $lng
Definition: privfeed.php:40
$path
Definition: index.php:22
exportSelectedCore($a_user=array(), $a_sco=array(), $b_orderBySCO=false, $allowExportPrivacy=false)
setEnableHeader($a_enableheader)
Set Enable Header.
static _getInstance()
Get instance of ilPrivacySettings.
setMaxCount($a_max_count)
set max.
setEnableTitle($a_enabletitle)
Set Enable Title.
exportSelectedRaw($a_user=array(), $a_sco=array(), $b_orderBySCO=false, $allowExportPrivacy=false)
__construct($a_obj_id, $a_parent_obj, $a_parent_cmd, $a_userSelected, $a_scosSelected, $a_report)
Constructor.