18 include_once(
"./Services/Tracking/classes/class.ilLPTableBaseGUI.php");
34 public function __construct($a_parent_obj, $a_parent_cmd, $a_user_id, $a_obj_id, $a_ref_id, $a_print_view =
false)
38 $ilCtrl = $DIC[
'ilCtrl'];
40 $ilAccess = $DIC[
'ilAccess'];
42 $rbacsystem = $DIC[
'rbacsystem'];
44 $this->
setId(
"truop");
45 $this->user_id = $a_user_id;
46 $this->obj_id = $a_obj_id;
47 $this->ref_id = $a_ref_id;
52 $this->
parseTitle($this->obj_id,
"details", $this->user_id);
58 $this->
addColumn($this->lng->txt(
"title"),
"title");
62 if (in_array($l, array(
"last_access",
"first_access",
"read_count",
"spent_seconds",
"mark",
"status",
"percentage"))) {
65 if ($l ==
"u_comment") {
72 $this->
addColumn($this->lng->txt(
"actions"),
"");
78 $this->
setFormAction($ilCtrl->getFormActionByClass(get_class($this)));
79 $this->
setRowTemplate(
"tpl.user_objects_props_row.html",
"Services/Tracking");
107 include_once
'Services/Tracking/classes/class.ilObjUserTracking.php';
110 $cols[
"first_access"] = array(
111 "txt" =>
$lng->txt(
"trac_first_access"),
113 $cols[
"last_access"] = array(
114 "txt" =>
$lng->txt(
"trac_last_access"),
118 $cols[
"read_count"] = array(
119 "txt" =>
$lng->txt(
"trac_read_count"),
123 $cols[
"spent_seconds"] = array(
124 "txt" =>
$lng->txt(
"trac_spent_seconds"),
129 $cols[
"percentage"] = array(
130 "txt" =>
$lng->txt(
"trac_percentage"),
133 $cols[
"status"] = array(
134 "txt" =>
$lng->txt(
"trac_status"),
136 $cols[
"mark"] = array(
137 "txt" =>
$lng->txt(
"trac_mark"),
139 $cols[
"u_comment"] = array(
140 "txt" =>
$lng->txt(
"trac_comment"),
153 $rbacsystem = $DIC[
'rbacsystem'];
159 include_once(
"./Services/Tracking/classes/class.ilTrQuery.php");
171 $this->
filter[
"view_mode"]
174 if (count($tr_data[
"set"]) == 0 && $this->
getOffset() > 0) {
186 $this->
filter[
"view_mode"]
191 foreach ($tr_data[
"set"] as $idx => $row) {
192 include_once
'./Services/Tracking/classes/class.ilLearningProgressAccess.php';
193 if ($row[
"ref_id"] &&
195 foreach (array_keys($row) as $col_id) {
196 if (!in_array($col_id, array(
"type",
"obj_id",
"ref_id",
"title",
"sort_title"))) {
197 $tr_data[
"set"][$idx][$col_id] = null;
200 $tr_data[
"set"][$idx][
"privacy_conflict"] =
true;
210 foreach ($tr_data[
"set"] as $idx => $row) {
211 if ($row[
'obj_id'] == $this->obj_id) {
213 } elseif (isset($row[
"sort_title"])) {
214 $set[strtolower($row[
"sort_title"]) .
"__" . $idx] = $row;
216 $set[strtolower($row[
"title"]) .
"__" . $idx] = $row;
219 unset($tr_data[
"set"]);
225 $set = array_values($set);
227 array_unshift($set, $parent);
232 $this->
setData($tr_data[
"set"]);
246 include_once
'./Services/Object/classes/class.ilObjectLP.php';
248 $collection = $olp->getCollectionInstance();
250 include_once(
"./Services/Form/classes/class.ilSubEnabledFormPropertyGUI.php");
251 include_once(
"./Services/Table/interfaces/interface.ilTableFilterItem.php");
254 include_once(
"./Services/Form/classes/class.ilRadioGroupInputGUI.php");
255 include_once(
"./Services/Form/classes/class.ilRadioOption.php");
258 $ti->addOption(
new ilRadioOption(
$lng->txt(
"trac_view_mode_collection"),
"coll"));
260 $ti->readFromSession();
261 $this->
filter[
"view_mode"] = $ti->getValue();
273 $ilCtrl = $DIC[
'ilCtrl'];
275 $rbacsystem = $DIC[
'rbacsystem'];
278 $data[
"percentage"] = null;
282 if (!
$data[
"privacy_conflict"]) {
283 $val = (trim(
$data[$c]) ==
"")
287 if (
$data[$c] !=
"" || $c ==
"status") {
298 $val = $icons->renderIconForStatus((
int)
$data[$c]);
300 if (
$data[
"ref_id"] &&
301 $data[
"type"] !=
"lobj" &&
302 $data[
"type"] !=
"sco" &&
303 $data[
"type"] !=
"st" &&
304 $data[
"type"] !=
"mob") {
307 if ($timing !==
true) {
312 $this->tpl->setCurrentBlock(
'warning_img');
314 $this->tpl->setVariable(
'WARNING_ALT', $this->lng->txt(
'trac_time_passed') . $timing);
315 $this->tpl->parseCurrentBlock();
320 case "spent_seconds":
338 if ($c ==
"spent_seconds" &&
342 if ($c ==
"percentage" &&
350 $this->tpl->setCurrentBlock(
"user_field");
351 $this->tpl->setVariable(
"VAL_UF", $val);
352 $this->tpl->parseCurrentBlock();
355 if (
$data[
"privacy_conflict"]) {
356 $this->tpl->setCurrentBlock(
"permission_bl");
357 $this->tpl->setVariable(
"TXT_NO_PERMISSION",
$lng->txt(
"status_no_permission"));
358 $this->tpl->parseCurrentBlock();
361 if (
$data[
"title"] ==
"") {
362 $data[
"title"] =
"--" .
$lng->txt(
"none") .
"--";
365 $this->tpl->setVariable(
"ICON_ALT",
$lng->txt(
$data[
"type"]));
367 if (in_array(
$data[
'type'], array(
'fold',
'grp')) &&
$data[
'obj_id'] != $this->obj_id) {
368 if (
$data[
'type'] ==
'fold') {
369 $object_gui =
'ilobjfoldergui';
371 $object_gui =
'ilobjgroupgui';
373 $this->tpl->setCurrentBlock(
'title_linked');
376 if (
$_GET[
"baseClass"] !=
"ilDashboardGUI" &&
$_GET[
"baseClass"] !=
"ilAdministrationGUI") {
377 $old = $ilCtrl->getParameterArrayByClass(
'illplistofobjectsgui');
378 $ilCtrl->setParameterByClass(
'illplistofobjectsgui',
'ref_id',
$data[
"ref_id"]);
379 $ilCtrl->setParameterByClass(
'illplistofobjectsgui',
'details_id',
$data[
"ref_id"]);
380 $ilCtrl->setParameterByClass(
'illplistofobjectsgui',
'user_id', $this->user_id);
381 $url = $ilCtrl->getLinkTargetByClass(array(
'ilrepositorygui', $object_gui,
'illearningprogressgui',
'illplistofobjectsgui'),
'userdetails');
382 $ilCtrl->setParameterByClass(
'illplistofobjectsgui',
'ref_id', $old[
"ref_id"]);
383 $ilCtrl->setParameterByClass(
'illplistofobjectsgui',
'details_id', $old[
"details_id"]);
384 $ilCtrl->setParameterByClass(
'illplistofobjectsgui',
'user_id', $old[
"user_id"]);
389 $this->tpl->setVariable(
"URL_TITLE",
$url);
390 $this->tpl->setVariable(
"VAL_TITLE",
$data[
"title"]);
391 $this->tpl->parseCurrentBlock();
393 $this->tpl->setCurrentBlock(
'title_plain');
394 $this->tpl->setVariable(
"VAL_TITLE",
$data[
"title"]);
395 $this->tpl->parseCurrentBlock();
399 if (
$data[
'ref_id']) {
400 include_once
'./Services/Tree/classes/class.ilPathGUI.php';
402 $path = $path->getPath($this->ref_id,
$data[
'ref_id']);
404 $this->tpl->setVariable(
'COLL_PATH', $this->lng->txt(
'path') .
': ' . $path);
409 include_once
'./Services/Tracking/classes/class.ilLearningProgressAccess.php';
410 if (
$data[
"ref_id"] &&
413 $this->tpl->setCurrentBlock(
"item_command");
414 $ilCtrl->setParameterByClass(
"illplistofobjectsgui",
"userdetails_id",
$data[
"ref_id"]);
415 $this->tpl->setVariable(
"HREF_COMMAND", $ilCtrl->getLinkTargetByClass(
"illplistofobjectsgui",
'edituser'));
416 $this->tpl->setVariable(
"TXT_COMMAND",
$lng->txt(
'edit'));
417 $ilCtrl->setParameterByClass(
"illplistofobjectsgui",
"userdetails_id",
"");
418 $this->tpl->parseCurrentBlock();
425 $a_excel->
setCell($a_row, 0, $this->lng->txt(
"type"));
426 $a_excel->
setCell($a_row, 1, $this->lng->txt(
"title"));
431 $a_excel->
setCell($a_row, $cnt++, $labels[$c][
"txt"]);
439 $a_excel->
setCell($a_row, 0, $this->lng->txt($a_set[
"type"]));
440 $a_excel->
setCell($a_row, 1, $a_set[
"title"]);
444 if ($c !=
'status') {
445 $val = $this->
parseValue($c, $a_set[$c], $this->type);
449 $a_excel->
setCell($a_row, $cnt++, $val);
455 $a_csv->addColumn($this->lng->txt(
"type"));
456 $a_csv->addColumn($this->lng->txt(
"title"));
460 $a_csv->addColumn($labels[$c][
"txt"]);
468 $a_csv->addColumn($this->lng->txt($a_set[
"type"]));
469 $a_csv->addColumn($a_set[
"title"]);
472 if ($c !=
'status') {
473 $val = $this->
parseValue($c, $a_set[$c], $this->type);
477 $a_csv->addColumn($val);
static _getIcon( $a_obj_id="", $a_size="big", $a_type="", $a_offline=false)
Get icon for repository item.
Creates a path for a start and endnode.
const EXTENDED_DATA_LAST_ACCESS
This class represents an option in a radio group.
setExternalSorting($a_val)
Set external sorting.
setDefaultOrderField($a_defaultorderfield)
Set Default order field.
setExportFormats(array $formats)
Set available export formats.
setPrintMode($a_value=false)
Toogle print mode.
setShowTemplates($a_value)
Toggle templates.
static _getStatusText($a_status, $a_lng=null)
Get status alt text.
setExternalSegmentation($a_val)
Set external segmentation.
resetOffset($a_in_determination=false)
Reset offset.
static getInstance(int $variant=ilLPStatusIcons::ICON_VARIANT_DEFAULT, ?\ILIAS\UI\Renderer $renderer=null, ?\ILIAS\UI\Factory $factory=null)
fillRowExcel(ilExcel $a_excel, &$a_row, $a_set)
__construct($a_parent_obj, $a_parent_cmd, $a_user_id, $a_obj_id, $a_ref_id, $a_print_view=false)
Constructor.
const EXTENDED_DATA_READ_COUNT
addFilterItem($a_input_item, $a_optional=false)
Add filter item.
parseTitle($a_obj_id, $action, $a_user_id=false)
getSelectableColumns()
Get selectable columns.
parseValue($id, $value, $type)
getOrderDirection()
Get order direction.
static checkPermission($a_permission, $a_ref_id, $a_user_id=null)
wrapper for rbac access checks
static formatDate(ilDateTime $date, $a_skip_day=false, $a_include_wd=false, $include_seconds=false)
Format a date public.
setDefaultOrderDirection($a_defaultorderdirection)
Set Default order direction.
LP collection of repository objects.
fillHeaderExcel(ilExcel $a_excel, &$a_row)
static secondsToString($seconds, $force_with_seconds=false, $a_lng=null)
converts seconds to string: Long: 7 days 4 hour(s) ...
getColumnCoord($a_col)
Get column "name" from number.
TableGUI class for learning progress.
setBold($a_coords)
Set cell(s) to bold.
static getImagePath($img, $module_path="", $mode="output", $offline=false)
get image path (for images located in a template directory)
fillRow($data)
Fill table row.
isPercentageAvailable($a_obj_id)
getSelectedColumns()
Get selected columns.
setCell($a_row, $a_col, $a_value, $a_datatype=null)
Set cell value.
static stripSlashes($a_str, $a_strip_html=true, $a_allow="")
strip slashes if magic qoutes is enabled
getItems()
Get user items.
setRowTemplate($a_template, $a_template_dir="")
Set row template.
const EXTENDED_DATA_SPENT_SECONDS
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
static supportsMark($a_obj_type)
determineOffsetAndOrder($a_omit_offset=false)
Determine offset and order.
setFormAction($a_form_action, $a_multipart=false)
Set Form action parameter.
static supportsSpentSeconds($a_obj_type)
static getObjectsDataForUser( $a_user_id, $a_parent_obj_id, $a_parent_ref_id, $a_order_field="", $a_order_dir="", $a_offset=0, $a_limit=9999, array $a_filters=null, array $a_additional_fields=null, $use_collection=true)
Get all object-based tracking data for user and parent object.
__construct(Container $dic, ilPlugin $plugin)
showTimingsWarning($a_ref_id, $a_user_id)
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.
getPrintMode()
Get print mode.
setEnableHeader($a_enableheader)
Set Enable Header.
fillRowCSV($a_csv, $a_set)
setMaxCount($a_max_count)
set max.
setEnableTitle($a_enabletitle)
Set Enable Title.
static getInstance($a_obj_id)
setLimit($a_limit=0, $a_default_limit=0)