19declare(strict_types=1);
25use Psr\Http\Message\ServerRequestInterface;
36 protected \ilLanguage
$lng;
39 protected Data\Factory
$df;
49 $this->
ctrl = $DIC->ctrl();
50 $this->
lng = $DIC->language();
51 $this->ui_fac =
$DIC->ui()->factory();
52 $this->request =
$DIC->http()->request();
53 $this->df =
new Data\Factory();
54 $this->skill_manager =
$DIC->skills()->internal()->manager();
55 $this->skill_management_access_manager = $this->skill_manager->getManagementAccessManager(
$ref_id);
56 $this->skill_tree_manager = $this->skill_manager->getTreeManager();
57 $this->skill_tree_factory =
$DIC->skills()->internal()->factory()->tree();
64 $data_retrieval = $this->getDataRetrieval();
66 $table = $this->ui_fac->table()
67 ->data($data_retrieval, $this->
lng->txt(
"skmg_skill_trees"), $columns)
69 ->withActions($actions)
70 ->withRequest($this->request);
78 "title" => $this->ui_fac->table()->column()->link($this->
lng->txt(
"title"))
86 $query_params_namespace = [
"skl_tree_table"];
88 $uri_delete = $this->df->uri(
89 ILIAS_HTTP_PATH .
"/" . $this->
ctrl->getLinkTargetByClass(
"ilobjskilltreegui",
"delete")
91 $url_builder_delete =
new UI\URLBuilder($uri_delete);
92 list($url_builder_delete, $action_parameter_token_delete, $row_id_token_delete) =
93 $url_builder_delete->acquireParameters(
94 $query_params_namespace,
100 if ($this->skill_management_access_manager->hasCreateTreePermission()) {
101 $actions[
"delete"] = $this->ui_fac->table()->action()->multi(
102 $this->
lng->txt(
"delete"),
103 $url_builder_delete->withParameter($action_parameter_token_delete,
"deleteTrees"),
111 protected function getDataRetrieval():
UI\
Component\Table\DataRetrieval
113 $data_retrieval =
new class (
131 public function getRows(
133 array $visible_column_ids,
136 mixed $additional_viewcontrol_data,
138 mixed $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(
149 mixed $additional_viewcontrol_data,
151 mixed $additional_parameters
153 return count($this->getRecords());
156 protected function getRecords(?Data\Range
$range =
null, ?Data\Order $order =
null): array
158 $items = array_filter(array_map(
160 $tree_access_manager = $this->skill_manager->getTreeAccessManager($skillTree->
getRefId());
161 if ($tree_access_manager->hasVisibleTreePermission()) {
168 iterator_to_array($this->skill_tree_manager->getTrees())
173 foreach ($items as $item) {
175 $tree_obj = $item[
"tree"];
176 $tree = $this->skill_tree_factory->getTreeById($tree_obj->getId());
177 $records[$i][
"tree_id"] = $tree->readRootId();
178 $this->
ctrl->setParameterByClass(
"ilobjskilltreegui",
"ref_id", $tree_obj->getRefId());
179 $records[$i][
"title"] = $this->ui_fac->link()->standard(
180 $tree_obj->getTitle(),
181 $this->ctrl->getLinkTargetByClass(
"ilobjskilltreegui",
"editSkills")
183 $this->
ctrl->clearParameterByClass(
"ilobjskilltreegui",
"ref_id");
188 $records = $this->orderRecords($records, $order);
192 $records = $this->limitRecords($records,
$range);
199 return $data_retrieval;
Builds a Color from either hex- or rgb values.
Both the subject and the direction need to be specified when expressing an order.
A simple class to express a naive range of whole positive numbers.
Skill internal manager service.
Access SkillManagementAccess $skill_management_access_manager
ServerRequestInterface $request
Service SkillInternalManagerService $skill_manager
Tree SkillTreeManager $skill_tree_manager
Tree SkillTreeFactory $skill_tree_factory
Class ilCtrl provides processing control methods.
Skill tree object in skill management (repository object class)
return['delivery_method'=> 'php',]
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...
if(!file_exists('../ilias.ini.php'))