30 protected \ILIAS\ItemGroup\InternalGUIService
$gui;
37 int $a_id_type = self::REPOSITORY_NODE_ID,
38 int $a_parent_node_id = 0
43 $this->
lng = $DIC->language();
44 $this->
tabs = $DIC->tabs();
45 $this->
access = $DIC->access();
46 $this->tpl = $DIC[
"tpl"];
47 $this->
ctrl = $DIC->ctrl();
48 $this->
locator = $DIC[
"ilLocator"];
49 $this->tree = $DIC->repositoryTree();
50 $this->
help = $DIC[
"ilHelp"];
51 $this->gui = $DIC->itemGroup()->internal()->gui();
52 $this->ig_request = $this->gui
61 $this->
ctrl->saveParameter($this, array(
"ref_id"));
72 $next_class = $this->
ctrl->getNextClass($this);
74 switch ($next_class) {
75 case 'ilpermissiongui':
77 $ilTabs->activateTab(
"perm_settings");
80 $this->
ctrl->forwardCommand($perm_gui);
83 case "ilcommonactiondispatchergui":
85 $this->
ctrl->forwardCommand($gui);
88 case 'ilobjecttranslationgui':
93 $transgui->setEnableFallbackLanguage(
false);
94 $transgui->supportContentTranslation(
false);
95 $transgui->hideDescription(
true);
96 $this->
ctrl->forwardCommand($transgui);
99 case 'ildidactictemplategui':
102 $this->
ctrl->setReturn($this,
'edit');
104 $this->
ctrl->forwardCommand($did);
108 $cmd = $this->
ctrl->getCmd(
"listMaterials");
121 if (is_object($this->
object) && $ilAccess->checkAccess(
"write",
"", $this->object->getRefId())) {
135 $pres->setTitle($this->
lng->txt(
'obj_presentation'));
140 $cb->setInfo($this->
lng->txt(
"itgr_show_title_info"));
146 $si->
setInfo($this->
lng->txt(
"itgr_behaviour_info"));
147 $si->setOptions($options);
148 $cb->addSubItem($si);
154 $std_list->
setInfo($this->
lng->txt(
'itgr_list_default_info'));
155 $lpres->addOption($std_list);
158 $lpres->addOption($item_list);
161 $lpres->addOption($tile_view);
166 $this->
lng->loadLanguageModule(
"cont");
167 foreach ($dummy_container->getTileSizes() as $key =>
$txt) {
171 $tile_view->addSubItem($si);
172 $si->setValue($this->
object->getTileSize());
174 $lpres->setValue($this->
object->getListPresentation());
181 $this->error->raiseError($this->
lng->txt(
"msg_no_perm_write"), $this->error->MESSAGE);
184 $this->tabs_gui->activateTab(
"settings");
189 $form->setValuesByArray($values,
true);
194 $this->tpl->setContent($form->getHTML());
206 if ($new_tpl_id !== $current_tpl_id) {
207 $this->
ctrl->setParameterByClass(ilDidacticTemplateGUI::class,
"didactic_type", $new_tpl_id);
208 $this->
ctrl->redirectByClass(ilDidacticTemplateGUI::class,
"confirmTemplateSwitch");
211 parent::afterUpdate();
222 $ilTabs->activateTab(
"materials");
226 $parent_gui_class =
'ilObj' . $this->obj_definition->getClassName($parent_type) .
'GUI';
227 $this->
ctrl->setParameterByClass($parent_gui_class,
'ref_id', $parent_ref_id);
236 $this->
ctrl->clearParameterByClass($parent_gui_class,
'ref_id');
244 $parent_ref_id = $this->tree->getParentId($this->
object->getRefId());
246 $parent_gui_class =
'ilObj' . $this->obj_definition->getClassName($parent_type) .
'GUI';
247 $parent_gui =
new $parent_gui_class(
'', $parent_ref_id,
true,
false);
248 $types = $parent_gui->getCreatableObjectTypes();
249 foreach (array_merge([
'itgr',
'sess' ], $this->obj_definition->getSideBlockTypes()) as $type_to_remove) {
250 unset($types[$type_to_remove]);
262 $items = $this->ig_request->
getItems();
263 $item_group_items->setItems($items);
264 $item_group_items->update();
266 $this->tpl->setOnScreenMessage(
'success', $this->
lng->txt(
'msg_obj_modified'),
true);
267 $ilCtrl->redirect($this,
"listMaterials");
272 $this->tpl->loadStandardTemplate();
283 $ilHelp->setScreenIdComponent(
"itgr");
289 $ilTabs->setBackTarget(
290 $lng->
txt(
'obj_' . $parent_type),
291 ilLink::_getLink($parent_ref_id),
295 if ($ilAccess->checkAccess(
"write",
"", $this->object->getRefId())) {
299 $this->
ctrl->getLinkTarget($this,
'listMaterials')
305 $this->
ctrl->getLinkTarget($this,
'edit')
309 if ($ilAccess->checkAccess(
"edit_permission",
"", $this->object->getRefId())) {
313 $this->
ctrl->getLinkTargetByClass(array(get_class($this),
'ilpermissiongui'),
"perm")
320 $this->tabs_gui->addSubTab(
322 $this->
lng->txt(
"settings"),
323 $this->
ctrl->getLinkTarget($this,
"edit")
326 $this->tabs_gui->addSubTab(
328 $this->
lng->txt(
"obj_multilinguality"),
329 $this->
ctrl->getLinkTargetByClass(
"ilobjecttranslationgui",
"")
331 $this->tabs_gui->activateTab(
"settings");
332 $this->tabs_gui->activateSubTab($active_tab);
335 public static function _goto(
string $a_target): void
338 $main_tpl = $DIC->ui()->mainTemplate();
340 $ilAccess = $DIC->access();
341 $lng = $DIC->language();
342 $tree = $DIC->repositoryTree();
344 $targets = explode(
'_', $a_target);
348 if ($ilAccess->checkAccess(
"read",
"", $par_id)) {
352 $main_tpl->setOnScreenMessage(
'failure', sprintf(
353 $lng->
txt(
"msg_no_perm_read_item"),
367 $ref_id = $this->
object->getRefId();
370 if ($ilAccess->checkAccess(
"read",
"", $par_id)) {
392 $a_values[
"show_title"] = !$this->
object->getHideTitle();
393 $a_values[
"behaviour"] = $this->
object->getBehaviour();
394 $a_values[
"list_presentation"] = $this->
object->getListPresentation();
395 $a_values[
"tile_size"] = $this->
object->getTileSize();
400 $this->
object->setHideTitle(!$form->
getInput(
"show_title"));
401 $behaviour = ($form->
getInput(
"show_title"))
404 $this->
object->setBehaviour($behaviour);
405 $this->
object->setListPresentation($form->
getInput(
"list_presentation"));
406 $this->
object->setTileSize($form->
getInput(
"tile_size"));
415 $form_fields[
'title'] = $this->ui_factory->input()->field()->text($this->
lng->txt(
'title'))
417 ->withRequired(
true);
421 if ($didactic_templates !==
null) {
422 $form_fields[
'didactic_templates'] = $didactic_templates;
425 return $this->ui_factory->input()->container()->form()->standard(
426 $this->
ctrl->getFormAction($this,
'save'),
428 )->withSubmitLabel($this->
lng->txt($new_type .
'_add'));
435 $this->error->raiseError($this->
lng->txt(
"no_create_permission"), $this->error->MESSAGE);
438 $this->
lng->loadLanguageModule($this->requested_new_type);
439 $this->
ctrl->setParameter($this,
"new_type", $this->requested_new_type);
442 $data = $form->withRequest($this->request)->getData();
448 $this->
ctrl->setParameter($this,
'new_type',
'');
451 $new_obj->setType($this->requested_new_type);
452 $new_obj->processAutoRating();
453 $new_obj->setTitle(
$data[
'title']);
458 $dtpl =
$data[
'didactic_templates'] ??
null;
459 if ($dtpl !== null) {
461 $new_obj->applyDidacticTemplate($dtpl_id);
464 $this->
ctrl->setParameterByClass(self::class,
'ref_id', $new_obj->getRefId());
465 $this->tpl->setOnScreenMessage(
'success', $this->
lng->txt(
"object_added"),
true);
466 $this->
ctrl->redirectByClass(self::class,
"listMaterials");
This class represents an option in a radio group.
ILIAS ItemGroup InternalGUIService $gui
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
txt(string $a_topic, string $a_default_lang_fallback_mod="")
gets the text for a given topic if the topic is not in the list, the topic itself with "-" will be re...
New implementation of ilObjectGUI.
getCreationFormsHTML(StandardForm|ilPropertyFormGUI|array $form)
getCreatableObjectTypes()
Interface Observer Contains several chained tasks and infos about them.
getDidacticTemplateVar(string $type)
Get didactic template setting from creation screen.
setContent(string $a_html)
Sets content for standard template.
initEditCustomForm(ilPropertyFormGUI $form)
setSettingsSubTabs(string $active_tab="general")
prepareOutput(bool $show_sub_objects=true)
loadLanguageModule(string $a_module)
Load language module.
getEditFormCustomValues(array &$a_values)
Get edit form values (custom part)
addExternalEditFormCustom(ilPropertyFormGUI $form)
static _lookupObjId(int $ref_id)
while($session_entry=$r->fetchRow(ilDBConstants::FETCHMODE_ASSOC)) return null
static lookupTemplateId(int $a_ref_id)
addItem(int $a_item_ref_id)
checkPermissionBool(string $perm, string $cmd="", string $type="", ?int $node_id=null)
static _lookupTitle(int $obj_id)
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
initDidacticTemplate(ilPropertyFormGUI $form)
ilGlobalTemplateInterface $tpl
static getAll()
Get all behaviours.
putObjectInTree(ilObject $obj, ?int $parent_node_id=null)
Add object to tree at given position.
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...
initCreateForm(string $new_type)
getParentId(int $a_node_id)
get parent id of given node
checkPermission(string $perm, string $cmd="", string $type="", ?int $ref_id=null)
static redirect(string $a_script)
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
buildAddNewItemElements(array $subtypes, string $create_target_class=ilRepositoryGUI::class, ?int $redirect_target_ref_id=null,)
Render add new item selector.
User Interface class for item groups.
__construct(Container $dic, ilPlugin $plugin)
updateCustom(ilPropertyFormGUI $form)
__construct(int $a_id=0, int $a_id_type=self::REPOSITORY_NODE_ID, int $a_parent_node_id=0)
didacticTemplatesToForm()
static _lookupType(int $id, bool $reference=false)
static _goto(string $a_target)
parseDidacticTemplateVar(string $var, string $type)
exit
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
addHeaderAction()
Add header action menu.
afterSaveCallback(ilObject $a_obj)
Custom callback after object is created (in parent container)
StandardGUIRequest $ig_request
static getInstanceFromAjaxCall()
(Re-)Build instance from ajax call
GUI class for object translation handling.
static _gotoRepositoryRoot(bool $raise_error=false)
Goto repository root.