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 file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
 
__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. 
 
static formatDate(ilDateTime $date, bool $a_skip_day=false, bool $a_include_wd=false, bool $include_seconds=false, ilObjUser $user=null,)
 
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. 
 
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 
 
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)