ILIAS  release_9 Revision v9.13-25-g2c18ec4c24f
ILIAS\Skill\Table\LevelResourcesTable Class Reference
+ Collaboration diagram for ILIAS\Skill\Table\LevelResourcesTable:

Public Member Functions

 __construct (int $ref_id, int $base_skill_id, int $tref_id, int $requested_level_id)
 
 getComponent ()
 

Protected Member Functions

 getColumns ()
 
 getActions ()
 
 getDataRetrieval ()
 

Protected Attributes

ilCtrl $ctrl
 
ilLanguage $lng
 
UI Factory $ui_fac
 
UI Renderer $ui_ren
 
ServerRequestInterface $request
 
ArrayBasedRequestWrapper $query
 
Data Factory $df
 
ilTree $tree
 
Access SkillTreeAccess $tree_access_manager
 
Resource SkillResourcesManager $resource_manager
 
Service SkillAdminGUIRequest $admin_gui_request
 
string $requested_table_action = ""
 
array $requested_table_rep_ref_ids = []
 
int $base_skill_id = 0
 
int $tref_id = 0
 
int $requested_level_id = 0
 

Detailed Description

Author
Thomas Famula famul.nosp@m.a@le.nosp@m.ifos..nosp@m.de

Definition at line 35 of file class.LevelResourcesTable.php.

Constructor & Destructor Documentation

◆ __construct()

ILIAS\Skill\Table\LevelResourcesTable::__construct ( int  $ref_id,
int  $base_skill_id,
int  $tref_id,
int  $requested_level_id 
)

Definition at line 57 of file class.LevelResourcesTable.php.

References ILIAS\Skill\Table\LevelResourcesTable\$base_skill_id, $DIC, ILIAS\Skill\Table\LevelResourcesTable\$requested_level_id, ILIAS\Skill\Table\LevelResourcesTable\$tref_id, ILIAS\Repository\ctrl(), and ILIAS\Repository\lng().

Referenced by ILIAS\Skill\Table\LevelResourcesTable\getDataRetrieval().

58  {
59  global $DIC;
60 
61  $this->ctrl = $DIC->ctrl();
62  $this->lng = $DIC->language();
63  $this->ui_fac = $DIC->ui()->factory();
64  $this->ui_ren = $DIC->ui()->renderer();
65  $this->request = $DIC->http()->request();
66  $this->query = $DIC->http()->wrapper()->query();
67  $this->df = new Data\Factory();
68  $this->tree = $DIC->repositoryTree();
69  $this->tree_access_manager = $DIC->skills()->internal()->manager()->getTreeAccessManager($ref_id);
70  $this->resource_manager = $DIC->skills()->internal()->manager()->getResourceManager();
71  $this->admin_gui_request = $DIC->skills()->internal()->gui()->admin_request();
72  $this->requested_table_action = $this->admin_gui_request->getTableLevelResourcesAction();
73  $this->requested_table_rep_ref_ids = $this->admin_gui_request->getTableRepoRefIds();
74  $this->base_skill_id = $base_skill_id;
75  $this->tref_id = $tref_id;
76  $this->requested_level_id = $requested_level_id;
77  }
global $DIC
Definition: feed.php:28
$ref_id
Definition: ltiauth.php:67
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

Member Function Documentation

◆ getActions()

ILIAS\Skill\Table\LevelResourcesTable::getActions ( )
protected

Definition at line 162 of file class.LevelResourcesTable.php.

References ILIAS\Repository\ctrl(), and ILIAS\Repository\lng().

Referenced by ILIAS\Skill\Table\LevelResourcesTable\getComponent().

162  : array
163  {
164  $query_params_namespace = ["skl_level_resources_table"];
165 
166  $uri_suggested = $this->df->uri(
167  ILIAS_HTTP_PATH . "/" . $this->ctrl->getLinkTargetByClass("ilbasicskillgui", "saveResourcesAsSuggested")
168  );
169  $url_builder_suggested = new UI\URLBuilder($uri_suggested);
170  list($url_builder_suggested, $action_parameter_token_suggested, $row_id_token_suggested) =
171  $url_builder_suggested->acquireParameters(
172  $query_params_namespace,
173  "action",
174  "rep_ref_ids"
175  );
176 
177  $uri_not_suggested = $this->df->uri(
178  ILIAS_HTTP_PATH . "/" . $this->ctrl->getLinkTargetByClass("ilbasicskillgui", "saveResourcesAsNotSuggested")
179  );
180  $url_builder_not_suggested = new UI\URLBuilder($uri_not_suggested);
181  list($url_builder_not_suggested, $action_parameter_token_not_suggested, $row_id_token_not_suggested) =
182  $url_builder_not_suggested->acquireParameters(
183  $query_params_namespace,
184  "action",
185  "rep_ref_ids"
186  );
187 
188  $uri_trigger = $this->df->uri(
189  ILIAS_HTTP_PATH . "/" . $this->ctrl->getLinkTargetByClass("ilbasicskillgui", "saveResourcesAsTrigger")
190  );
191  $url_builder_trigger = new UI\URLBuilder($uri_trigger);
192  list($url_builder_trigger, $action_parameter_token_trigger, $row_id_token_trigger) =
193  $url_builder_trigger->acquireParameters(
194  $query_params_namespace,
195  "action",
196  "rep_ref_ids"
197  );
198 
199  $uri_no_trigger = $this->df->uri(
200  ILIAS_HTTP_PATH . "/" . $this->ctrl->getLinkTargetByClass("ilbasicskillgui", "saveResourcesAsNoTrigger")
201  );
202  $url_builder_no_trigger = new UI\URLBuilder($uri_no_trigger);
203  list($url_builder_no_trigger, $action_parameter_token_no_trigger, $row_id_token_no_trigger) =
204  $url_builder_no_trigger->acquireParameters(
205  $query_params_namespace,
206  "action",
207  "rep_ref_ids"
208  );
209 
210  $url_builder_remove = new UI\URLBuilder($this->df->uri($this->request->getUri()->__toString()));
211  list($url_builder_remove, $action_parameter_token_remove, $row_id_token_remove) =
212  $url_builder_remove->acquireParameters(
213  $query_params_namespace,
214  "action",
215  "rep_ref_ids"
216  );
217 
218  $actions = [];
219  if ($this->tree_access_manager->hasManageCompetencesPermission()) {
220  $actions = [
221  "setSuggested" => $this->ui_fac->table()->action()->standard(
222  $this->lng->txt("skmg_set_as_suggested"),
223  $url_builder_suggested->withParameter($action_parameter_token_suggested, "setSuggested"),
224  $row_id_token_suggested
225  ),
226  "unsetSuggested" => $this->ui_fac->table()->action()->standard(
227  $this->lng->txt("skmg_set_as_no_suggested"),
228  $url_builder_not_suggested->withParameter($action_parameter_token_not_suggested, "unsetSuggested"),
229  $row_id_token_not_suggested
230  ),
231  "setTrigger" => $this->ui_fac->table()->action()->standard(
232  $this->lng->txt("skmg_set_as_lp_trigger"),
233  $url_builder_trigger->withParameter($action_parameter_token_trigger, "setTrigger"),
234  $row_id_token_trigger
235  ),
236  "unsetTrigger" => $this->ui_fac->table()->action()->standard(
237  $this->lng->txt("skmg_set_as_no_lp_trigger"),
238  $url_builder_no_trigger->withParameter($action_parameter_token_no_trigger, "unsetTrigger"),
239  $row_id_token_no_trigger
240  ),
241  "remove" => $this->ui_fac->table()->action()->multi(
242  $this->lng->txt("remove"),
243  $url_builder_remove->withParameter($action_parameter_token_remove, "removeResources"),
244  $row_id_token_remove
245  )
246  ->withAsync()
247  ];
248  }
249 
250  return $actions;
251  }
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getColumns()

ILIAS\Skill\Table\LevelResourcesTable::getColumns ( )
protected

Definition at line 145 of file class.LevelResourcesTable.php.

References ILIAS\Repository\lng().

Referenced by ILIAS\Skill\Table\LevelResourcesTable\getComponent().

