ILIAS  release_8 Revision v8.24
class.ilObjStudyProgrammeGUI.php
Go to the documentation of this file.
1<?php
2
3declare(strict_types=1);
4
24
42{
43 private const TAB_VIEW_CONTENT = "view_content";
44 private const SUBTAB_VIEW_TREE = "view_tree";
45 private const TAB_INFO = "info_short";
46 private const TAB_SETTINGS = "settings";
47 private const TAB_MEMBERS = "members";
48 private const TAB_METADATA = "edit_advanced_settings";
49
52 protected ilHelpGUI $help;
61 protected Refinery\Factory $refinery;
63
68
70
71 public function __construct()
72 {
73 global $DIC;
74 $this->tpl = $DIC['tpl'];
75 $this->ctrl = $DIC['ilCtrl'];
76 $this->ilLocator = $DIC['ilLocator'];
77 $this->tree = $DIC['tree'];
78 $this->toolbar = $DIC['ilToolbar'];
79 $this->ilLog = $DIC['ilLog'];
80 $this->ilias = $DIC['ilias'];
81 $this->type = "prg";
82 $this->help = $DIC['ilHelp'];
83 $this->user = $DIC['ilUser'];
84 $this->refinery = $DIC->refinery();
85 $this->request_wrapper = $DIC->http()->wrapper()->query();
86
87 $ref_id = $this->request_wrapper->retrieve("ref_id", $this->refinery->kindlyTo()->int());
88 parent::__construct(array(), $ref_id, true, false);
89
90 $lng = $DIC['lng'];
92
93 $this->settings_gui = ilStudyProgrammeDIC::dic()['ilObjStudyProgrammeSettingsGUI'];
94 $this->members_gui = ilStudyProgrammeDIC::dic()['ilObjStudyProgrammeMembersGUI'];
95 $this->memberships_gui = ilStudyProgrammeDIC::dic()['ilObjStudyProgrammeAutoMembershipsGUI'];
96 $this->tree_gui = ilStudyProgrammeDIC::dic()['ilObjStudyProgrammeTreeGUI'];
97 $this->type_gui = ilStudyProgrammeDIC::dic()['ilStudyProgrammeTypeGUI'];
98 $this->autocategories_gui = ilStudyProgrammeDIC::dic()['ilObjStudyProgrammeAutoCategoriesGUI'];
99 $this->type_repository = ilStudyProgrammeDIC::dic()['model.Type.ilStudyProgrammeTypeRepository'];
100
101 $this->container_view_manager = $DIC
102 ->container()
103 ->internal()
104 ->domain()
105 ->content()
106 ->view();
107 }
108
109 public function executeCommand(): void
110 {
111 $cmd = $this->ctrl->getCmd();
112 $next_class = $this->ctrl->getNextClass($this);
113
114 if ($cmd == "" || $cmd === null) {
115 $cmd = "view";
116 }
117 $this->addToNavigationHistory();
118
119 parent::prepareOutput();
120
121 $this->addHeaderAction();
122
123 switch ($next_class) {
124 case "ilinfoscreengui":
125 $this->tabs_gui->activateTab(self::TAB_INFO);
126 $this->denyAccessIfNotAnyOf([
129 ]);
130 $info = new ilInfoScreenGUI($this);
131 $this->fillInfoScreen($info);
132 $this->ctrl->forwardCommand($info);
133
134 // I guess this is how it was supposed to work,
135 // but it doesn't... it won't respect our sub-id and sub-type when creating the objects!
136 // So we reimplemented the stuff in the method parseInfoScreen()
137 // $info = new ilInfoScreenGUI($this);
138 // $amd_gui = new ilAdvancedMDRecordGUI(
139 // ilAdvancedMDRecordGUI::MODE_INFO,
140 // 'orgu',
141 // $this->object->getId(),
142 // 'orgu_type',
143 // $this->object->getOrgUnitTypeId()
144 // );
145 // $amd_gui->setInfoObject($info);
146 // $amd_gui->setSelectedOnly(true);
147 // $amd_gui->parse();
148 // $this->ctrl->forwardCommand($info);
149 break;
150 case 'ilpermissiongui':
151 $this->tabs_gui->activateTab('perm_settings');
152 $ilPermissionGUI = new ilPermissionGUI($this);
153 $this->ctrl->forwardCommand($ilPermissionGUI);
154 break;
155 case "ilcommonactiondispatchergui":
157 $this->ctrl->forwardCommand($gui);
158 break;
159 case "ilobjstudyprogrammesettingsgui":
161 $this->getSubTabs('settings');
162 $this->tabs_gui->activateTab(self::TAB_SETTINGS);
163 $this->tabs_gui->activateSubTab('settings');
164 $this->settings_gui->setRefId($this->ref_id);
165 $this->ctrl->forwardCommand($this->settings_gui);
166 break;
167 case "ilobjstudyprogrammeautocategoriesgui":
169 $this->getSubTabs('settings');
170 $this->tabs_gui->activateTab(self::TAB_SETTINGS);
171 $this->tabs_gui->activateSubTab('auto_content');
172 $this->autocategories_gui->setRefId($this->ref_id);
173 $this->initTreeJS();
174 $this->ctrl->forwardCommand($this->autocategories_gui);
175 break;
176 case "ilobjstudyprogrammemembersgui":
178 $this->getSubTabs('members');
179 $this->tabs_gui->activateTab(self::TAB_MEMBERS);
180 $this->tabs_gui->activateSubTab('edit_participants');
181 $this->members_gui->setParentGUI($this);
182 $this->members_gui->setRefId($this->ref_id);
183 $this->ctrl->forwardCommand($this->members_gui);
184 break;
185 case "ilobjstudyprogrammeautomembershipsgui":
187 $this->getSubTabs('members');
188 $this->tabs_gui->activateTab(self::TAB_MEMBERS);
189 $this->tabs_gui->activateSubTab('auto_memberships');
190 $this->memberships_gui->setParentGUI($this);
191 $this->memberships_gui->setRefId($this->ref_id);
192 $this->ctrl->forwardCommand($this->memberships_gui);
193 break;
194 case "ilobjstudyprogrammetreegui":
196 $this->getSubTabs($cmd);
197 $this->setContentSubTabs();
198 $this->tabs_gui->activateTab(self::TAB_VIEW_CONTENT);
199 $this->tabs_gui->activateSubTab(self::SUBTAB_VIEW_TREE);
200
201 // disable admin panel
202 $this->container_view_manager->setContentView();
203
204 $this->tree_gui->setRefId($this->id);
205 $this->ctrl->forwardCommand($this->tree_gui);
206 break;
207 case 'ilstudyprogrammetypegui':
208 $this->tabs_gui->activateTab('subtypes');
209 $this->type_gui->setParentGUI($this);
210 $this->ctrl->forwardCommand($this->type_gui);
211 break;
212 case 'ilobjectcopygui':
213 $gui = new ilobjectcopygui($this);
214 $this->ctrl->forwardCommand($gui);
215 break;
216 case 'ilobjecttranslationgui':
218 $this->getSubTabs('settings');
219 $this->tabs_gui->activateTab(self::TAB_SETTINGS);
220 $this->tabs_gui->activateSubTab('settings_trans');
221 $transgui = new ilObjectTranslationGUI($this);
222 $this->ctrl->forwardCommand($transgui);
223 break;
224 case "ilcertificategui":
225 $this->getSubTabs('settings');
227 $this->tabs_gui->activateTab(self::TAB_SETTINGS);
228 $this->tabs_gui->activateSubTab('certificate');
229 $guiFactory = new ilCertificateGUIFactory();
230 $output_gui = $guiFactory->create($this->object);
231 $this->ctrl->forwardCommand($output_gui);
232 break;
233 case strtolower(ilPropertyFormGUI::class):
234 /*
235 * Only used for async loading of the repository tree in custom md
236 * internal links (see #28060, #37974). This is necessary since StudyProgrammes don't
237 * use ilObjectMetaDataGUI.
238 */
240 $gui = new ilAdvancedMDRecordGUI(
242 'prg',
243 $this->object->getId(),
244 'prg_type',
245 $this->object->getSettings()->getTypeSettings()->getTypeId()
246 );
247 $gui->setPropertyForm($form);
248 $gui->parse();
249 $this->ctrl->forwardCommand($form);
250 break;
251 case false:
252 $this->getSubTabs($cmd);
253 switch ($cmd) {
254 case "cancelDelete":
255 $cmd = "view";
256 // no break
257 case "create":
258 case "save":
259 case "view":
260 case "cancel":
261 case "edit":
262 $this->$cmd();
263 break;
264 case "delete":
265 $this->tabs_gui->clearTargets();
266 $this->tabs_gui->setBackTarget($this->lng->txt("back"), $this->ctrl->getLinkTarget($this));
267 parent::deleteObject();
268 break;
269 case 'confirmedDelete':
270 parent::confirmedDeleteObject();
271 break;
272 case 'editAdvancedSettings':
273 $this->tabs_gui->activateTab('edit_advanced_settings');
274 $this->editAdvancedSettings();
275 break;
276 case 'updateAdvancedSettings':
277 $this->tabs_gui->activateTab('edit_advanced_settings');
278 $this->updateAdvancedSettings();
279 break;
280 case "infoScreen":
281 $this->ctrl->redirectByClass("ilInfoScreenGUI", "showSummary");
282 break;
283 case 'getAsynchItemList':
284 parent::getAsynchItemListObject();
285 break;
286 case 'trash':
287 case 'undelete':
288 case 'confirmRemoveFromSystem':
289 case 'removeFromSystem':
290 case 'deliverCertificate':
291 case 'addToDesk':
292 case 'removeFromDesk':
293
294 case 'cut':
295 case 'paste':
296 case 'clear':
297 case 'render':
298 case 'performPasteIntoMultipleObjects':
299 case 'cancelMoveLink':
300 case 'keepObjectsInClipboard':
301
302 $cmd .= "Object";
303 $this->$cmd();
304 break;
305 default:
306 throw new ilException("ilObjStudyProgrammeGUI: Command not supported: $cmd");
307 }
308 break;
309 default:
310 throw new ilException("ilObjStudyProgrammeGUI: Can't forward to next class $next_class");
311 }
312 }
313
314 protected function create(): void
315 {
316 parent::createObject();
317 }
318
319 protected function save(): void
320 {
321 parent::saveObject();
322
323 if ($this->ctrl->isAsynch()) {
324 $form = $this->getAsyncCreationForm();
327 "cmd" => $this->ctrl->getCmd(),
328 "success" => false,
329 "errors" => $form->getErrors()
330 ]);
331 exit();
332 }
333 }
334
335 protected function cancel(): void
336 {
337 $async_response = ilAsyncOutputHandler::encodeAsyncResponse(array("cmd" => "cancel", "success" => false));
338
339 ilAsyncOutputHandler::handleAsyncOutput("", $async_response, false);
340
341 parent::cancelCreation();
342 }
343
347 protected function afterSave(ilObject $new_object): void
348 {
349 // set default sort to manual
350 $settings = new ilContainerSortingSettings($new_object->getId());
355 $settings->save();
356
358 "cmd" => "cancel",
359 "success" => true,
360 "message" => $this->lng->txt("object_added")
361 ]);
362
363 ilAsyncOutputHandler::handleAsyncOutput("", $async_response, false);
364
365 $this->tpl->setOnScreenMessage("success", $this->lng->txt("object_added"), true);
366
367 $this->ctrl->setParameter($this, "ref_id", $new_object->getRefId());
368 $this->ctrl->redirectToURL($this->getReturnLocation(
369 "save",
370 $this->ctrl->getLinkTarget($this, "edit", "", false, false)
371 ));
372 }
373
375 {
376 if (!$this->permissions) {
377 if (!$this->object || !$this->object->getRefId()) {
378 throw new LogicException('Cannot ask for permission when not in tree!');
379 }
380
381 $this->permissions = ilStudyProgrammeDIC::specificDicFor($this->object)['permissionhelper'];
382 }
383 return $this->permissions;
384 }
385
386 protected function view(): void
387 {
389 $this->tabs_gui->activateTab(self::TAB_VIEW_CONTENT);
390 parent::renderObject();
391 }
392
393 public function isActiveAdministrationPanel(): bool
394 {
395 return false;
396 }
397
399 {
400 $form = new ilPropertyFormGUI();
401 $form->setFormAction($this->ctrl->getFormAction($this));
402 $form->addCommandButton('updateAdvancedSettings', $this->lng->txt('save'));
403 $form->addCommandButton('editAdvancedSettings', $this->lng->txt('cancel'));
404
405 return $form;
406 }
407
408 protected function editAdvancedSettings(): void
409 {
411 $this->tpl->setOnScreenMessage("failure", $this->lng->txt("permission_denied"), true);
412 $this->ctrl->redirect($this);
413 }
415 $gui = new ilAdvancedMDRecordGUI(
417 'prg',
418 $this->object->getId(),
419 'prg_type',
420 $this->object->getSettings()->getTypeSettings()->getTypeId()
421 );
422 $gui->setPropertyForm($form);
423 $gui->parse();
424 $this->tpl->setContent($form->getHTML());
425 }
426
427 protected function updateAdvancedSettings(): void
428 {
430 $this->tpl->setOnScreenMessage("failure", $this->lng->txt("permission_denied"), true);
431 $this->ctrl->redirect($this);
432 }
434 $gui = new ilAdvancedMDRecordGUI(
436 'prg',
437 $this->object->getId(),
438 'prg_type',
439 $this->object->getSettings()->getTypeSettings()->getTypeId()
440 );
441 $gui->setPropertyForm($form);
442 $gui->parse();
443 $form->checkInput();
444
445 if ($gui->importEditFormPostValues()) {
446 $gui->writeEditForm();
447 $this->tpl->setOnScreenMessage("success", $this->lng->txt('settings_saved'), true);
448 $this->ctrl->redirect($this, 'editAdvancedSettings');
449 } else {
450 $this->tpl->setContent($form->getHTML());
451 }
452 }
453
457 protected function initCreationForms($new_type): array
458 {
459 return array(self::CFORM_NEW => $this->initCreateForm($new_type));
460 }
461
467 {
468 $asyncForm = new ilAsyncPropertyFormGUI($this->request_wrapper);
469
470 $tmp_forms = $this->initCreationForms('prg');
471 $asyncForm->cloneForm($tmp_forms[self::CFORM_NEW]);
472 $asyncForm->setAsync(true);
473
474 return $asyncForm;
475 }
476
478 // HELPERS
480
481 protected function checkAccess(string $permission): bool
482 {
483 return $this->getPermissionsHelper()->may($permission);
484 }
485
486 protected function denyAccessIfNot(string $permission): void
487 {
488 $this->denyAccessIfNotAnyOf([$permission]);
489 }
490
491 protected function denyAccessIfNotAnyOf(array $permissions): void
492 {
493 if (!$this->getPermissionsHelper()->mayAnyOf($permissions)) {
495 $this->tpl->setOnScreenMessage('failure', $this->lng->txt("msg_no_perm_write"));
496 $this->ctrl->redirectByClass('ilinfoscreengui', '');
497 } else {
498 $this->ilias->raiseError($this->lng->txt("msg_no_perm_read"), $this->ilias->error_obj->WARNING);
499 }
500 }
501 }
502
503 protected function getTabs(): void
504 {
505 $this->help->setScreenIdComponent("prg");
507 $this->tabs_gui->addTab(self::TAB_VIEW_CONTENT, $this->lng->txt("content"), $this->getLinkTarget("view"));
508 }
509
511 $this->tabs_gui->addTab(
512 self::TAB_INFO,
513 $this->lng->txt("info_short"),
514 $this->getLinkTarget("info_short")
515 );
516 }
517
519 $this->tabs_gui->addTab(
520 self::TAB_SETTINGS,
521 $this->lng->txt("settings"),
522 $this->getLinkTarget("settings")
523 );
524 }
525
527 $this->tabs_gui->addTab(
528 self::TAB_MEMBERS,
529 $this->lng->txt("assignments"),
530 $this->getLinkTarget("members")
531 );
532 }
533
534 if ($this->object->hasAdvancedMetadata()
535 && $this->checkAccess(ilPRGPermissionsHelper::ROLEPERM_WRITE)
536 ) {
537 $this->tabs_gui->addTab(
538 self::TAB_METADATA,
539 $this->lng->txt('meta_data'),
540 $this->ctrl->getLinkTarget($this, 'editAdvancedSettings')
541 );
542 }
543
544 parent::getTabs();
545 }
546
551 public function getSubTabs(string $parent_tab): void
552 {
553 switch ($parent_tab) {
556 case 'view':
558 $this->tabs_gui->addSubTab(
559 self::TAB_VIEW_CONTENT,
560 $this->lng->txt("view"),
561 $this->getLinkTarget("view")
562 );
563 }
564
566 $this->tabs_gui->addSubTab(
567 self::SUBTAB_VIEW_TREE,
568 $this->lng->txt("cntr_manage"),
569 $this->getLinkTarget(self::SUBTAB_VIEW_TREE)
570 );
571 }
572 break;
573 case 'settings':
574 $this->tabs_gui->addSubTab(
575 'settings',
576 $this->lng->txt('settings'),
577 $this->getLinkTarget('settings')
578 );
579
580 if ($this->object->isAutoContentApplicable()) {
581 $this->tabs_gui->addSubTab(
582 "auto_content",
583 $this->lng->txt("content_automation"),
584 $this->getLinkTarget("auto_content")
585 );
586 }
587
588 $this->tabs_gui->addSubTab(
589 "settings_trans",
590 $this->lng->txt("obj_multilinguality"),
591 $this->ctrl->getLinkTargetByClass("ilobjecttranslationgui", "")
592 );
593
594 $validator = new ilCertificateActiveValidator();
595 if (true === $validator->validate()) {
596 $this->tabs_gui->addSubTabTarget(
597 "certificate",
598 $this->ctrl->getLinkTargetByClass("ilcertificategui", "certificateeditor"),
599 "",
600 "ilcertificategui"
601 );
602 }
603
604 if ($this->permissions->isOrguAccessEnabledGlobally()) {
605 $this->tabs_gui->addSubTab(
606 'commonSettings',
607 $this->lng->txt("obj_features"),
608 $this->getLinkTarget("commonSettings")
609 );
610 }
611
612 break;
613
614 case 'members':
615 $this->tabs_gui->addSubTab(
616 'edit_participants',
617 $this->lng->txt('edit_participants'),
618 $this->getLinkTarget('members')
619 );
620
622 $this->tabs_gui->addSubTab(
623 'auto_memberships',
624 $this->lng->txt('auto_memberships'),
625 $this->getLinkTarget('memberships')
626 );
627 }
628 break;
629 }
630 }
631
635 public function setContentSubTabs(): void
636 {
637 }
638
642 protected function getLinkTarget(string $cmd): string
643 {
644 if ($cmd === "info_short") {
645 return $this->ctrl->getLinkTargetByClass("ilinfoscreengui", "showSummary");
646 }
647 if ($cmd === "settings") {
648 return $this->ctrl->getLinkTargetByClass("ilobjstudyprogrammesettingsgui", "view");
649 }
650 if ($cmd === "auto_content") {
651 return $this->ctrl->getLinkTargetByClass("ilObjStudyProgrammeAutoCategoriesGUI", "view");
652 }
653
654 if ($cmd === self::SUBTAB_VIEW_TREE) {
655 return $this->ctrl->getLinkTargetByClass("ilobjstudyprogrammetreegui", "view");
656 }
657 if ($cmd === "members") {
658 return $this->ctrl->getLinkTargetByClass("ilobjstudyprogrammemembersgui", "view");
659 }
660 if ($cmd === "memberships") {
661 return $this->ctrl->getLinkTargetByClass("ilobjstudyprogrammeautomembershipsgui", "view");
662 }
663 if ($cmd === "subtypes") {
664 return $this->ctrl->getLinkTargetByClass("ilstudyprogrammetypegui", "listTypes");
665 }
666 if ($cmd === "commonSettings") {
667 return $this->ctrl->getLinkTargetByClass(
668 [
669 "ilobjstudyprogrammesettingsgui",
670 "ilStudyProgrammeCommonSettingsGUI"
671 ],
672 "editSettings"
673 );
674 }
675
676 return $this->ctrl->getLinkTarget($this, $cmd);
677 }
678
682 protected function fillInfoScreen($info_screen): void
683 {
684 if (!$this->object->getSettings()->getTypeSettings()->getTypeId() ||
685 !ilStudyProgrammeDIC::dic()['model.Type.ilStudyProgrammeTypeRepository']
686 ->getType($this->object->getSettings()->getTypeSettings()->getTypeId())
687 ) {
688 return;
689 }
690
691 $record_gui = new ilAdvancedMDRecordGUI(
693 'prg',
694 $this->object->getId(),
695 'prg_type',
696 $this->object->getSettings()->getTypeSettings()->getTypeId()
697 );
698 $record_gui->setInfoObject($info_screen);
699 $record_gui->parse();
700 }
701
702 protected function edit(): void
703 {
705 $link = $this->ctrl->getLinkTargetByClass(ilObjStudyProgrammeSettingsGUI::class, 'view');
706 $this->ctrl->redirectToURL($link);
707 }
708
709 public static function _goto(string $target): void
710 {
711 global $DIC;
712 $ilCtrl = $DIC['ilCtrl'];
713 $id = explode("_", $target);
714 $ilCtrl->setTargetScript('ilias.php');
715 $ilCtrl->setParameterByClass("ilobjstudyprogrammegui", "ref_id", $id[0]);
716 $ilCtrl->redirectByClass(array("ilRepositoryGUI", "ilobjstudyprogrammegui"), "view");
717 }
718
719 public function addToNavigationHistory(): void
720 {
721 global $DIC;
722 $ilNavigationHistory = $DIC['ilNavigationHistory'];
723
725 $ref_id = $this->request_wrapper->retrieve("ref_id", $this->refinery->kindlyTo()->int());
726 $link = ilLink::_getLink($ref_id, "prg");
727 $ilNavigationHistory->addItem($ref_id, $link, 'prg');
728 }
729 }
730
731 protected function initHeaderAction(?string $sub_type = null, ?int $sub_id = null): ?ilObjectListGUI
732 {
733 $lg = parent::initHeaderAction($sub_type, $sub_id);
734 $validator = new ilCertificateDownloadValidator();
735 if ($lg && true === $validator->isCertificateDownloadable($this->user->getId(), $this->object->getId())) {
736 $cert_url = $this->ctrl->getLinkTarget($this, "deliverCertificate");
737 $this->lng->loadLanguageModule("certificate");
738 $lg->addCustomCommand($cert_url, "download_certificate");
739 $lg->addHeaderIcon(
740 "cert_icon",
741 ilUtil::getImagePath("icon_cert.svg"),
742 $this->lng->txt("download_certificate"),
743 null,
744 null,
745 $cert_url
746 );
747 }
748 return $lg;
749 }
750
751 protected function deliverCertificateObject(): void
752 {
753 global $DIC;
754
755 $this->lng->loadLanguageModule('cert');
756
757 $user_id = (int) $this->user->getId();
758 $obj_id = $this->object->getId();
759
760 $validator = new ilCertificateDownloadValidator();
761 if (false === $validator->isCertificateDownloadable($user_id, $obj_id)) {
762 $this->tpl->setOnScreenMessage('failure', $this->lng->txt("permission_denied"), true);
763 $this->ctrl->redirect($this);
764 }
765 $repository = new ilUserCertificateRepository();
766 $cert_logger = $DIC->logger()->cert();
767 $pdf_action = new ilCertificatePdfAction(
768 $cert_logger,
769 new ilPdfGenerator($repository, $cert_logger),
771 $this->lng->txt('error_creating_certificate_pdf')
772 );
773 $pdf_action->downloadPdf($user_id, $obj_id);
774 }
775
776 protected function initTreeJS(): void
777 {
779 }
780
781 protected function supportsPageEditor(): bool
782 {
783 return false;
784 }
785}
static handleAsyncOutput(string $normal_content, string $async_content=null, bool $apply_to_tpl=true)
Handles async output.
static encodeAsyncResponse(array $data=array())
Encode data as json for async output.
Class ilAsyncPropertyFormGUI.
Validates if an active certificate is stored in the database and can be downloaded by the user.
Just a wrapper class to create Unit Test for other classes.
static getInstanceFromAjaxCall()
(Re-)Build instance from ajax call
Component logger with individual log levels by component id.
Class ilContainerGUI This is a base GUI class for all container objects in ILIAS: root folder,...
ilPropertyFormGUI $form
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
const SORT_NEW_ITEMS_ORDER_CREATION
const SORT_NEW_ITEMS_POSITION_BOTTOM
const SORT_DIRECTION_ASC
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
static init(ilGlobalTemplateInterface $a_main_tpl=null)
setFormAction(string $a_formaction)
Help GUI class.
Class ilInfoScreenGUI.
loadLanguageModule(string $a_module)
Load language module.
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...
Definition: class.ilLog.php:31
Class ilObjStudyProgrammeGUI class @ilCtrl_Calls ilObjStudyProgrammeGUI: ilPermissionGUI @ilCtrl_Call...
ilObjStudyProgrammeMembersGUI $members_gui
fillInfoScreen($info_screen)
Adding meta-data to the info-screen.
ilObjStudyProgrammeAutoCategoriesGUI $autocategories_gui
ilObjStudyProgrammeTreeGUI $tree_gui
ilObjStudyProgrammeAutoMembershipsGUI $memberships_gui
getLinkTarget(string $cmd)
Generates a link based on a cmd.
initCreationForms($new_type)
Overwritten from ilObjectGUI since copy and import are not implemented.
initHeaderAction(?string $sub_type=null, ?int $sub_id=null)
Add header action menu.
afterSave(ilObject $new_object)
Sets the sorting of the container correctly.
getAsyncCreationForm()
Method for implementing async windows-output Should be moved into core to enable async requests on cr...
getTabs()
@abstract overwrite in derived GUI class of your object type
ilPRGPermissionsHelper $permissions
ilStudyProgrammeTypeRepository $type_repository
setContentSubTabs()
Disable default content subtabs.
getSubTabs(string $parent_tab)
Adds subtabs based on the parent tab.
ilStudyProgrammeTypeGUI $type_gui
ilObjStudyProgrammeSettingsGUI $settings_gui
@ilCtrl_Calls ilObjStudyProgrammeMembersGUI: ilStudyProgrammeRepositorySearchGUI @ilCtrl_Calls ilObjS...
@ilCtrl_Calls ilObjStudyProgrammeSettingsGUI: ilStudyProgrammeCommonSettingsGUI
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
ilSetting $settings
addHeaderAction()
Add header action menu.
getReturnLocation(string $cmd, string $default_location="")
Get return location for command (command is method name without "Object", e.g.
ilLanguage $lng
initCreateForm(string $new_type)
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...
New PermissionGUI (extends from old ilPermission2GUI) RBAC related output.
This class represents a property form user interface.
addCommandButton(string $a_cmd, string $a_text, string $a_id="")
static specificDicFor(ilObjStudyProgramme $prg)
static getImagePath(string $img, string $module_path="", string $mode="output", bool $offline=false)
get image path (for images located in a template directory)
global $DIC
Definition: feed.php:28
Interface RequestWrapper.
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
exit
Definition: login.php:28
__construct(Container $dic, ilPlugin $plugin)
@inheritDoc
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
Definition: ByTrying.php:21
Class ilPdfGeneratorConstantsTest.
header include for all ilias files.