protected function initEditCustomForm(ilPropertyFormGUI $a_form) { // Show didactic template type $this->initDidacticTemplate($a_form); // Sorting $sog = new ilRadioGroupInputGUI($this->lng->txt('sorting_header'), 'sor'); $sog->setRequired(true); // implicit: there is always a group or course in the path $sde = new ilRadioOption(); $sde->setValue(ilContainer::SORT_INHERIT); $sde->setTitle($this->lng->txt('sort_inherit_prefix') . ' (' . ilContainerSortingSettings::sortModeToString(ilContainerSortingSettings::lookupSortModeFromParentContainer($this->object->getId())) . ') '); $sde->setInfo($this->lng->txt('sorting_info_inherit')); $sog->addOption($sde); $sma = new ilRadioOption(); $sma->setValue(ilContainer::SORT_TITLE); $sma->setTitle($this->lng->txt('sorting_title_header')); $sma->setInfo($this->lng->txt('sorting_info_title')); $sog->addOption($sma); $sti = new ilRadioOption(); $sti->setValue(ilContainer::SORT_MANUAL); $sti->setTitle($this->lng->txt('sorting_manual_header')); $sti->setInfo($this->lng->txt('sorting_info_manual')); $sog->addOption($sti); $a_form->addItem($sog); }
/** * Init object creation form * * @param string $a_new_type * * @return ilPropertyFormGUI */ protected function initCreateForm($a_new_type) { global $lng; include_once "Services/Form/classes/class.ilPropertyFormGUI.php"; $form = new ilPropertyFormGUI(); $form->setTarget("_top"); $form->setFormAction($this->ctrl->getFormAction($this, "save")); $form->setTitle($this->lng->txt($a_new_type . "_new")); // title $ti = new ilTextInputGUI($this->lng->txt("title"), "title"); $ti->setSize(min(40, ilObject::TITLE_LENGTH)); $ti->setMaxLength(ilObject::TITLE_LENGTH); $ti->setRequired(true); $form->addItem($ti); // description $ta = new ilTextAreaInputGUI($this->lng->txt("description"), "desc"); $ta->setCols(40); $ta->setRows(2); $form->addItem($ta); $services_group = new ilRadioGroupInputGUI($lng->txt("cld_service"), "service"); $services_group->setRequired(true); foreach (ilCloudConnector::getActiveServices() as $service) { $option = new ilRadioOption($service, $service); $hook_object = ilCloudConnector::getPluginHookClass($option->getValue()); $option->setTitle($hook_object->txt($service)); $option->setInfo($hook_object->txt("create_info")); $this->plugin_service = ilCloudConnector::getServiceClass($service, 0, false); $init_gui = ilCloudConnector::getCreationGUIClass($this->plugin_service); if ($init_gui) { $init_gui->initPluginCreationFormSection($option); } $services_group->addOption($option); } //Select first radio-button by default $services_group->setValue(array_shift($services_group->getOptions())->getValue()); $form->addItem($services_group); $form = $this->initDidacticTemplate($form); $form->addCommandButton("save", $this->lng->txt($a_new_type . "_add")); $form->addCommandButton("cancel", $this->lng->txt("cancel")); return $form; }
/** * init create/edit form * * @access protected * @param string edit or create * @return */ protected function initForm($a_mode = 'edit') { global $ilUser, $tpl, $tree; if (is_object($this->form)) { return true; } include_once "./Services/Form/classes/class.ilPropertyFormGUI.php"; $this->form = new ilPropertyFormGUI(); switch ($a_mode) { case 'edit': $this->form->setFormAction($this->ctrl->getFormAction($this, 'update')); break; default: $this->form->setTableWidth('600px'); $this->form->setFormAction($this->ctrl->getFormAction($this, 'save')); break; } // title $title = new ilTextInputGUI($this->lng->txt('title'), 'title'); $title->setSubmitFormOnEnter(true); $title->setValue($this->object->getTitle()); $title->setSize(40); $title->setMaxLength(128); $title->setRequired(true); $this->form->addItem($title); // desc $desc = new ilTextAreaInputGUI($this->lng->txt('description'), 'desc'); $desc->setValue($this->object->getLongDescription()); $desc->setRows(2); $desc->setCols(40); $this->form->addItem($desc); // Group type $grp_type = new ilRadioGroupInputGUI($this->lng->txt('grp_typ'), 'grp_type'); if ($a_mode == 'edit') { $type = $this->object->getGroupType() ? $this->object->getGroupType() : $this->object->readGroupStatus(); } else { $type = $this->object->getGroupType() ? $this->object->getGroupType() : GRP_TYPE_PUBLIC; } $grp_type->setValue($type); $grp_type->setRequired(true); // PUBLIC GROUP $opt_public = new ilRadioOption($this->lng->txt('grp_public'), GRP_TYPE_PUBLIC, $this->lng->txt('grp_public_info')); $grp_type->addOption($opt_public); // CLOSED GROUP $opt_closed = new ilRadioOption($this->lng->txt('grp_closed'), GRP_TYPE_CLOSED, $this->lng->txt('grp_closed_info')); $grp_type->addOption($opt_closed); if ($a_mode == 'update_group_type') { $grp_type->setAlert($this->lng->txt('grp_type_changed_info')); } $this->form->addItem($grp_type); if ($a_mode == 'edit') { // Group registration ############################################################ $pres = new ilFormSectionHeaderGUI(); $pres->setTitle($this->lng->txt('grp_setting_header_registration')); $this->form->addItem($pres); // Registration type $reg_type = new ilRadioGroupInputGUI($this->lng->txt('group_registration_mode'), 'registration_type'); $reg_type->setValue($this->object->getRegistrationType()); $opt_dir = new ilRadioOption($this->lng->txt('grp_reg_direct'), GRP_REGISTRATION_DIRECT); #$this->lng->txt('grp_reg_direct_info')); $reg_type->addOption($opt_dir); $opt_pass = new ilRadioOption($this->lng->txt('grp_pass_request'), GRP_REGISTRATION_PASSWORD); $pass = new ilTextInputGUI('', 'password'); $pass->setInfo($this->lng->txt('grp_reg_password_info')); $pass->setValue($this->object->getPassword()); $pass->setSize(10); $pass->setMaxLength(32); $opt_pass->addSubItem($pass); $reg_type->addOption($opt_pass); $opt_req = new ilRadioOption($this->lng->txt('grp_reg_request'), GRP_REGISTRATION_REQUEST, $this->lng->txt('grp_reg_request_info')); $reg_type->addOption($opt_req); $opt_deact = new ilRadioOption($this->lng->txt('grp_reg_disabled'), GRP_REGISTRATION_DEACTIVATED, $this->lng->txt('grp_reg_disabled_info')); $reg_type->addOption($opt_deact); // Registration codes $reg_code = new ilCheckboxInputGUI($this->lng->txt('grp_reg_code'), 'reg_code_enabled'); $reg_code->setChecked($this->object->isRegistrationAccessCodeEnabled()); $reg_code->setValue(1); $reg_code->setInfo($this->lng->txt('grp_reg_code_enabled_info')); $this->form->addItem($reg_type); // time limit $time_limit = new ilCheckboxInputGUI($this->lng->txt('grp_reg_limited'), 'reg_limit_time'); $time_limit->setOptionTitle($this->lng->txt('grp_reg_limit_time')); $time_limit->setChecked($this->object->isRegistrationUnlimited() ? false : true); $this->lng->loadLanguageModule('dateplaner'); include_once './Services/Form/classes/class.ilDateDurationInputGUI.php'; $tpl->addJavaScript('./Services/Form/js/date_duration.js'); $dur = new ilDateDurationInputGUI($this->lng->txt('grp_reg_period'), 'reg'); $dur->setStartText($this->lng->txt('cal_start')); $dur->setEndText($this->lng->txt('cal_end')); $dur->setMinuteStepSize(5); $dur->setShowDate(true); $dur->setShowTime(true); $dur->setStart($this->object->getRegistrationStart()); $dur->setEnd($this->object->getRegistrationEnd()); $time_limit->addSubItem($dur); $this->form->addItem($time_limit); // max member $lim = new ilCheckboxInputGUI($this->lng->txt('reg_grp_max_members_short'), 'registration_membership_limited'); $lim->setValue(1); $lim->setOptionTitle($this->lng->txt('reg_grp_max_members')); $lim->setChecked($this->object->isMembershipLimited()); $max = new ilTextInputGUI('', 'registration_max_members'); $max->setValue($this->object->getMaxMembers() ? $this->object->getMaxMembers() : ''); $max->setTitle($this->lng->txt('members') . ':'); $max->setSize(3); $max->setMaxLength(4); $max->setInfo($this->lng->txt('grp_reg_max_members_info')); $lim->addSubItem($max); $wait = new ilCheckboxInputGUI('', 'waiting_list'); $wait->setValue(1); $wait->setOptionTitle($this->lng->txt('grp_waiting_list')); $wait->setInfo($this->lng->txt('grp_waiting_list_info')); $wait->setChecked($this->object->isWaitingListEnabled() ? true : false); $lim->addSubItem($wait); $this->form->addItem($lim); // Registration codes if (!$this->object->getRegistrationAccessCode()) { include_once './Services/Membership/classes/class.ilMembershipRegistrationCodeUtils.php'; $this->object->setRegistrationAccessCode(ilMembershipRegistrationCodeUtils::generateCode()); } $reg_link = new ilHiddenInputGUI('reg_code'); $reg_link->setValue($this->object->getRegistrationAccessCode()); $this->form->addItem($reg_link); $link = new ilCustomInputGUI($this->lng->txt('grp_reg_code_link')); include_once './Services/Link/classes/class.ilLink.php'; $val = ilLink::_getLink($this->object->getRefId(), $this->object->getType(), array(), '_rcode' . $this->object->getRegistrationAccessCode()); $link->setHTML('<font class="small">' . $val . '</font>'); $reg_code->addSubItem($link); $this->form->addItem($reg_code); // Group presentation $hasParentCourse = $tree->checkForParentType($this->object->getRefId(), 'crs'); $pres = new ilFormSectionHeaderGUI(); $pres->setTitle($this->lng->txt('grp_setting_header_presentation')); $this->form->addItem($pres); // presentation type $view_type = new ilRadioGroupInputGUI($this->lng->txt('grp_presentation_type'), 'view_mode'); if ($hasParentCourse) { switch ($this->object->getViewMode()) { case ilContainer::VIEW_SESSIONS: $course_view_mode = ' (' . $this->lng->txt('cntr_view_sessions') . ')'; break; case ilContainer::VIEW_SIMPLE: $course_view_mode = ' (' . $this->lng->txt('cntr_view_simple') . ')'; break; case ilContainer::VIEW_BY_TYPE: $course_view_mode = ' (' . $this->lng->txt('cntr_view_by_type') . ')'; break; } $opt = new ilRadioOption($this->lng->txt('grp_view_inherit') . $course_view_mode, ilContainer::VIEW_INHERIT); $opt->setInfo($this->lng->txt('grp_view_inherit_info')); $view_type->addOption($opt); } if ($hasParentCourse && $this->object->getViewMode(false) == ilContainer::VIEW_INHERIT) { $view_type->setValue(ilContainer::VIEW_INHERIT); } else { $view_type->setValue($this->object->getViewMode(true)); } $opt = new ilRadioOption($this->lng->txt('cntr_view_simple'), ilContainer::VIEW_SIMPLE); $opt->setInfo($this->lng->txt('grp_view_info_simple')); $view_type->addOption($opt); $opt = new ilRadioOption($this->lng->txt('cntr_view_by_type'), ilContainer::VIEW_BY_TYPE); $opt->setInfo($this->lng->txt('grp_view_info_by_type')); $view_type->addOption($opt); $this->form->addItem($view_type); $sog = new ilRadioGroupInputGUI($this->lng->txt('sorting_header'), 'sor'); $sog->setRequired(true); if ($a_mode == 'edit') { $sog->setValue(ilContainerSortingSettings::_readSortMode(ilObject::_lookupObjId($this->object->getRefId()))); } elseif ($hasParentCourse) { $sog->setValue(ilContainer::SORT_INHERIT); } else { $sog->setValue(ilContainer::SORT_TITLE); } if ($hasParentCourse) { $sde = new ilRadioOption(); $sde->setValue(ilContainer::SORT_INHERIT); $title = $this->lng->txt('sort_inherit_prefix'); $title .= ' (' . ilContainerSortingSettings::sortModeToString(ilContainerSortingSettings::lookupSortModeFromParentContainer(ilObject::_lookupObjectId($ref_id))) . ') '; $sde->setTitle($title); $sde->setInfo($this->lng->txt('sorting_info_inherit')); $sog->addOption($sde); } $sma = new ilRadioOption(); $sma->setValue(ilContainer::SORT_TITLE); $sma->setTitle($this->lng->txt('sorting_title_header')); $sma->setInfo($this->lng->txt('sorting_info_title')); $sog->addOption($sma); $sti = new ilRadioOption(); $sti->setValue(ilContainer::SORT_MANUAL); $sti->setTitle($this->lng->txt('sorting_manual_header')); $sti->setInfo($this->lng->txt('sorting_info_manual')); $sog->addOption($sti); $this->form->addItem($sog); include_once './Services/Object/classes/class.ilObjectServiceSettingsGUI.php'; ilObjectServiceSettingsGUI::initServiceSettingsForm($this->object->getId(), $this->form, array(ilObjectServiceSettingsGUI::CALENDAR_VISIBILITY, ilObjectServiceSettingsGUI::NEWS_VISIBILITY)); } switch ($a_mode) { case 'create': $this->form->setTitle($this->lng->txt('grp_new')); $this->form->setTitleIcon(ilUtil::getImagePath('icon_grp.png')); $this->form->addCommandButton('save', $this->lng->txt('grp_new')); $this->form->addCommandButton('cancel', $this->lng->txt('cancel')); return true; case 'edit': $this->form->setTitle($this->lng->txt('grp_edit')); $this->form->setTitleIcon(ilUtil::getImagePath('icon_grp.png')); // Edit ecs export settings include_once 'Modules/Group/classes/class.ilECSGroupSettings.php'; $ecs = new ilECSGroupSettings($this->object); $ecs->addSettingsToForm($this->form, 'grp'); $this->form->addCommandButton('update', $this->lng->txt('save')); $this->form->addCommandButton('cancel', $this->lng->txt('cancel')); return true; case 'update_group_type': $grp_type->setValue($type == GRP_TYPE_PUBLIC ? GRP_TYPE_CLOSED : GRP_TYPE_PUBLIC); $this->form->setTitle($this->lng->txt('grp_edit')); $this->form->setTitleIcon(ilUtil::getImagePath('icon_grp.png')); return true; } return true; }
/** * Append sorting settings to property form * @param ilPropertyFormGUI $form * @param type $a_sorting_settings */ protected function initSortingForm(ilPropertyFormGUI $form, array $a_sorting_settings) { include_once 'Services/Container/classes/class.ilContainerSortingSettings.php'; include_once './Services/Container/classes/class.ilContainer.php'; $settings = new ilContainerSortingSettings($this->object->getId()); $sort = new ilRadioGroupInputGUI($this->lng->txt('sorting_header'), "sorting"); if (in_array(ilContainer::SORT_INHERIT, $a_sorting_settings)) { $sort_inherit = new ilRadioOption(); $sort_inherit->setTitle($this->lng->txt('sort_inherit_prefix') . ' (' . ilContainerSortingSettings::sortModeToString(ilContainerSortingSettings::lookupSortModeFromParentContainer($this->object->getId())) . ') '); $sort_inherit->setValue(ilContainer::SORT_INHERIT); $sort_inherit->setInfo($this->lng->txt('sorting_info_inherit')); $sort->addOption($sort_inherit); } if (in_array(ilContainer::SORT_TITLE, $a_sorting_settings)) { $sort_title = new ilRadioOption($this->lng->txt('sorting_title_header'), ilContainer::SORT_TITLE); $sort_title->setInfo($this->lng->txt('sorting_info_title')); $this->initSortingDirectionForm($settings, $sort_title, 'title'); $sort->addOption($sort_title); } if (in_array(ilContainer::SORT_CREATION, $a_sorting_settings)) { $sort_activation = new ilRadioOption($this->lng->txt('sorting_creation_header'), ilContainer::SORT_CREATION); $sort_activation->setInfo($this->lng->txt('sorting_creation_info')); $this->initSortingDirectionForm($settings, $sort_activation, 'creation'); $sort->addOption($sort_activation); } if (in_array(ilContainer::SORT_ACTIVATION, $a_sorting_settings)) { $sort_activation = new ilRadioOption($this->lng->txt('crs_sort_activation'), ilContainer::SORT_ACTIVATION); $sort_activation->setInfo($this->lng->txt('crs_sort_timing_info')); $this->initSortingDirectionForm($settings, $sort_activation, 'activation'); $sort->addOption($sort_activation); } if (in_array(ilContainer::SORT_MANUAL, $a_sorting_settings)) { $sort_manual = new ilRadioOption($this->lng->txt('sorting_manual_header'), ilContainer::SORT_MANUAL); $sort_manual->setInfo($this->lng->txt('sorting_info_manual')); $this->initManualSortingOptionForm($settings, $sort_manual, "manual", $a_sorting_settings); $sort->addOption($sort_manual); } $sort->setValue($settings->getSortMode()); $form->addItem($sort); return $form; }
public function settings() { global $rbacreview; $this->tabs_gui->setSubTabActive('shib_settings'); // set already saved data or default value for port $settings = $this->ilias->getAllSettings(); // Compose role list $role_list = $rbacreview->getRolesByFilter(2); $role = array(); if (!isset($settings["shib_user_default_role"])) { $settings["shib_user_default_role"] = 4; } if (!isset($settings["shib_idp_list"]) || $settings["shib_idp_list"] == '') { $settings["shib_idp_list"] = "urn:mace:organization1:providerID, Example Organization 1\nurn:mace:organization2:providerID, Example Organization 2, /Shibboleth.sso/WAYF/SWITCHaai"; } if (!isset($settings["shib_login_button"]) || $settings["shib_login_button"] == '') { $settings["shib_login_button"] = "templates/default/images/shib_login_button.png"; } if (!isset($settings["shib_hos_type"]) || $settings["shib_hos_type"] == '') { $settings["shib_hos_type"] = 'internal_wayf'; } foreach ($role_list as $data) { $role[$data["obj_id"]] = $data["title"]; } // Set text field content $shib_settings = array('shib_login', 'shib_title', 'shib_firstname', 'shib_lastname', 'shib_email', 'shib_gender', 'shib_institution', 'shib_department', 'shib_zipcode', 'shib_city', 'shib_country', 'shib_street', 'shib_phone_office', 'shib_phone_home', 'shib_phone_mobile', 'shib_language', 'shib_matriculation'); //set PropertyFormGUI include_once "./Services/Form/classes/class.ilPropertyFormGUI.php"; $propertys = new ilPropertyFormGUI(); $propertys->setTitle($this->lng->txt("shib")); $propertys->setFormAction($this->ctrl->getFormAction($this, "save")); $propertys->addCommandButton("save", $this->lng->txt("save")); $propertys->addCommandButton("settings", $this->lng->txt("cancel")); //set enable shibboleth support $enable = new ilCheckboxInputGUI(); $enable->setTitle($this->lng->txt("shib_active")); $read_me_link = "./Services/AuthShibboleth/README.SHIBBOLETH.txt"; $info = "<a href='" . $read_me_link . "' target='_blank'>" . $this->lng->txt("auth_shib_instructions") . "</a>"; $enable->setInfo($info); $enable->setPostVar("shib[active]"); $enable->setChecked($settings["shib_active"]); //set allow local authentication $local = new ilCheckboxInputGUI(); $local->setTitle($this->lng->txt("auth_allow_local")); $local->setPostVar("shib[auth_allow_local]"); $local->setChecked($settings['shib_auth_allow_local']); //set user default role $defaultrole = new ilSelectInputGUI(); $defaultrole->setTitle($this->lng->txt("shib_user_default_role")); $defaultrole->setPostVar("shib[user_default_role]"); $defaultrole->setOptions($role); $defaultrole->setRequired(true); $defaultrole->setValue($settings["shib_user_default_role"]); //set name of federation $name = new ilTextInputGUI(); $name->setTitle($this->lng->txt("shib_federation_name")); $name->setPostVar("shib[federation_name]"); $name->setSize(40); $name->setMaxLength(50); $name->setRequired(true); $name->setValue(stripslashes($settings["shib_federation_name"])); //set Organize selection group include_once "./Services/Form/classes/class.ilRadioGroupInputGUI.php"; include_once "./Services/Form/classes/class.ilRadioOption.php"; $organize = new ilRadioGroupInputGUI(); $organize->setTitle($this->lng->txt("shib_login_type")); $organize->setPostVar("shib[hos_type]"); $organize->setRequired(true); $organize->setValue($settings["shib_hos_type"]); //set 1. option internalwayf $internalwayf = new ilRadioOption(); $internalwayf->setTitle($this->lng->txt("shib_login_internal_wayf")); $internalwayf->setValue("internal_wayf"); //set 1. option internalwayf textbox idplist $idplist = new ilTextAreaInputGUI(); $idplist->setInfo($this->lng->txt("shib_idp_list")); $idplist->setPostVar("shib[idp_list]"); $idplist->setRows(3); $idplist->setCols(50); $idplist->setValue($settings["shib_idp_list"]); //set 2. Option externalwayf $externalwayf = new ilRadioOption(); $externalwayf->setTitle($this->lng->txt("shib_login_external_wayf")); $externalwayf->setValue("external_wayf"); //set 2. Option externalwayf textfield path to login button image $loginbutton = new ilTextInputGUI(); $loginbutton->setInfo($this->lng->txt("shib_login_button")); $loginbutton->setPostVar("shib[login_button]"); $loginbutton->setSize(50); $loginbutton->setMaxLength(255); $loginbutton->setValue($settings["shib_login_button"]); //set 3. Option embeddedwayf $embeddedwayf = new ilRadioOption(); $embeddedwayf->setTitle($this->lng->txt("shib_login_embedded_wayf")); $embeddedwayf->setInfo($this->lng->txt("shib_login_embedded_wayf_description")); $embeddedwayf->setValue("embedded_wayf"); //set login instructions $logininstruction = new ilTextAreaInputGUI(); $logininstruction->setTitle($this->lng->txt("auth_login_instructions")); $logininstruction->setPostVar("shib[login_instructions]"); $logininstruction->setRows(3); $logininstruction->setCols(50); $logininstruction->setValue(stripslashes($settings["shib_login_instructions"])); //set path to data manipulation API $dataconv = new ilTextInputGUI(); $dataconv->setTitle($this->lng->txt("shib_data_conv")); $dataconv->setPostVar("shib[data_conv]"); $dataconv->setSize(80); $dataconv->setMaxLength(512); $dataconv->setValue($settings["shib_data_conv"]); //field mappings $fields = array(); foreach ($shib_settings as $setting) { $field = ereg_replace('shib_', '', $setting); $textinput = new ilTextInputGUI(); $textinput->setTitle($this->lng->txt($setting)); $textinput->setPostVar("shib[" . $field . "]"); $textinput->setValue($settings[$setting]); $textinput->setSize(40); $textinput->setMaxLength(50); $checkinput = new ilCheckboxInputGUI(""); $checkinput->setOptionTitle($this->lng->txt("shib_update")); $checkinput->setPostVar("shib[update_" . $field . "]"); $checkinput->setChecked($settings["shib_update_" . $field]); if ($setting == 'shib_login' || $setting == 'shib_title' || $setting == 'shib_firstname' || $setting == 'shib_lastname' || $setting == 'shib_email') { $textinput->setRequired(true); } $fields[$setting] = array("text" => $textinput, "check" => $checkinput); } $propertys->addItem($enable); $propertys->addItem($local); $propertys->addItem($defaultrole); $propertys->addItem($name); $internalwayf->addSubItem($idplist); $organize->addOption($internalwayf); $externalwayf->addSubItem($loginbutton); $organize->addOption($externalwayf); $organize->addOption($embeddedwayf); $propertys->addItem($organize); $propertys->addItem($logininstruction); $propertys->addItem($dataconv); foreach ($shib_settings as $setting) { $propertys->addItem($fields[$setting]["text"]); if ($setting != "shib_login") { $propertys->addItem($fields[$setting]["check"]); } } $this->tpl->setContent($propertys->getHTML()); }