ILIAS  release_5-4 Revision v5.4.26-12-gabc799a52e6
class.ilObjStudyProgrammeGUI.php
Go to the documentation of this file.
1<?php
2
3/* Copyright (c) 2015 Richard Klees <richard.klees@concepts-and-training.de> Extended GPL, see docs/LICENSE */
4
5require_once("./Services/Container/classes/class.ilContainerGUI.php");
6require_once("./Services/AccessControl/classes/class.ilObjRole.php");
7require_once("./Services/Form/classes/class.ilPropertyFormGUI.php");
8require_once("./Services/AccessControl/classes/class.ilPermissionGUI.php");
9require_once("./Services/InfoScreen/classes/class.ilInfoScreenGUI.php");
10require_once("./Services/Object/classes/class.ilObjectAddNewItemGUI.php");
11require_once("./Modules/StudyProgramme/classes/class.ilObjStudyProgrammeTreeGUI.php");
12require_once('./Services/Container/classes/class.ilContainerSortingSettings.php');
13require_once("./Modules/StudyProgramme/classes/types/class.ilStudyProgrammeTypeGUI.php");
14require_once("./Modules/StudyProgramme/classes/model/class.ilStudyProgrammeAdvancedMetadataRecord.php");
15require_once("./Services/AdvancedMetaData/classes/class.ilAdvancedMDRecordGUI.php");
16require_once("./Services/Object/classes/class.ilObjectCopyGUI.php");
17require_once("./Services/Repository/classes/class.ilRepUtil.php");
18
35{
39 public $ctrl;
40
44 public $tpl;
45
49 public $tabs_gui;
50
54 protected $ilAccess;
55
59 protected $toolbar;
60
64 protected $ilLocator;
65
69 public $tree;
70
74 public $object;
75
79 protected $ilLog;
80
84 public $ilias;
85
89 protected $help;
90
91
92 public function __construct()
93 {
94 global $DIC;
95 $tpl = $DIC['tpl'];
96 $ilCtrl = $DIC['ilCtrl'];
97 $ilAccess = $DIC['ilAccess'];
98 $ilToolbar = $DIC['ilToolbar'];
99 $ilLocator = $DIC['ilLocator'];
100 $tree = $DIC['tree'];
101 $lng = $DIC['lng'];
102 $ilLog = $DIC['ilLog'];
103 $ilias = $DIC['ilias'];
104 $ilHelp = $DIC['ilHelp'];
105
106 parent::__construct(array(), (int) $_GET['ref_id'], true, false);
107
108 $this->tpl = $tpl;
109 $this->ctrl = $ilCtrl;
110 $this->ilAccess = $ilAccess;
111 $this->ilLocator = $ilLocator;
112 $this->tree = $tree;
113 $this->toolbar = $ilToolbar;
114 $this->ilLog = $ilLog;
115 $this->ilias = $ilias;
116 $this->type = "prg";
117 $this->help = $ilHelp;
118
119 $lng->loadLanguageModule("prg");
120 }
121
122
123 public function executeCommand()
124 {
125 $cmd = $this->ctrl->getCmd();
126 $next_class = $this->ctrl->getNextClass($this);
127
128 if ($cmd == "") {
129 $cmd = "view";
130 }
131
132 $this->addToNavigationHistory();
133
134 parent::prepareOutput();
135
136 // show repository tree
137 $this->showRepTree();
138
139 switch ($next_class) {
140 case "ilinfoscreengui":
141 $this->tabs_gui->setTabActive(self::TAB_INFO);
142 $this->denyAccessIfNotAnyOf(array("read", "visible"));
143 $info = new ilInfoScreenGUI($this);
144 $this->fillInfoScreen($info);
145 $this->ctrl->forwardCommand($info);
146
147 // I guess this is how it was supposed to work, but it doesn't... it won't respect our sub-id and sub-type when creating the objects!
148 // So we reimplemented the stuff in the method parseInfoScreen()
149 // $info = new ilInfoScreenGUI($this);
150 // $amd_gui = new ilAdvancedMDRecordGUI(ilAdvancedMDRecordGUI::MODE_INFO, 'orgu', $this->object->getId(), 'orgu_type', $this->object->getOrgUnitTypeId());
151 // $amd_gui->setInfoObject($info);
152 // $amd_gui->setSelectedOnly(true);
153 // $amd_gui->parse();
154 // $this->ctrl->forwardCommand($info);
155 break;
156 case 'ilpermissiongui':
157 $this->tabs_gui->setTabActive('perm_settings');
158 $ilPermissionGUI = new ilPermissionGUI($this);
159 $this->ctrl->forwardCommand($ilPermissionGUI);
160 break;
161 case "ilcommonactiondispatchergui":
162 require_once("Services/Object/classes/class.ilCommonActionDispatcherGUI.php");
164 $this->ctrl->forwardCommand($gui);
165 break;
166 case "ilobjstudyprogrammesettingsgui":
167 $this->denyAccessIfNot("write");
168
169 $this->getSubTabs('settings');
170 $this->tabs_gui->setTabActive(self::TAB_SETTINGS);
171 $this->tabs_gui->setSubTabActive('settings');
172
173 require_once("Modules/StudyProgramme/classes/class.ilObjStudyProgrammeSettingsGUI.php");
174 $gui = new ilObjStudyProgrammeSettingsGUI($this, $this->ref_id);
175 $this->ctrl->forwardCommand($gui);
176 break;
177 /*case 'iltranslationgui':
178 $this->denyAccessIfNot("write");
179
180 $this->getSubTabs('settings');
181 $this->tabs_gui->setTabActive("settings");
182 $this->tabs_gui->setSubTabActive('edit_translations');
183
184 $ilTranslationGui = new ilTranslationGUI($this);
185 $this->ctrl->forwardCommand($ilTranslationGui);
186 break;*/
187 case "ilobjstudyprogrammemembersgui":
188 $this->denyAccessIfNot("manage_members");
189 $this->tabs_gui->setTabActive(self::TAB_MEMBERS);
190 require_once("Modules/StudyProgramme/classes/class.ilObjStudyProgrammeMembersGUI.php");
192 $this->ctrl->forwardCommand($gui);
193 break;
194 case "ilobjstudyprogrammetreegui":
195 $this->denyAccessIfNot("write");
196
197 $this->getSubTabs($cmd);
198 $this->setContentSubTabs();
199 $this->tabs_gui->setTabActive(self::TAB_VIEW_CONTENT);
200 $this->tabs_gui->setSubTabActive(self::SUBTAB_VIEW_TREE);
201
202 // disable admin panel
203 $_SESSION["il_cont_admin_panel"] = false;
204
205 $gui = new ilObjStudyProgrammeTreeGUI($this->id);
206 $this->ctrl->forwardCommand($gui);
207 break;
208 case 'ilstudyprogrammetypegui':
209 $this->tabs_gui->setTabActive('subtypes');
210
211 $types_gui = new ilStudyProgrammeTypeGUI($this);
212 $this->ctrl->forwardCommand($types_gui);
213 break;
214 case 'ilobjectcopygui':
215 $gui = new ilobjectcopygui($this);
216 $this->ctrl->forwardCommand($gui);
217 break;
218 case false:
219 $this->getSubTabs($cmd);
220 switch ($cmd) {
221 case "cancelDelete":
222 $cmd = "view";
223 // no break
224 case "create":
225 case "save":
226 case "view":
227 case "cancel":
228 case "edit":
229 $this->$cmd();
230 break;
231 case "delete":
232 $this->tabs_gui->clearTargets();
233 $this->tabs_gui->setBackTarget($this->lng->txt("back"), $this->ctrl->getLinkTarget($this));
234 parent::deleteObject();
235 break;
236 case 'confirmedDelete':
237 parent::confirmedDeleteObject();
238 break;
239 case 'editAdvancedSettings':
240 $this->tabs_gui->setTabActive("settings");
241 $this->tabs_gui->setSubTabActive('edit_advanced_settings');
242 //$this->setSubTabsSettings('edit_advanced_settings');
243 $this->editAdvancedSettings();
244 break;
245 case 'updateAdvancedSettings':
246 $this->tabs_gui->setTabActive("settings");
247 $this->tabs_gui->setSubTabActive('edit_advanced_settings');
248 //$this->setSubTabsSettings('edit_advanced_settings');
249 $this->updateAdvancedSettings();
250 break;
251 case "infoScreen":
252 $this->ctrl->redirectByClass("ilInfoScreenGUI", "showSummary");
253 break;
254 case 'getAsynchItemList':
255 parent::getAsynchItemListObject();
256 break;
257 case 'trash':
258 case 'undelete':
259 case 'confirmRemoveFromSystem':
260 case 'removeFromSystem':
261 $cmd .= "Object";
262 $this->$cmd();
263 break;
264 /*case 'editSettings':
265 $this->tabs_gui->setTabActive("settings");
266 $this->setSubTabsSettings('edit_settings');
267 $this->editSettings();
268 break;
269 case '':
270 case 'view':
271 case 'render':
272 case 'cancel':
273 case 'cancelDelete':
274 $this->view();
275 break;
276 case 'create':
277
278 parent::createObject();
279 break;
280 case 'save':
281 parent::saveObject();
282 break;
283 case 'delete':
284 $this->tabs_gui->clearTargets();
285 $this->tabs_gui->setBackTarget($this->lng->txt("back"), $this->ctrl->getLinkTarget($this));
286 parent::deleteObject();
287 break;
288 case 'confirmedDelete':
289 parent::confirmedDeleteObject();
290 break;
291 case 'cut':
292 $this->tabs_gui->clearTargets();
293 $this->tabs_gui->setBackTarget($this->lng->txt("back"), $this->ctrl->getLinkTarget($this));
294 parent::cutObject();
295 break;
296 case 'clear':
297 parent::clearObject();
298 break;
299 case 'enableAdministrationPanel':
300 parent::enableAdministrationPanelObject();
301 break;
302 case 'disableAdministrationPanel':
303 parent::disableAdministrationPanelObject();
304 break;
305 case 'editSettings':
306 $this->tabs_gui->setTabActive("settings");
307 $this->setSubTabsSettings('edit_settings');
308 $this->editSettings();
309 break;
310 case 'updateSettings':
311 $this->tabs_gui->setTabActive("settings");
312 $this->setSubTabsSettings('edit_settings');
313 $this->updateSettings();
314 break;
315 case 'editAdvancedSettings':
316 $this->tabs_gui->setTabActive("settings");
317 $this->setSubTabsSettings('edit_advanced_settings');
318 $this->editAdvancedSettings();
319 break;
320 case 'updateAdvancedSettings':
321 $this->tabs_gui->setTabActive("settings");
322 $this->setSubTabsSettings('edit_advanced_settings');
323 $this->updateAdvancedSettings();
324 break;*/
325 default:
326 throw new ilException("ilObjStudyProgrammeGUI: Command not supported: $cmd");
327 }
328 break;
329 default:
330 throw new ilException("ilObjStudyProgrammeGUI: Can't forward to next class $next_class");
331 }
332 }
333
334
338 protected function create()
339 {
340 parent::createObject();
341 }
342
343
349 protected function save()
350 {
351 parent::saveObject();
352
353 if ($this->ctrl->isAsynch()) {
354 $form = $this->getAsyncCreationForm();
355 $form->setValuesByPost();
356 echo ilAsyncOutputHandler::encodeAsyncResponse(array("cmd" => $this->ctrl->getCmd(), "success" => false, "errors" => $form->getErrors()));
357 exit();
358 }
359 }
360
361
367 protected function cancel()
368 {
369 $async_response = ilAsyncOutputHandler::encodeAsyncResponse(array("cmd" => "cancel", "success" => false));
370
371 ilAsyncOutputHandler::handleAsyncOutput("", $async_response, false);
372
373 parent::cancelCreation();
374 }
375
376
383 protected function afterSave(ilObject $a_new_object)
384 {
385 // set default sort to manual
386 $settings = new ilContainerSortingSettings($a_new_object->getId());
391 $settings->save();
392
393 $async_response = ilAsyncOutputHandler::encodeAsyncResponse(array("cmd" => "cancel", "success" => true, "message" => $this->lng->txt("object_added")));
394
395 ilAsyncOutputHandler::handleAsyncOutput("", $async_response, false);
396
397 ilUtil::sendSuccess($this->lng->txt("object_added"), true);
398
399 $this->ctrl->setParameter($this, "ref_id", $a_new_object->getRefId());
401 "save",
402 $this->ctrl->getLinkTarget($this, "edit", "", false, false)
403 ));
404 }
405
406
410 protected function view()
411 {
412 $this->denyAccessIfNot("read");
413 $this->tabs_gui->setTabActive(self::TAB_VIEW_CONTENT);
414
415 parent::renderObject();
416 }
417
423 protected function initAdvancedSettingsForm()
424 {
425 $form = new ilPropertyFormGUI();
426 $form->setFormAction($this->ctrl->getFormAction($this));
427 $form->addCommandButton('updateAdvancedSettings', $this->lng->txt('save'));
428 $form->addCommandButton('editAdvancedSettings', $this->lng->txt('cancel'));
429
430 return $form;
431 }
432
436 protected function editAdvancedSettings()
437 {
438 if (!$this->ilAccess->checkAccess("write", "", $this->ref_id)) {
439 ilUtil::sendFailure($this->lng->txt("permission_denied"), true);
440 $this->ctrl->redirect($this);
441 }
443 $gui = new ilAdvancedMDRecordGUI(ilAdvancedMDRecordGUI::MODE_EDITOR, 'prg', $this->object->getId(), 'prg_type', $this->object->getSubtypeId());
444 $gui->setPropertyForm($form);
445 $gui->parse();
446 $this->tpl->setContent($form->getHTML());
447 }
448
449
453 protected function updateAdvancedSettings()
454 {
455 if (!$this->ilAccess->checkAccess("write", "", $this->ref_id)) {
456 ilUtil::sendFailure($this->lng->txt("permission_denied"), true);
457 $this->ctrl->redirect($this);
458 }
459
461 $gui = new ilAdvancedMDRecordGUI(ilAdvancedMDRecordGUI::MODE_EDITOR, 'prg', $this->object->getId(), 'prg_type', $this->object->getSubtypeId());
462 $gui->setPropertyForm($form);
463 $form->checkInput();
464 $gui->parse();
465 if ($gui->importEditFormPostValues()) {
466 $gui->writeEditForm();
467 ilUtil::sendSuccess($this->lng->txt('settings_saved'), true);
468 $this->ctrl->redirect($this, 'editAdvancedSettings');
469 } else {
470 $this->tpl->setContent($form->getHTML());
471 }
472 }
473
474
482 protected function initCreationForms($a_new_type)
483 {
484 return array( self::CFORM_NEW => $this->initCreateForm($a_new_type));
485 }
486
487
494 public function getAsyncCreationForm()
495 {
496 $asyncForm = new ilAsyncPropertyFormGUI();
497
498 $tmp_forms = $this->initCreationForms('prg');
499 $asyncForm->cloneForm($tmp_forms[self::CFORM_NEW]);
500 $asyncForm->setAsync(true);
501
502 return $asyncForm;
503 }
504
506 // HELPERS
508
509 protected function checkAccess($a_which)
510 {
511 return $this->ilAccess->checkAccess($a_which, "", $this->ref_id);
512 }
513
514 protected function denyAccessIfNot($a_perm)
515 {
516 return $this->denyAccessIfNotAnyOf(array($a_perm));
517 }
518
519 protected function denyAccessIfNotAnyOf($a_perms)
520 {
521 foreach ($a_perms as $perm) {
522 if ($this->checkAccess($perm)) {
523 return;
524 }
525 }
526
527 if ($this->checkAccess("visible")) {
528 ilUtil::sendFailure($this->lng->txt("msg_no_perm_write"));
529 $this->ctrl->redirectByClass('ilinfoscreengui', '');
530 }
531
532 $this->ilias->raiseError($this->lng->txt("msg_no_perm_read"), $this->ilias->error_obj->WARNING);
533 }
534
535 const TAB_VIEW_CONTENT = "view_content";
536 const SUBTAB_VIEW_TREE = "view_tree";
537 const TAB_INFO = "info_short";
538 const TAB_SETTINGS = "settings";
539 const TAB_MEMBERS = "members";
540 const TAB_SUBTYPES = "subtypes";
541
545 public function getTabs()
546 {
547 $this->help->setScreenIdComponent("prg");
548 if ($this->checkAccess("read")) {
549 $this->tabs_gui->addTab(self::TAB_VIEW_CONTENT, $this->lng->txt("content"), $this->getLinkTarget("view"));
550 }
551
552 if ($this->checkAccess("read")) {
553 $this->tabs_gui->addTab(
554 self::TAB_INFO,
555 $this->lng->txt("info_short"),
556 $this->getLinkTarget("info_short")
557 );
558 }
559
560 if ($this->checkAccess("write")) {
561 $this->tabs_gui->addTab(
562 self::TAB_SETTINGS,
563 $this->lng->txt("settings"),
564 $this->getLinkTarget("settings")
565 );
566 }
567
568 if ($this->checkAccess("manage_members")) {
569 $this->tabs_gui->addTab(
570 self::TAB_MEMBERS,
571 $this->lng->txt("members"),
572 $this->getLinkTarget("members")
573 );
574 }
575 parent::getTabs();
576 }
577
583 public function getSubTabs($a_parent_tab)
584 {
585 switch ($a_parent_tab) {
588 case 'view':
589 if ($this->checkAccess("read")) {
590 $this->tabs_gui->addSubTab(self::TAB_VIEW_CONTENT, $this->lng->txt("view"), $this->getLinkTarget("view"));
591 }
592
593 if ($this->checkAccess("write")) {
594 $this->tabs_gui->addSubTab(self::SUBTAB_VIEW_TREE, $this->lng->txt("cntr_manage"), $this->getLinkTarget(self::SUBTAB_VIEW_TREE));
595 }
596 break;
597 case 'settings':
598 case 'editAdvancedSettings':
599 $this->tabs_gui->addSubTab('settings', $this->lng->txt('settings'), $this->getLinkTarget('settings'));
600 //$this->tabs_gui->addSubTab("edit_translations", $this->lng->txt("obj_multilinguality"), $this->ctrl->getLinkTargetByClass("iltranslationgui", "editTranslations"));
601
602 $type = ilStudyProgrammeType::find($this->object->getSubtypeId());
603
604 if (!is_null($type) && count($type->getAssignedAdvancedMDRecords(true))) {
605 $this->tabs_gui->addSubTab('edit_advanced_settings', $this->lng->txt('prg_adv_settings'), $this->ctrl->getLinkTarget($this, 'editAdvancedSettings'));
606 }
607 break;
608 }
609 }
610
611
615 public function setContentSubTabs()
616 {
617 return;
618 }
619
620
628 protected function getLinkTarget($a_cmd)
629 {
630 if ($a_cmd == "info_short") {
631 return $this->ctrl->getLinkTargetByClass("ilinfoscreengui", "showSummary");
632 }
633 if ($a_cmd == "settings") {
634 return $this->ctrl->getLinkTargetByClass("ilobjstudyprogrammesettingsgui", "view");
635 }
636 if ($a_cmd == self::SUBTAB_VIEW_TREE) {
637 return $this->ctrl->getLinkTargetByClass("ilobjstudyprogrammetreegui", "view");
638 }
639 if ($a_cmd == "members") {
640 return $this->ctrl->getLinkTargetByClass("ilobjstudyprogrammemembersgui", "view");
641 }
642 if ($a_cmd == "subtypes") {
643 return $this->ctrl->getLinkTargetByClass("ilstudyprogrammetypegui", "listTypes");
644 }
645
646 return $this->ctrl->getLinkTarget($this, $a_cmd);
647 }
648
649
655 protected function fillInfoScreen($a_info_screen)
656 {
657 require_once('./Services/AdvancedMetaData/classes/class.ilAdvancedMDValues.php');
658 require_once('./Services/AdvancedMetaData/classes/class.ilAdvancedMDRecord.php');
659 require_once('Services/AdvancedMetaData/classes/class.ilAdvancedMDRecordGUI.php');
660 require_once('./Services/ADT/classes/class.ilADTFactory.php');
661
662 $type = ilStudyProgrammeType::find($this->object->getSubtypeId());
663 if (!$type) {
664 return;
665 }
666
667 $record_gui = new ilAdvancedMDRecordGUI(ilAdvancedMDRecordGUI::MODE_INFO, 'prg', $this->object->getId(), 'prg_type', $this->object->getSubtypeId());
668 $record_gui->setInfoObject($a_info_screen);
669 $record_gui->parse();
670 }
671
672 protected function edit()
673 {
674 $this->denyAccessIfNot("write");
675
676 $this->getSubTabs('settings');
677 $this->tabs_gui->setTabActive(self::TAB_SETTINGS);
678 $this->tabs_gui->setSubTabActive('settings');
679
680 require_once("Modules/StudyProgramme/classes/class.ilObjStudyProgrammeSettingsGUI.php");
681 $gui = new ilObjStudyProgrammeSettingsGUI($this, $this->ref_id);
682 $this->ctrl->setCmd("view");
683 $this->ctrl->forwardCommand($gui);
684 }
685
692 public static function _goto($a_target)
693 {
694 global $DIC;
695 $ilAccess = $DIC['ilAccess'];
696 $ilErr = $DIC['ilErr'];
697 $ilCtrl = $DIC['ilCtrl'];
698 $id = explode("_", $a_target);
699 $ilCtrl->initBaseClass("ilRepositoryGUI");
700 $ilCtrl->setParameterByClass("ilobjstudyprogrammegui", "ref_id", $id[0]);
701
702 $ilCtrl->redirectByClass(array( "ilRepositoryGUI", "ilobjstudyprogrammegui" ), "view");
703 }
704
705 public function addToNavigationHistory()
706 {
707 global $DIC;
708 $ilNavigationHistory = $DIC['ilNavigationHistory'];
709
710 if (!$this->getCreationMode() &&
711 $this->ilAccess->checkAccess('read', '', $_GET['ref_id'])) {
712 $link = ilLink::_getLink($_GET["ref_id"], "iass");
713
714 $ilNavigationHistory->addItem(
715 $_GET['ref_id'],
716 $link,
717 'prg'
718 );
719 }
720 }
721}
exit
Definition: backend.php:16
$_GET["client_id"]
$_SESSION["AccountId"]
An exception for terminatinating execution or to throw for unit testing.
Class ilAccessHandler.
checkAccess($a_permission, $a_cmd, $a_ref_id, $a_type="", $a_obj_id="", $a_tree_id="")
check access for an object (provide $a_type and $a_obj_id if available for better performance)
static handleAsyncOutput($normal_content, $async_content=null, $apply_to_tpl=true)
Handles async output.
static encodeAsyncResponse(array $data=array())
Encode data as json for async output.
Class ilAsyncPropertyFormGUI.
static getInstanceFromAjaxCall()
(Re-)Build instance from ajax call
Class ilContainerGUI.
const SORT_NEW_ITEMS_ORDER_CREATION
const SORT_NEW_ITEMS_POSITION_BOTTOM
Base class for ILIAS Exception handling.
Class ilInfoScreenGUI.
logging
Definition: class.ilLog.php:19
Class ilObjStudyProgrammeGUI class.
initAdvancedSettingsForm()
Initialize the form for editing advanced meta data.
getSubTabs($a_parent_tab)
Adds subtabs based on the parent tab.
cancel()
Cancel the object generation.
updateAdvancedSettings()
Update Advanced Metadata.
executeCommand()
execute command note: this method is overwritten in all container objects
fillInfoScreen($a_info_screen)
Adding meta-data to the info-screen.
getLinkTarget($a_cmd)
Generates a link based on a cmd.
editAdvancedSettings()
Edit Advanced Metadata.
getAsyncCreationForm()
Method for implementing async windows-output Should be moved into core to enable async requests on cr...
getTabs()
Adds the default tabs to the gui.
static _goto($a_target)
_goto Deep link
setContentSubTabs()
Disable default content subtabs.
initCreationForms($a_new_type)
Overwritten from ilObjectGUI since copy and import are not implemented.
afterSave(ilObject $a_new_object)
After save hook Sets the sorting of the container correctly.
Class ilObjStudyProgrammeMembersGUI.
Class ilObjStudyProgrammeSettingsGUI.
Class ilObjStudyProgrammeTreeGUI Generates the manage view for ilTrainingProgramme-Repository objects...
static _getStudyProgrammeUserProgressDB()
Get an instance of ilStudyProgrammeUserProgressDB.
initCreateForm($a_new_type)
Init object creation form.
getReturnLocation($a_cmd, $a_location="")
get return location for command (command is method name without "Object", e.g.
getCreationMode()
get creation mode
Class ilObject Basic functions for all objects.
getRefId()
get reference id @access public
getId()
get object id @access public
New PermissionGUI (extends from old ilPermission2GUI) RBAC related output.
This class represents a property form user interface.
Class ilStudyProgrammeTypeGUI.
static redirect($a_script)
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
if(!array_key_exists('StateId', $_REQUEST)) $id
global $ilCtrl
Definition: ilias.php:18
$info
Definition: index.php:5
redirection script todo: (a better solution should control the processing via a xml file)
$type
if(isset($_POST['submit'])) $form
global $DIC
Definition: saml.php:7