3 declare(strict_types=1);
37 protected \ilLanguage
$lng;
40 protected Data\Factory
$df;
50 $this->
ctrl = $DIC->ctrl();
51 $this->
lng = $DIC->language();
52 $this->ui_fac = $DIC->ui()->factory();
53 $this->request = $DIC->http()->request();
54 $this->df =
new Data\Factory();
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()->link($this->
lng->txt(
"title"))
87 $query_params_namespace = [
"skl_tree_table"];
89 $uri_delete = $this->df->uri(
90 ILIAS_HTTP_PATH .
"/" . $this->
ctrl->getLinkTargetByClass(
"ilobjskilltreegui",
"delete")
92 $url_builder_delete =
new UI\URLBuilder($uri_delete);
93 list($url_builder_delete, $action_parameter_token_delete, $row_id_token_delete) =
94 $url_builder_delete->acquireParameters(
95 $query_params_namespace,
101 if ($this->skill_management_access_manager->hasCreateTreePermission()) {
102 $actions[
"delete"] = $this->ui_fac->table()->action()->multi(
103 $this->
lng->txt(
"delete"),
104 $url_builder_delete->withParameter($action_parameter_token_delete,
"deleteTrees"),
112 protected function getDataRetrieval(): UI\Component\Table\DataRetrieval
114 $data_retrieval =
new class (
124 protected Service\SkillInternalManagerService $skill_manager,
125 protected Tree\SkillTreeManager $skill_tree_manager,
126 protected Tree\SkillTreeFactory $skill_tree_factory,
132 public function getRows(
134 array $visible_column_ids,
138 ?array $additional_parameters
140 $records = $this->getRecords($range, $order);
141 foreach ($records as $idx => $record) {
142 $row_id = (string) $record[
"tree_id"];
144 yield $row_builder->buildDataRow($row_id, $record);
148 public function getTotalRowCount(
150 ?array $additional_parameters
152 return count($this->getRecords());
155 protected function getRecords(
Data\Range $range = null,
Data\
Order $order = null): array
159 $tree_access_manager = $this->skill_manager->getTreeAccessManager($skillTree->
getRefId());
160 if ($tree_access_manager->hasVisibleTreePermission()) {
167 iterator_to_array($this->skill_tree_manager->getTrees())
172 foreach ($items as $item) {
174 $tree_obj = $item[
"tree"];
175 $tree = $this->skill_tree_factory->getTreeById($tree_obj->getId());
176 $records[$i][
"tree_id"] = $tree->readRootId();
177 $this->
ctrl->setParameterByClass(
"ilobjskilltreegui",
"ref_id", $tree_obj->getRefId());
178 $records[$i][
"title"] = $this->ui_fac->link()->standard(
179 $tree_obj->getTitle(),
180 $this->
ctrl->getLinkTargetByClass(
"ilobjskilltreegui",
"editSkills")
182 $this->
ctrl->clearParameterByClass(
"ilobjskilltreegui",
"ref_id");
187 $records = $this->orderRecords($records, $order);
191 $records = $this->limitRecords($records, $range);
198 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...
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. ...
Service SkillInternalManagerService $skill_manager
This is how the factory for UI elements looks.
Tree SkillTreeManager $skill_tree_manager
Access SkillManagementAccess $skill_management_access_manager
ServerRequestInterface $request
Tree SkillTreeFactory $skill_tree_factory
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...