ILIAS  trunk Revision v11.0_alpha-3011-gc6b235a2e85
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 34 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 56 of file class.LevelResourcesTable.php.

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

References ILIAS\Skill\Table\LevelResourcesTable\$base_skill_id, $DIC, $ref_id, 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().

+ 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 161 of file class.LevelResourcesTable.php.

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

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

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

+ 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 144 of file class.LevelResourcesTable.php.

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

References ILIAS\Repository\lng().

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

+ 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 78 of file class.LevelResourcesTable.php.

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

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

+ Here is the call graph for this function:

◆ getDataRetrieval()

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

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

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

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().

+ 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 46 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 36 of file class.LevelResourcesTable.php.

◆ $df

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

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

◆ $lng

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

◆ $query

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

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

◆ $request

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

Definition at line 40 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 47 of file class.LevelResourcesTable.php.

◆ $requested_table_rep_ref_ids

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

Definition at line 51 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 44 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: