3 declare(strict_types=0);
    43         ?
object $a_parent_obj,
    46         ?array $obj_ids = null,
    47         bool $details = 
false,
    49         bool $personal_only = 
false,
    50         ?
int $a_parent_id = null,
    51         ?
int $a_parent_ref_id = null,
    52         ?
int $lp_context = null
    56         $ilCtrl = $DIC[
'ilCtrl'];
    59         $this->tracked_user = $a_user;
    62         $this->mode = (
int) $mode;
    63         $this->parent_obj_id = (
int) $a_parent_id;
    64         $this->lp_context = (
int) $lp_context;
    68             $this->ref_id = (
int) $a_parent_ref_id;
    71         $this->
setId(
"lpprgtbl");
    75         if (!$this->details) {
    76             $this->has_object_subitems = 
true;
    82             $this->
addColumn($this->
lng->txt(
"trac_title"), 
"title", 
"26%");
    83             $this->
addColumn($this->
lng->txt(
"status"), 
"status", 
"7%");
    85                 $this->
lng->txt(
'trac_status_changed'),
    90                 $this->
lng->txt(
"trac_percentage"),
    94             $this->
addColumn($this->
lng->txt(
"trac_mark"), 
"", 
"5%");
    96             $this->
addColumn($this->
lng->txt(
"trac_mode"), 
"", 
"20%");
   102                     $this->
lng->txt(
"trac_learning_progress_of"),
   111                 $this->
lng->txt(
"trac_hide_selected")
   117             $collection = $olp->getCollectionInstance();
   122             $this->
addColumn($this->
lng->txt(
"trac_title"), 
"title", 
"31%");
   123             $this->
addColumn($this->
lng->txt(
"status"), 
"status", 
"7%");
   126                 $this->
lng->loadLanguageModule(
'content');
   127                 $this->
addColumn($this->
lng->txt(
'cont_score'), 
'score', 
'10%');
   128             } elseif ($this->has_object_subitems) {
   130                     $this->
lng->txt(
'trac_status_changed'),
   135                     $this->
lng->txt(
"trac_percentage"),
   139                 $this->
addColumn($this->
lng->txt(
"trac_mark"), 
"", 
"5%");
   140                 $this->
addColumn($this->
lng->txt(
"comment"), 
"", 
"10%");
   141                 $this->
addColumn($this->
lng->txt(
"trac_mode"), 
"", 
"20%");
   148             $this->
ctrl->getFormActionByClass(get_class($this))
   151             "tpl.lp_progress_list_row.html",
   160         if ($this->has_object_subitems) {
   162                 array(self::EXPORT_CSV, self::EXPORT_EXCEL)
   167         if ($this->tracked_user) {
   174         return $a_field == 
"percentage";
   181         if (!$obj_ids && !$this->details) {
   182             switch ($this->lp_context) {
   198                         $this->tracked_user->getId(),
   202                     ) as $obj_id => $status) {
   204                             unset($obj_ids[$obj_id]);
   211             switch ($this->mode) {
   214                         $this->tracked_user->getId(),
   222                         $this->tracked_user->getId(),
   231                     if ($this->tracked_user) {
   233                             $this->tracked_user->getId(),
   242                         $this->tracked_user->getId(),
   245                     foreach (
$data as $idx => $item) {
   246                         if (!($item[
"status"] ?? 
false) && !($this->
filter[
"status"] ?? 
false) && !$this->details) {
   259             foreach (
$data as $idx => $row) {
   262                     $data[$idx][
"percentage"] = -1;
   269     protected function fillRow(array $a_set): void
   271         if (!$this->details) {
   272             $this->tpl->setCurrentBlock(
"column_checkbox");
   273             $this->tpl->setVariable(
"OBJ_ID", $a_set[
"obj_id"]);
   274             $this->tpl->parseCurrentBlock();
   277         $this->tpl->setVariable(
   281         $this->tpl->setVariable(
"ICON_ALT", $this->
lng->txt(
'obj_' . $a_set[
"type"]));
   282         $this->tpl->setVariable(
"TITLE_TEXT", $a_set[
"title"]);
   284         if ($a_set[
"offline"] ?? 
false) {
   285             $this->tpl->setCurrentBlock(
"offline");
   286             $this->tpl->setVariable(
"TEXT_STATUS", $this->
lng->txt(
"status"));
   287             $this->tpl->setVariable(
"TEXT_OFFLINE", $this->
lng->txt(
"offline"));
   288             $this->tpl->parseCurrentBlock();
   292         $this->tpl->setVariable(
   294             $icons->renderIconForStatus((
int) $a_set[
"status"])
   298             $this->tpl->setVariable(
'SCORE_VAL', $a_set[
"score"]);
   299         } elseif ($this->has_object_subitems) {
   300             $this->tpl->setCurrentBlock(
"status_details");
   302             $this->tpl->setVariable(
   303                 'STATUS_CHANGED_VAL',
   306                         $a_set[
'status_changed'],
   313             $this->tpl->setVariable(
   315                 $olp->getModeText($a_set[
"u_mode"])
   317             $this->tpl->setVariable(
"MARK_VALUE", $a_set[
"mark"]);
   318             $this->tpl->setVariable(
"COMMENT_TEXT", $a_set[
"comment"]);
   320             if ($a_set[
"percentage"] < 0) {
   321                 $this->tpl->setVariable(
"PERCENTAGE_VALUE", 
"");
   323                 $this->tpl->setVariable(
   325                     sprintf(
"%d%%", $a_set[
"percentage"])
   332                 $this->tpl->setCurrentBlock(
"item_path");
   333                 foreach (
$path as $path_item) {
   334                     $this->tpl->setVariable(
"PATH_ITEM", $path_item);
   335                     $this->tpl->parseCurrentBlock();
   339             $this->tpl->parseCurrentBlock();
   346                 $ref_id = $a_set[
"ref_ids"];
   347                 $ref_id = array_shift($ref_id);
   350                     $this->tracked_user->getId()
   353                     if ($timing !== 
true) {
   360                     $this->tpl->setCurrentBlock(
'warning_img');
   361                     $this->tpl->setVariable(
   364                             'media/time_warn.svg'   367                     $this->tpl->setVariable(
   373                     $this->tpl->parseCurrentBlock();
   378             if (!$this->details) {
   379                 $this->tpl->setCurrentBlock(
"item_command");
   380                 $this->
ctrl->setParameterByClass(
   385                 $this->tpl->setVariable(
   387                     $this->
ctrl->getLinkTargetByClass(
   392                 $this->tpl->setVariable(
   394                     $this->
lng->txt(
'trac_hide')
   396                 $this->tpl->parseCurrentBlock();
   399                 if ($olp->getCollectionInstance() && $a_set[
"ref_ids"]) {
   400                     $ref_id = $a_set[
"ref_ids"];
   401                     $ref_id = array_shift($ref_id);
   402                     $this->
ctrl->setParameterByClass(
   403                         $this->
ctrl->getCmdClass(),
   407                     $this->tpl->setVariable(
   409                         $this->
ctrl->getLinkTargetByClass(
   410                             $this->ctrl->getCmdClass(),
   414                     $this->
ctrl->setParameterByClass(
   415                         $this->
ctrl->getCmdClass(),
   419                     $this->tpl->setVariable(
   421                         $this->
lng->txt(
'trac_subitems')
   423                     $this->tpl->parseCurrentBlock();
   426                 $this->tpl->setCurrentBlock(
"column_action");
   427                 $this->tpl->parseCurrentBlock();
   434         $a_excel->
setCell($a_row, 0, $this->
lng->txt(
"type"));
   435         $a_excel->
setCell($a_row, 1, $this->
lng->txt(
"trac_title"));
   436         $a_excel->
setCell($a_row, 2, $this->
lng->txt(
"status"));
   437         $a_excel->
setCell($a_row, 3, $this->
lng->txt(
"trac_status_changed"));
   438         $a_excel->
setCell($a_row, 4, $this->
lng->txt(
"trac_percentage"));
   439         $a_excel->
setCell($a_row, 5, $this->
lng->txt(
"trac_mark"));
   440         $a_excel->
setCell($a_row, 6, $this->
lng->txt(
"comment"));
   441         $a_excel->
setCell($a_row, 7, $this->
lng->txt(
"trac_mode"));
   444         $a_excel->
setBold(
"A" . $a_row . 
":H" . $a_row);
   452         $a_excel->
setCell($a_row, 0, $this->
lng->txt(
'obj_' . $a_set[
"type"]));
   453         $a_excel->
setCell($a_row, 1, $a_set[
"title"]);
   466                 $a_set[
'status_changed'],
   472             $a_excel->
setCell($a_row, 4, 
'-');
   474             $a_excel->
setCell($a_row, 4, $a_set[
"percentage"] . 
"%");
   476         $a_excel->
setCell($a_row, 5, (
string) $a_set[
"mark"]);
   477         $a_excel->
setCell($a_row, 6, (
string) $a_set[
"comment"]);
   490         $a_csv->
addColumn($this->
lng->txt(
"trac_status_changed"));
   501         $a_csv->
addColumn($this->
lng->txt(
'obj_' . $a_set[
"type"]));
   511                     $a_set[
'status_changed'],
   521             $a_csv->
addColumn(sprintf(
"%d%%", $a_set[
"percentage"]));
   523         $a_csv->
addColumn((
string) $a_set[
"mark"]);
   524         $a_csv->
addColumn((
string) $a_set[
"comment"]);
 const LP_STATUS_COMPLETED_NUM
 
fillRowCSV(ilCSVWriter $a_csv, array $a_set)
 
getCurrentFilter(bool $as_query=false)
 
static getLPMemberships(int $usr_id, array $obj_ids, ?int $parent_ref_id=null, bool $mapped_ref_ids=false)
Get all objects where given user is member (from LP POV) 
 
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)
 
static getSubItemsStatusForUser(int $a_user_id, int $a_parent_obj_id, array $a_item_ids)
Get subitems status. 
 
static getObjectivesStatusForUser(int $a_user_id, int $a_obj_id, array $a_objective_ids)
 
setEnableTitle(bool $a_enabletitle)
 
fillHeaderCSV(ilCSVWriter $a_csv)
 
buildPath(array $ref_ids)
 
setSelectAllCheckbox(string $a_select_all_checkbox, bool $a_select_all_on_top=false)
 
searchObjects(array $filter, string $permission, ?array $preset_obj_ids=null, bool $a_check_lp_activation=true)
Search objects that match current filters. 
 
static getImagePath(string $img, string $module_path="", string $mode="output", bool $offline=false)
get image path (for images located in a template directory) 
 
setShowTemplates(bool $a_value)
 
static formatDate(ilDateTime $date, bool $a_skip_day=false, bool $a_include_wd=false, bool $include_seconds=false)
 
static getSCOsStatusForUser(int $a_user_id, int $a_parent_obj_id, array $a_sco_ids)
 
const LP_MODE_COLLECTION_MANUAL
 
static getInstance(int $variant=ilLPStatusIcons::ICON_VARIANT_DEFAULT, ?\ILIAS\UI\Renderer $renderer=null, ?\ILIAS\UI\Factory $factory=null)
 
bool $has_object_subitems
 
static resetToDefaults()
reset to defaults 
 
const LP_MODE_COLLECTION_TLT
 
setCell(int $a_row, int $a_col, $a_value, ?string $a_datatype=null)
Set cell value. 
 
__construct(?object $a_parent_obj, string $a_parent_cmd, ?ilObjUser $a_user=null, ?array $obj_ids=null, bool $details=false, ?int $mode=null, bool $personal_only=false, ?int $a_parent_id=null, ?int $a_parent_ref_id=null, ?int $lp_context=null)
Constructor. 
 
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
 
LP collection of repository objects. 
 
initBaseFilter(bool $a_split_learning_resources=false, bool $a_include_no_status_filter=true)
Init filter. 
 
setBold(string $a_coords)
Set cell(s) to bold. 
 
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. 
 
setDefaultOrderDirection(string $a_defaultorderdirection)
 
static _getStatusText(int $a_status, ?ilLanguage $a_lng=null)
Get status alt text. 
 
const LP_CONTEXT_ORG_UNIT
 
setTitle(string $a_title, string $a_icon="", string $a_icon_alt="")
 
static getObjectsStatusForUser(int $a_user_id, array $obj_refs)
 
setEnableNumInfo(bool $a_val)
 
const LP_MODE_COLLECTION_MOBS
 
setLimit(int $a_limit=0, int $a_default_limit=0)
 
fillRowExcel(ilExcel $a_excel, int &$a_row, array $a_set)
 
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)
 
filter(string $filter_id, $class_path, string $cmd, bool $activated=true, bool $expanded=true)
 
static setUseRelativeDates(bool $a_status)
set use relative dates 
 
static isObjectOffline(int $a_obj_id, string $a_type='')
 
showTimingsWarning(int $a_ref_id, int $a_user_id)
 
addMultiCommand(string $a_cmd, string $a_text)
 
static getInstance(int $obj_id)
 
setEnableHeader(bool $a_enableheader)
 
fillHeaderExcel(ilExcel $a_excel, int &$a_row)
 
numericOrdering(string $a_field)
 
static _mode2Text(int $a_mode)