4 include_once(
"./Services/Tracking/classes/class.ilLPTableBaseGUI.php");
32 function __construct($a_parent_obj, $a_parent_cmd, $a_obj_id, $a_ref_id, $a_print_view =
false)
36 $this->
setId(
"troup");
37 $this->obj_id = $a_obj_id;
38 $this->ref_id = $a_ref_id;
41 $this->in_course = $tree->checkForParentType($this->ref_id,
"crs");
49 $this->
parseTitle($a_obj_id,
"trac_participants");
62 $sort_id = (substr($c, 0, 4) ==
"udf_") ?
"" : $c;
64 $this->
addColumn($labels[$c][
"txt"], $sort_id);
69 $this->
addColumn($this->lng->txt(
"actions"),
"");
75 $this->
setFormAction($ilCtrl->getFormActionByClass(get_class($this)));
76 $this->
setRowTemplate(
"tpl.object_users_props_row.html",
"Services/Tracking");
102 if($this->selectable_columns)
107 $anonymized_object =
false;
108 include_once
'./Modules/Test/classes/class.ilObjTest.php';
111 $anonymized_object =
true;
114 include_once(
"./Services/User/classes/class.ilUserProfile.php");
116 $up->skipGroup(
"preferences");
117 $up->skipGroup(
"settings");
118 $ufs = $up->getStandardFields();
122 $cols[
"login"] = array(
123 "txt" => $lng->txt(
"login"),
126 if(!$anonymized_object)
128 $cols[
"firstname"] = array(
129 "txt" => $lng->txt(
"firstname"),
131 $cols[
"lastname"] = array(
132 "txt" => $lng->txt(
"lastname"),
137 include_once
'Services/Tracking/classes/class.ilObjUserTracking.php';
141 $cols[
"first_access"] = array(
142 "txt" => $lng->txt(
"trac_first_access"),
144 $cols[
"last_access"] = array(
145 "txt" => $lng->txt(
"trac_last_access"),
150 $cols[
"read_count"] = array(
151 "txt" => $lng->txt(
"trac_read_count"),
156 $cols[
"spent_seconds"] = array(
157 "txt" => $lng->txt(
"trac_spent_seconds"),
163 $cols[
"percentage"] = array(
164 "txt" => $lng->txt(
"trac_percentage"),
172 $cols[
"status"] = array(
173 "txt" => $lng->txt(
"trac_status"),
177 if($this->type !=
"lm")
179 $cols[
"mark"] = array(
180 "txt" => $lng->txt(
"trac_mark"),
184 $cols[
"u_comment"] = array(
185 "txt" => $lng->txt(
"trac_comment"),
188 $cols[
"create_date"] = array(
189 "txt" => $lng->txt(
"create_date"),
191 $cols[
"language"] = array(
192 "txt" => $lng->txt(
"language"),
196 if($this->in_course && !$anonymized_object)
198 $this->user_fields = array();
201 foreach ($ufs as $f => $fd)
203 if (!isset($cols[$f]) && $f !=
"username" && !$fd[
"lists_hide"] && ($fd[
"course_export_fix_value"] || $ilSetting->get(
"usr_settings_course_export_".$f)))
206 "txt" => $lng->txt($f),
209 $this->user_fields[] = $f;
214 include_once
'./Services/User/classes/class.ilUserDefinedFields.php';
216 foreach($user_defined_fields->getVisibleDefinitions() as $field_id => $definition)
218 if($definition[
"field_type"] !=
UDF_TYPE_WYSIWYG && $definition[
"course_export"])
220 $f =
"udf_".$definition[
"field_id"];
222 "txt" => $definition[
"field_name"],
225 $this->user_fields[] = $f;
230 $this->selectable_columns = $cols;
244 include_once(
"./Services/Tracking/classes/class.ilTrQuery.php");
249 $check_agreement =
false;
253 include_once
"Services/PrivacySecurity/classes/class.ilPrivacySettings.php";
255 if($privacy->courseConfirmationRequired())
273 if (count($tr_data[
"set"]) == 0 && $this->
getOffset() > 0)
290 $this->
setData($tr_data[
"set"]);
318 case "matriculation":
321 $this->filter[$column] = $item->getValue();
329 $this->filter[$column] = $item->getDate();
335 $this->filter[$column] = $item->getValue();
340 $item->setOptions(array(
"" => $lng->txt(
"trac_all"),
"m" => $lng->txt(
"gender_m"),
"f" => $lng->txt(
"gender_f")));
341 $this->filter[
"gender"] = $item->getValue();
348 include_once(
"./Services/Utilities/classes/class.ilCountry.php");
351 $options[$c] = $lng->txt(
"meta_c_".$c);
354 $item->setOptions(array(
"" => $lng->txt(
"trac_all"))+$options);
356 $this->filter[
"sel_country"] = $item->getValue();
360 include_once
"Services/Tracking/classes/class.ilLPStatus.php";
362 $item->setOptions(array(
"" => $lng->txt(
"trac_all"),
367 $this->filter[
"status"] = $item->getValue();
368 if($this->filter[
"status"])
370 $this->filter[
"status"]--;
376 $this->filter[
"language"] = $item->getValue();
379 case "spent_seconds":
381 $this->filter[
"spent_seconds"][
"from"] = $item->getCombinationItem(
"from")->getValueInSeconds();
382 $this->filter[
"spent_seconds"][
"to"] = $item->getCombinationItem(
"to")->getValueInSeconds();
410 $this->tpl->setCurrentBlock(
'warning_img');
412 $this->tpl->setVariable(
'WARNING_ALT', $this->lng->txt(
'trac_time_passed').$timing);
413 $this->tpl->parseCurrentBlock();
417 $this->tpl->setCurrentBlock(
"user_field");
419 $this->tpl->setVariable(
"VAL_UF", $val);
420 $this->tpl->parseCurrentBlock();
423 $ilCtrl->setParameterByClass(
"illplistofobjectsgui",
"user_id",
$data[
"usr_id"]);
427 if(in_array($this->type, array(
"crs",
"grp",
"cat",
"fold")))
429 $this->tpl->setCurrentBlock(
"item_command");
430 $this->tpl->setVariable(
"HREF_COMMAND", $ilCtrl->getLinkTargetByClass(
"illplistofobjectsgui",
"userdetails"));
431 $this->tpl->setVariable(
"TXT_COMMAND", $lng->txt(
'details'));
432 $this->tpl->parseCurrentBlock();
435 $this->tpl->setCurrentBlock(
"item_command");
436 $this->tpl->setVariable(
"HREF_COMMAND", $ilCtrl->getLinkTargetByClass(
"illplistofobjectsgui",
"edituser"));
437 $this->tpl->setVariable(
"TXT_COMMAND", $lng->txt(
'edit'));
438 $this->tpl->parseCurrentBlock();
441 $ilCtrl->setParameterByClass(
"illplistofobjectsgui",
'user_id',
'');
450 $worksheet->write($a_row, $cnt, $labels[$c][
"txt"]);
462 $val = $this->
parseValue($c, $a_set[$c],
"user");
468 $worksheet->write($a_row, $cnt, $val);
478 $a_csv->addColumn($labels[$c][
"txt"]);
490 $val = $this->
parseValue($c, $a_set[$c],
"user");
496 $a_csv->addColumn($val);