3 declare(strict_types=1);
37 protected \ilLanguage
$lng;
50 $this->
ctrl = $DIC->ctrl();
51 $this->
lng = $DIC->language();
52 $this->ui_fac = $DIC->ui()->factory();
53 $this->request = $DIC->http()->request();
55 $this->skill_manager = $DIC->skills()->internal()->manager();
56 $this->skill_management_access_manager = $this->skill_manager->getManagementAccessManager($ref_id);
57 $this->skill_tree_manager = $this->skill_manager->getTreeManager();
58 $this->skill_tree_factory = $DIC->skills()->internal()->factory()->tree();
65 $data_retrieval = $this->getDataRetrieval();
67 $table = $this->ui_fac->table()
68 ->data($this->
lng->txt(
"skmg_skill_trees"), $columns, $data_retrieval)
70 ->withActions($actions)
71 ->withRequest($this->request);
79 "title" => $this->ui_fac->table()->column()->text($this->
lng->txt(
"title"))
87 $query_params_namespace = [
"skl_tree_table"];
89 $uri_edit = $this->df->uri(
90 ILIAS_HTTP_PATH .
"/" . $this->
ctrl->getLinkTargetByClass(
"ilobjskilltreegui",
"editSkills")
92 $url_builder_edit =
new UI\URLBuilder($uri_edit);
93 list($url_builder_edit, $action_parameter_token_edit, $row_id_token_edit) =
94 $url_builder_edit->acquireParameters(
95 $query_params_namespace,
100 $uri_delete = $this->df->uri(
101 ILIAS_HTTP_PATH .
"/" . $this->
ctrl->getLinkTargetByClass(
"ilobjskilltreegui",
"delete")
103 $url_builder_delete =
new UI\URLBuilder($uri_delete);
104 list($url_builder_delete, $action_parameter_token_delete, $row_id_token_delete) =
105 $url_builder_delete->acquireParameters(
106 $query_params_namespace,
112 "edit" => $this->ui_fac->table()->action()->single(
113 $this->
lng->txt(
"edit"),
114 $url_builder_edit->withParameter($action_parameter_token_edit,
"editTree"),
118 if ($this->skill_management_access_manager->hasCreateTreePermission()) {
119 $actions[
"delete"] = $this->ui_fac->table()->action()->multi(
120 $this->
lng->txt(
"delete"),
121 $url_builder_delete->withParameter($action_parameter_token_delete,
"deleteTrees"),
131 $data_retrieval =
new class (
145 public function getRows(
147 array $visible_column_ids,
151 ?array $additional_parameters
153 $records = $this->getRecords($range, $order);
154 foreach ($records as $idx => $record) {
155 $row_id = (string) $record[
"tree_id"];
157 yield $row_builder->buildDataRow($row_id, $record);
161 public function getTotalRowCount(
163 ?array $additional_parameters
165 return count($this->getRecords());
168 protected function getRecords(
Data\
Range $range = null,
Data\
Order $order = null): array
170 $items = array_filter(array_map(
172 $tree_access_manager = $this->skill_manager->getTreeAccessManager($skillTree->
getRefId());
173 if ($tree_access_manager->hasVisibleTreePermission()) {
180 iterator_to_array($this->skill_tree_manager->getTrees())
185 foreach ($items as $item) {
187 $tree_obj = $item[
"tree"];
188 $tree = $this->skill_tree_factory->getTreeById($tree_obj->getId());
189 $records[$i][
"tree_id"] = $tree->readRootId();
190 $records[$i][
"title"] = $tree_obj->getTitle();
195 $records = $this->orderRecords($records, $order);
199 $records = $this->limitRecords($records, $range);
206 return $data_retrieval;
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
Service SkillInternalManagerService $skill_manager
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
Both the subject and the direction need to be specified when expressing an order. ...
Access SkillManagementAccess $skill_management_access_manager
Skill internal manager service.
Tree SkillTreeFactory $skill_tree_factory
ServerRequestInterface $request
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
A simple class to express a range of whole positive numbers.
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
Tree SkillTreeManager $skill_tree_manager
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...