145  : array
146  {
147  $columns = [
148  "type" => $this->ui_fac->table()->column()->statusIcon($this->lng->txt("type"))
149  ->withIsSortable(false),
150  "title" => $this->ui_fac->table()->column()->text($this->lng->txt("title")),
151  "path" => $this->ui_fac->table()->column()->text($this->lng->txt("path"))
152  ->withIsSortable(false),
153  "suggested" => $this->ui_fac->table()->column()->text($this->lng->txt("skmg_suggested"))
154  ->withIsSortable(false),
155  "lp_trigger" => $this->ui_fac->table()->column()->text($this->lng->txt("skmg_lp_triggers_level"))
156  ->withIsSortable(false),
157  ];
158 
159  return $columns;
160  }
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getComponent()

ILIAS\Skill\Table\LevelResourcesTable::getComponent ( )

Definition at line 79 of file class.LevelResourcesTable.php.

References $id, $resources, ilObject\_getIcon(), ilObject\_lookupObjId(), ilObject\_lookupTitle(), ilObject\_lookupType(), ILIAS\Repository\ctrl(), exit, ILIAS\Skill\Table\LevelResourcesTable\getActions(), ILIAS\Skill\Table\LevelResourcesTable\getColumns(), ILIAS\Skill\Table\LevelResourcesTable\getDataRetrieval(), and ILIAS\Repository\lng().

79  : UI\Component\Table\Data
80  {
81  $columns = $this->getColumns();
82  $actions = $this->getActions();
83  $data_retrieval = $this->getDataRetrieval();
84 
85  if ($this->requested_table_action === "removeResources") {
86  $items = [];
87  foreach ($this->requested_table_rep_ref_ids as $id) {
88  if ($id === "ALL_OBJECTS") {
89  $resources = $this->resource_manager->getResourcesOfLevel(
90  $this->base_skill_id,
91  $this->tref_id,
92  $this->requested_level_id
93  );
94  foreach ($resources as $resource) {
95  $obj_id = \ilObject::_lookupObjId($resource->getRepoRefId());
96  $obj_type = \ilObject::_lookupType($obj_id);
97  $items[] = $this->ui_fac->modal()->interruptiveItem()->standard(
98  (string) $resource->getRepoRefId(),
99  \ilObject::_lookupTitle($obj_id),
100  $this->ui_fac->image()->standard(
101  \ilObject::_getIcon($obj_id, "small", $obj_type),
102  $this->lng->txt("icon") . " " . $this->lng->txt("obj_" . $obj_type)
103  )
104  );
105  }
106  } else {
107  $obj_id = \ilObject::_lookupObjId((int) $id);
108  $obj_type = \ilObject::_lookupType($obj_id);
109  $items[] = $this->ui_fac->modal()->interruptiveItem()->standard(
110  $id,
111  \ilObject::_lookupTitle($obj_id),
112  $this->ui_fac->image()->standard(
113  \ilObject::_getIcon($obj_id, "small", $obj_type),
114  $this->lng->txt("icon") . " " . $this->lng->txt("obj_" . $obj_type)
115  )
116  );
117  }
118  }
119  echo($this->ui_ren->renderAsync([
120  $this->ui_fac->modal()->interruptive(
121  "",
122  empty($items) ? $this->lng->txt("no_checkbox") : $this->lng->txt("skmg_confirm_level_resources_removal"),
123  $this->ctrl->getFormActionByClass("ilbasicskillgui", "removeLevelResources")
124  )
125  ->withAffectedItems($items)
126  ->withActionButtonLabel(empty($items) ? $this->lng->txt("ok") : $this->lng->txt("delete"))
127  ]));
128  exit();
129  }
130 
131  $table = $this->ui_fac->table()
132  ->data($this->lng->txt("skmg_suggested_resources"), $columns, $data_retrieval)
133  ->withId(
134  self::class . "_" .
135  $this->base_skill_id . "_" .
136  $this->tref_id . "_" .
137  $this->requested_level_id
138  )
139  ->withActions($actions)
140  ->withRequest($this->request);
141 
142  return $table;
143  }
exit
Definition: login.php:29
$resources
Definition: ltiservices.php:68
static _getIcon(int $obj_id=0, string $size="big", string $type="", bool $offline=false)
Get icon for repository item.
static _lookupObjId(int $ref_id)
static _lookupTitle(int $obj_id)
$id
plugin.php for ilComponentBuildPluginInfoObjectiveTest::testAddPlugins
Definition: plugin.php:23
static _lookupType(int $id, bool $reference=false)
+ Here is the call graph for this function:

◆ getDataRetrieval()

ILIAS\Skill\Table\LevelResourcesTable::getDataRetrieval ( )
protected

Definition at line 253 of file class.LevelResourcesTable.php.

References ILIAS\Skill\Table\LevelResourcesTable\$base_skill_id, ILIAS\Skill\Table\LevelResourcesTable\$lng, $path, ILIAS\UI\Implementation\Component\Table\$range, $ref_id, ILIAS\Skill\Table\LevelResourcesTable\$requested_level_id, ILIAS\Skill\Table\LevelResourcesTable\$resource_manager, $resources, ILIAS\Skill\Table\LevelResourcesTable\$tree, ILIAS\Skill\Table\LevelResourcesTable\$tref_id, ILIAS\Skill\Table\LevelResourcesTable\$ui_fac, ILIAS\Skill\Table\LevelResourcesTable\$ui_ren, ILIAS\Skill\Table\LevelResourcesTable\__construct(), ilObject\_lookupObjId(), ilObject\_lookupTitle(), ilObject\_lookupType(), ilObjectLP\isSupportedObjectType(), and ILIAS\Repository\lng().

Referenced by ILIAS\Skill\Table\LevelResourcesTable\getComponent().

253  : UI\Component\Table\DataRetrieval
254  {
255  $data_retrieval = new class (
256  $this->lng,
259  $this->tree,
264  ) implements UI\Component\Table\DataRetrieval {
265  use TableRecords;
266 
267  public function __construct(
268  protected \ilLanguage $lng,
269  protected UI\Factory $ui_fac,
270  protected UI\Renderer $ui_ren,
271  protected \ilTree $tree,
272  protected Resource\SkillResourcesManager $resource_manager,
273  protected int $base_skill_id,
274  protected int $tref_id,
275  protected int $level_id
276  ) {
277  }
278 
279  public function getRows(
280  UI\Component\Table\DataRowBuilder $row_builder,
281  array $visible_column_ids,
282  Data\Range $range,
283  Data\Order $order,
284  ?array $filter_data,
285  ?array $additional_parameters
286  ): \Generator {
287  $records = $this->getRecords($range, $order);
288  foreach ($records as $idx => $record) {
289  $row_id = (string) $record["rep_ref_id"];
290 
291  yield $row_builder->buildDataRow($row_id, $record)
292  ->withDisabledAction("setSuggested", ($record["suggested"] === $this->lng->txt("yes")))
293  ->withDisabledAction("unsetSuggested", ($record["suggested"] === $this->lng->txt("no")))
294  ->withDisabledAction("setTrigger", ($record["lp_trigger"] === $this->lng->txt("yes")))
295  ->withDisabledAction("setTrigger", ($record["lp_trigger"] === $this->lng->txt("not_available")))
296  ->withDisabledAction("unsetTrigger", ($record["lp_trigger"] === $this->lng->txt("no")))
297  ->withDisabledAction("unsetTrigger", ($record["lp_trigger"] === $this->lng->txt("not_available")));
298  }
299  }
300 
301  public function getTotalRowCount(
302  ?array $filter_data,
303  ?array $additional_parameters
304  ): ?int {
305  return count($this->getRecords());
306  }
307 
308  protected function getRecords(Data\Range $range = null, Data\Order $order = null): array
309  {
310  $resources = $this->resource_manager->getResourcesOfLevel(
311  $this->base_skill_id,
312  $this->tref_id,
313  $this->level_id
314  );
315 
316  $records = [];
317  $i = 0;
318  foreach ($resources as $resource) {
319  $ref_id = $resource->getRepoRefId();
320  $obj_id = \ilObject::_lookupObjId($ref_id);
321  $obj_type = \ilObject::_lookupType($obj_id);
322 
323  $records[$i]["rep_ref_id"] = $ref_id;
324  $records[$i]["title"] = \ilObject::_lookupTitle($obj_id);
325  $records[$i]["suggested"] = $resource->getImparting()
326  ? $this->lng->txt("yes")
327  : $this->lng->txt("no");
328 
329  if (!\ilObjectLP::isSupportedObjectType($obj_type)) {
330  $trigger = $this->lng->txt("not_available");
331  } elseif ($resource->getTrigger()) {
332  $trigger = $this->lng->txt("yes");
333  } else {
334  $trigger = $this->lng->txt("no");
335  }
336  $records[$i]["lp_trigger"] = $trigger;
337 
338  $icon = $this->ui_fac->symbol()->icon()->standard(
339  $obj_type,
340  $this->lng->txt("icon") . " " . $this->lng->txt($obj_type),
341  "medium"
342  );
343  $records[$i]["type"] = $icon;
344 
345  $path = $this->tree->getPathFull($ref_id);
346  $path_items = [];
347  foreach ($path as $p) {
348  if ($p["type"] != "root" && $p["child"] != $ref_id) {
349  $path_items[] = $p["title"];
350  }
351  }
352  $records[$i]["path"] = implode(" > ", $path_items);
353 
354  $i++;
355  }
356 
357  if ($order) {
358  $records = $this->orderRecords($records, $order);
359  }
360 
361  if ($range) {
362  $records = $this->limitRecords($records, $range);
363  }
364 
365  return $records;
366  }
367  };
368 
369  return $data_retrieval;
370  }
$resources
Definition: ltiservices.php:68
static isSupportedObjectType(string $type)
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
Resource SkillResourcesManager $resource_manager
$path
Definition: ltiservices.php:32
static _lookupObjId(int $ref_id)
__construct(int $ref_id, int $base_skill_id, int $tref_id, int $requested_level_id)
$ref_id
Definition: ltiauth.php:67
static _lookupTitle(int $obj_id)
static _lookupType(int $id, bool $reference=false)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

Field Documentation

◆ $admin_gui_request

Service SkillAdminGUIRequest ILIAS\Skill\Table\LevelResourcesTable::$admin_gui_request
protected

Definition at line 47 of file class.LevelResourcesTable.php.

◆ $base_skill_id

int ILIAS\Skill\Table\LevelResourcesTable::$base_skill_id = 0
protected

◆ $ctrl

ilCtrl ILIAS\Skill\Table\LevelResourcesTable::$ctrl
protected

Definition at line 37 of file class.LevelResourcesTable.php.

◆ $df

Data Factory ILIAS\Skill\Table\LevelResourcesTable::$df
protected

Definition at line 43 of file class.LevelResourcesTable.php.

◆ $lng

ilLanguage ILIAS\Skill\Table\LevelResourcesTable::$lng
protected

◆ $query

ArrayBasedRequestWrapper ILIAS\Skill\Table\LevelResourcesTable::$query
protected

Definition at line 42 of file class.LevelResourcesTable.php.

◆ $request

ServerRequestInterface ILIAS\Skill\Table\LevelResourcesTable::$request
protected

Definition at line 41 of file class.LevelResourcesTable.php.

◆ $requested_level_id

int ILIAS\Skill\Table\LevelResourcesTable::$requested_level_id = 0
protected

◆ $requested_table_action

string ILIAS\Skill\Table\LevelResourcesTable::$requested_table_action = ""
protected

Definition at line 48 of file class.LevelResourcesTable.php.

◆ $requested_table_rep_ref_ids

array ILIAS\Skill\Table\LevelResourcesTable::$requested_table_rep_ref_ids = []
protected

Definition at line 52 of file class.LevelResourcesTable.php.

◆ $resource_manager

Resource SkillResourcesManager ILIAS\Skill\Table\LevelResourcesTable::$resource_manager
protected

◆ $tree

ilTree ILIAS\Skill\Table\LevelResourcesTable::$tree
protected

◆ $tree_access_manager

Access SkillTreeAccess ILIAS\Skill\Table\LevelResourcesTable::$tree_access_manager
protected

Definition at line 45 of file class.LevelResourcesTable.php.

◆ $tref_id

int ILIAS\Skill\Table\LevelResourcesTable::$tref_id = 0
protected

◆ $ui_fac

UI Factory ILIAS\Skill\Table\LevelResourcesTable::$ui_fac
protected

◆ $ui_ren

UI Renderer ILIAS\Skill\Table\LevelResourcesTable::$ui_ren
protected

The documentation for this class was generated from the following file: