39 ?
object $a_parent_obj,
44 bool $a_print_view =
false 48 $this->
setId(
"truop");
49 $this->user_id = $a_user_id;
50 $this->obj_id = $a_obj_id;
52 $this->ref_id = $a_ref_id;
57 $this->
parseTitle($this->obj_id,
"details", $this->user_id);
80 if ($l ==
"u_comment") {
94 $this->
ctrl->getFormActionByClass(get_class($this))
97 "tpl.user_objects_props_row.html",
98 "components/ILIAS/Tracking" 114 if ($tracking->hasExtendedData(
117 $cols[
"first_access"] = array(
118 "txt" => $this->
lng->txt(
"trac_first_access"),
121 $cols[
"last_access"] = array(
122 "txt" => $this->
lng->txt(
"trac_last_access"),
126 if ($tracking->hasExtendedData(
129 $cols[
"read_count"] = array(
130 "txt" => $this->
lng->txt(
"trac_read_count"),
134 if ($tracking->hasExtendedData(
137 $cols[
"spent_seconds"] = array(
138 "txt" => $this->
lng->txt(
"trac_spent_seconds"),
144 $cols[
"percentage"] = array(
145 "txt" => $this->
lng->txt(
"trac_percentage"),
149 $cols[
"status"] = array(
150 "txt" => $this->
lng->txt(
"trac_status"),
153 $cols[
"mark"] = array(
154 "txt" => $this->
lng->txt(
"trac_mark"),
157 $cols[
"u_comment"] = array(
158 "txt" => $this->
lng->txt(
"trac_comment"),
180 $this->
filter[
"view_mode"] ??
false 183 if (count($tr_data[
"set"]) == 0 && $this->
getOffset() > 0) {
195 $this->
filter[
"view_mode"] ??
false 200 foreach ($tr_data[
"set"] as $idx => $row) {
201 if (($row[
"ref_id"] ?? 0) &&
203 'read_learning_progress',
206 foreach (array_keys($row) as $col_id) {
216 $tr_data[
"set"][$idx][$col_id] =
null;
219 $tr_data[
"set"][$idx][
"privacy_conflict"] =
true;
229 foreach ($tr_data[
"set"] as $idx => $row) {
230 if ($row[
'obj_id'] == $this->obj_id) {
232 } elseif (isset($row[
"sort_title"])) {
233 $set[strtolower($row[
"sort_title"]) .
"__" . $idx] = $row;
235 $set[strtolower($row[
"title"]) .
"__" . $idx] = $row;
238 unset($tr_data[
"set"]);
244 $set = array_values($set);
246 array_unshift($set, $parent);
251 $this->
setData($tr_data[
"set"]);
259 $collection = $olp->getCollectionInstance();
263 $this->
lng->txt(
"trac_view_mode"),
271 $this->
lng->txt(
"trac_view_mode_collection"),
276 $ti->readFromSession();
277 $this->
filter[
"view_mode"] = $ti->getValue();
281 protected function fillRow(array $a_set): void
287 $a_set[
"percentage"] =
null;
291 if (!(
bool) ($a_set[
"privacy_conflict"] ??
null)) {
292 $val = (trim(($a_set[$c] ??
'')) ==
"")
296 if (($a_set[$c] ??
'') !=
"" || $c ==
"status") {
316 if (($a_set[
"ref_id"] ?? 0) &&
317 $a_set[
"type"] !=
"lobj" &&
318 $a_set[
"type"] !=
"sco" &&
319 $a_set[
"type"] !=
"st" &&
320 $a_set[
"type"] !=
"mob") {
326 if ($timing !==
true) {
336 $this->tpl->setCurrentBlock(
'warning_img');
337 $this->tpl->setVariable(
340 'media/time_warn.svg' 343 $this->tpl->setVariable(
349 $this->tpl->parseCurrentBlock();
354 case "spent_seconds":
362 ($a_set[$c] < 3600 ?
true :
false)
368 $val = $a_set[
$c] .
"%";
376 if ($c ==
"spent_seconds" &&
380 if ($c ==
"percentage" &&
388 $this->tpl->setCurrentBlock(
"user_field");
389 $this->tpl->setVariable(
"VAL_UF", $val);
390 $this->tpl->parseCurrentBlock();
393 if ($a_set[
"privacy_conflict"] ??
null) {
394 $this->tpl->setCurrentBlock(
"permission_bl");
395 $this->tpl->setVariable(
397 $this->
lng->txt(
"status_no_permission")
399 $this->tpl->parseCurrentBlock();
402 if ($a_set[
"title"] ==
"") {
403 $a_set[
"title"] =
"--" . $this->
lng->txt(
"none") .
"--";
406 $this->tpl->setVariable(
410 $this->tpl->setVariable(
"ICON_ALT", $this->
lng->txt($a_set[
"type"]));
416 if ($a_set[
'type'] ==
'fold') {
417 $object_gui =
'ilobjfoldergui';
419 $object_gui =
'ilobjgroupgui';
421 $this->tpl->setCurrentBlock(
'title_linked');
424 if ($this->
http->wrapper()->query()->has(
'baseClass')) {
425 $base_class = $this->
http->wrapper()->query()->retrieve(
427 $this->
refinery->kindlyTo()->string()
431 if ($base_class !=
"ilDashboardGUI" && $base_class !=
"ilAdministrationGUI") {
432 $old = $this->
ctrl->getParameterArrayByClass(
433 'illplistofobjectsgui' 435 $this->
ctrl->setParameterByClass(
436 'illplistofobjectsgui',
440 $this->
ctrl->setParameterByClass(
441 'illplistofobjectsgui',
445 $this->
ctrl->setParameterByClass(
446 'illplistofobjectsgui',
450 $url = $this->
ctrl->getLinkTargetByClass(
451 array(
'ilrepositorygui',
453 'illearningprogressgui',
454 'illplistofobjectsgui' 458 $this->
ctrl->setParameterByClass(
459 'illplistofobjectsgui',
461 $old[
"ref_id"] ?? null
463 $this->
ctrl->setParameterByClass(
464 'illplistofobjectsgui',
468 $this->
ctrl->setParameterByClass(
469 'illplistofobjectsgui',
477 $this->tpl->setVariable(
"URL_TITLE",
$url);
478 $this->tpl->setVariable(
"VAL_TITLE", $a_set[
"title"]);
479 $this->tpl->parseCurrentBlock();
481 $this->tpl->setCurrentBlock(
'title_plain');
482 $this->tpl->setVariable(
"VAL_TITLE", $a_set[
"title"]);
483 $this->tpl->parseCurrentBlock();
487 if (($a_set[
'ref_id'] ?? 0)) {
489 $path =
$path->getPath($this->ref_id, $a_set[
'ref_id']);
491 $this->tpl->setVariable(
493 $this->
lng->txt(
'path') .
': ' .
$path 499 if (($a_set[
"ref_id"] ?? 0) &&
501 'edit_learning_progress',
508 $this->tpl->setCurrentBlock(
"item_command");
509 $this->
ctrl->setParameterByClass(
510 "illplistofobjectsgui",
514 $this->tpl->setVariable(
516 $this->
ctrl->getLinkTargetByClass(
517 "illplistofobjectsgui",
521 $this->tpl->setVariable(
"TXT_COMMAND", $this->
lng->txt(
'edit'));
522 $this->
ctrl->setParameterByClass(
523 "illplistofobjectsgui",
527 $this->tpl->parseCurrentBlock();
534 $a_excel->
setCell($a_row, 0, $this->
lng->txt(
"type"));
535 $a_excel->
setCell($a_row, 1, $this->
lng->txt(
"title"));
540 $a_excel->
setCell($a_row, $cnt++, $labels[$c][
"txt"]);
553 $a_excel->
setCell($a_row, 0, $this->
lng->txt($a_set[
"type"]));
554 $a_excel->
setCell($a_row, 1, $a_set[
"title"]);
558 if ($c !=
'status') {
559 $val = $this->
parseValue($c, $a_set[$c], $this->type);
565 $a_excel->
setCell($a_row, $cnt++, $val);
588 if ($c !=
'status') {
589 $val = $this->
parseValue($c, $a_set[$c], $this->type);
const EXTENDED_DATA_LAST_ACCESS
This class represents an option in a radio group.
__construct(?object $a_parent_obj, string $a_parent_cmd, int $a_user_id, int $a_obj_id, int $a_ref_id, bool $a_print_view=false)
Constructor.
setExportFormats(array $formats)
Set available export formats.
static _getIcon(int $obj_id=0, string $size="big", string $type="", bool $offline=false)
Get icon for repository item.
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
setFormAction(string $a_form_action, bool $a_multipart=false)
addFilterItem(ilTableFilterItem $a_input_item, bool $a_optional=false)
setEnableTitle(bool $a_enabletitle)
static stripSlashes(string $a_str, bool $a_strip_html=true, string $a_allow="")
getColumnCoord(int $a_col)
Get column "name" from number.
static getInstance(int $variant=ilLPStatusIcons::ICON_VARIANT_DEFAULT, ?\ILIAS\UI\Renderer $renderer=null, ?\ILIAS\UI\Factory $factory=null)
setPrintMode(bool $a_value=false)
const EXTENDED_DATA_READ_COUNT
fillHeaderExcel(ilExcel $a_excel, int &$a_row)
static secondsToString(int $seconds, bool $force_with_seconds=false, ?ilLanguage $a_lng=null)
converts seconds to string: Long: 7 days 4 hour(s) ...
fillRowCSV(ilCSVWriter $a_csv, array $a_set)
LP collection of repository objects.
while($session_entry=$r->fetchRow(ilDBConstants::FETCHMODE_ASSOC)) return null
resetOffset(bool $a_in_determination=false)
setExternalSorting(bool $a_val)
setCell(int $a_row, int $col, $value, ?string $datatype=null, bool $disable_strip_tags_for_strings=false)
Set cell value.
setBold(string $a_coords)
Set cell(s) to bold.
static http()
Fetches the global http state from ILIAS.
TableGUI class for learning progress.
setDefaultOrderField(string $a_defaultorderfield)
isPercentageAvailable(int $a_obj_id)
setRowTemplate(string $a_template, string $a_template_dir="")
Set row template.
parseValue(string $id, ?string $value, string $type)
static getImagePath(string $image_name, string $module_path="", string $mode="output", bool $offline=false)
get image path (for images located in a template directory)
setDefaultOrderDirection(string $a_defaultorderdirection)
static _getStatusText(int $a_status, ?ilLanguage $a_lng=null)
Get status alt text.
const EXTENDED_DATA_SPENT_SECONDS
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
static supportsSpentSeconds(string $obj_type)
__construct(Container $dic, ilPlugin $plugin)
setLimit(int $a_limit=0, int $a_default_limit=0)
static checkPermission(string $a_permission, int $a_ref_id, ?int $a_user_id=null)
wrapper for rbac access checks
static formatDate(ilDateTime $date, bool $a_skip_day=false, bool $a_include_wd=false, bool $include_seconds=false, ?ilObjUser $user=null,)
addColumn(string $a_text, string $a_sort_field="", string $a_width="", bool $a_is_checkbox_action_column=false, string $a_class="", string $a_tooltip="", bool $a_tooltip_with_html=false)
fillRowExcel(ilExcel $a_excel, int &$a_row, array $a_set)
filter(string $filter_id, $class_path, string $cmd, bool $activated=true, bool $expanded=true)
static supportsMark(string $obj_type)
static _lookupType(int $id, bool $reference=false)
parseTitle(int $a_obj_id, string $action, int $a_user_id=0)
showTimingsWarning(int $a_ref_id, int $a_user_id)
static getInstance(int $obj_id)
static getObjectsDataForUser(int $a_user_id, int $a_parent_obj_id, int $a_parent_ref_id, string $a_order_field="", string $a_order_dir="", int $a_offset=0, int $a_limit=9999, ?array $a_filters=null, ?array $a_additional_fields=null, bool $use_collection=true)
Get all object-based tracking data for user and parent object.
determineOffsetAndOrder(bool $a_omit_offset=false)
setEnableHeader(bool $a_enableheader)
setMaxCount(int $a_max_count)
set max.
fillHeaderCSV(ilCSVWriter $a_csv)
setExternalSegmentation(bool $a_val)