19declare(strict_types=1);
29use ILIAS\GlobalScreen\GUI\Hasher;
76 private bool $write_access
78 $this->ui_factory = $this->pons->out()->ui()->factory();
79 $this->ui_renderer = $this->pons->out()->ui()->renderer();
80 $this->url_builder = $token_container->
builder();
81 $this->token = $token_container->
token();
86 foreach ($this->
repository->getTopItems() as $top_item) {
87 $id = $top_item[
'identification'];
92 $link = $this->ui_factory->link()->standard(
93 $item->getDefaultTitle(),
94 (
string) $this->url_builder
98 ->withParameter($this->token, $this->hash(
$id))
101 !$item->canHaveChildren()
104 $remark = $item->getStatus() !==
null ? $this->ui_renderer->render($item->getStatus()) :
'';
106 if (preg_match(
'/-[^-]*-/', $remark)) {
108 $substr = substr($remark, 1, -1);
109 $remark = $this->pons->i18n()->t($substr);
116 'active' => $item->isActivated(),
118 'sub_items' => ($item->canHaveChildren() ? $item->getAmountOfChildren() :
'-'),
119 'css_id' =>
"mm_" . $item->identification()->getInternalIdentifier(),
120 'type' => $item->getTypeForPresentation(),
121 'provider' => $item->getProviderNameForPresentation(),
123 )->withDisabledAction(
124 self::ACTION_ACTIVATE,
125 !$this->write_access || $item->isActivated()
126 )->withDisabledAction(
127 self::ACTION_DEACTIVATE,
128 !$this->write_access || !$item->isActivated(),
129 )->withDisabledAction(
131 !$this->write_access || !$item->isInterchangeable()
132 )->withDisabledAction(
134 !$this->write_access || !$item->isCustom()
135 )->withDisabledAction(
138 )->withDisabledAction(
139 self::ACTION_TRANSLATE,
141 )->withDisabledAction(
142 self::ACTION_EDIT_SUB_TEMS,
143 !$item->canHaveChildren()
144 )->withDisabledAction(
145 self::ACTION_DEACTIVATE,
146 !$item->canBeDeactivated(),
159 $this->pons->i18n()->t(
'subtab_topitems'),
161 'title' => $this->ui_factory->table()->column()->link(
162 $this->pons->i18n()->t(
'title',
'topitem'),
164 'active' => $this->ui_factory->table()->column()->boolean(
165 $this->pons->i18n()->t(
'active',
'topitem'),
166 $this->pons->out()->ok(),
167 $this->pons->out()->nok(),
169 'status' => $this->ui_factory->table()->column()->text(
170 $this->pons->i18n()->t(
'status',
'sub')
172 'sub_items' => $this->ui_factory->table()->column()->text(
173 $this->pons->i18n()->t(
'subentries',
'topitem'),
175 'type' => $this->ui_factory->table()->column()->text(
176 $this->pons->i18n()->t(
'type',
'topitem'),
178 'provider' => $this->ui_factory->table()->column()->text(
179 $this->pons->i18n()->t(
'provider',
'topitem'),
183 ->withRequest($this->pons->in()->request())
186 self::ACTION_EDIT_SUB_TEMS => $this->ui_factory->table()->action()->single(
187 $this->pons->i18n()->t(
'edit_sub_tems'),
188 $this->url_builder->withURI(
193 self::ACTION_EDIT => $this->ui_factory->table()->action()->single(
194 $this->pons->i18n()->t(
'edit'),
195 $this->url_builder->withURI(
200 self::ACTION_TRANSLATE => $this->ui_factory->table()->action()->single(
201 $this->pons->i18n()->t(
'translate'),
202 $this->url_builder->withURI(
203 $this->pons->flow()->getTranslationAsURI()
207 self::ACTION_ACTIVATE => $this->ui_factory->table()->action()->standard(
208 $this->pons->i18n()->t(
'activate'),
209 $this->url_builder->withURI(
214 self::ACTION_DEACTIVATE => $this->ui_factory->table()->action()->standard(
215 $this->pons->i18n()->t(
'deactivate'),
216 $this->url_builder->withURI(
221 self::ACTION_MOVE => $this->ui_factory->table()->action()->standard(
222 $this->pons->i18n()->t(
'move'),
223 $this->url_builder->withURI(
228 self::ACTION_DELETE => $this->ui_factory->table()->action()->standard(
229 $this->pons->i18n()->t(
'delete'),
230 $this->url_builder->withURI(
$id
plugin.php for ilComponentBuildPluginInfoObjectiveTest::testAddPlugins
Builds a Color from either hex- or rgb values.
__construct(private Pons $pons, TokenContainer $token_container, private ilMMItemRepository $repository, private bool $write_access)
getRows(OrderingRowBuilder $row_builder, array $visible_column_ids)
This is called by the (ordering-)table to retrieve rows; map data-records to rows using the $row_buil...
const ACTION_EDIT_SUB_TEMS
A component is the most general form of an entity in the UI.
buildOrderingRow(string $id, array $record)
This is how the factory for UI elements looks.
An entity that renders components to a string output.