/** * init edit/create category form * * @access protected * @return */ protected function initFormCategory($a_mode) { global $rbacsystem, $ilUser; include_once './Services/Form/classes/class.ilPropertyFormGUI.php'; include_once './Services/Calendar/classes/class.ilCalendarCategory.php'; include_once './Services/Calendar/classes/class.ilCalendarCategories.php'; $cat_info = ilCalendarCategories::_getInstance()->getCategoryInfo((int) $_GET['category_id']); $this->form = new ilPropertyFormGUI(); #$this->form->setTableWidth('40%'); switch ($a_mode) { case 'edit': $category = new ilCalendarCategory((int) $_GET['category_id']); $this->form->setTitle($this->lng->txt('cal_edit_category')); $this->ctrl->saveParameter($this, array('seed', 'category_id')); $this->form->setFormAction($this->ctrl->getFormAction($this)); if ($this->isEditable()) { $this->form->addCommandButton('update', $this->lng->txt('save')); /* if($cat_info['type'] == ilCalendarCategory::TYPE_USR) { $this->form->addCommandButton('shareSearch',$this->lng->txt('cal_share')); } $this->form->addCommandButton('confirmDelete',$this->lng->txt('delete')); */ $this->form->addCommandButton('manage', $this->lng->txt('cancel')); } break; case 'create': $this->editable = true; $category = new ilCalendarCategory(0); $this->ctrl->saveParameter($this, array('category_id')); $this->form->setFormAction($this->ctrl->getFormAction($this)); $this->form->setTitle($this->lng->txt('cal_add_category')); $this->form->addCommandButton('save', $this->lng->txt('save')); $this->form->addCommandButton('manage', $this->lng->txt('cancel')); break; } // Calendar name $title = new ilTextInputGUI($this->lng->txt('cal_calendar_name'), 'title'); if ($a_mode == 'edit') { $title->setDisabled(!$this->isEditable()); } $title->setRequired(true); $title->setMaxLength(64); $title->setSize(32); $title->setValue($category->getTitle()); $this->form->addItem($title); include_once './Services/Calendar/classes/class.ilCalendarSettings.php'; if ($a_mode == 'create' and $rbacsystem->checkAccess('edit_event', ilCalendarSettings::_getInstance()->getCalendarSettingsId())) { $type = new ilRadioGroupInputGUI($this->lng->txt('cal_cal_type'), 'type'); $type->setValue($category->getType()); $type->setRequired(true); $opt = new ilRadioOption($this->lng->txt('cal_type_personal'), ilCalendarCategory::TYPE_USR); $type->addOption($opt); $opt = new ilRadioOption($this->lng->txt('cal_type_system'), ilCalendarCategory::TYPE_GLOBAL); $type->addOption($opt); $type->setInfo($this->lng->txt('cal_type_info')); $this->form->addItem($type); } $color = new ilColorPickerInputGUI($this->lng->txt('cal_calendar_color'), 'color'); $color->setValue($category->getColor()); if (!$this->isEditable()) { $color->setDisabled(true); } $color->setRequired(true); $this->form->addItem($color); $location = new ilRadioGroupInputGUI($this->lng->txt('cal_type_rl'), 'type_rl'); $location->setDisabled($a_mode == 'edit'); $location_local = new ilRadioOption($this->lng->txt('cal_type_local'), ilCalendarCategory::LTYPE_LOCAL); $location->addOption($location_local); $location_remote = new ilRadioOption($this->lng->txt('cal_type_remote'), ilCalendarCategory::LTYPE_REMOTE); $location->addOption($location_remote); $location->setValue($category->getLocationType()); $url = new ilTextInputGUI($this->lng->txt('cal_remote_url'), 'remote_url'); $url->setDisabled($a_mode == 'edit'); $url->setValue($category->getRemoteUrl()); $url->setMaxLength(500); $url->setSize(60); $url->setRequired(true); $location_remote->addSubItem($url); $user = new ilTextInputGUI($this->lng->txt('username'), 'remote_user'); $user->setDisabled($a_mode == 'edit'); $user->setValue($category->getRemoteUser()); $user->setMaxLength(50); $user->setSize(20); $user->setRequired(false); $location_remote->addSubItem($user); $pass = new ilPasswordInputGUI($this->lng->txt('password'), 'remote_pass'); $pass->setDisabled($a_mode == 'edit'); $pass->setValue($category->getRemotePass()); $pass->setMaxLength(50); $pass->setSize(20); $pass->setRetype(false); $pass->setInfo($this->lng->txt('remote_pass_info')); $location_remote->addSubItem($pass); $this->form->addItem($location); }
/** * init settings form * * @access protected */ protected function initSettingsForm($a_mode = 'update') { if (is_object($this->form)) { return true; } include_once 'Services/Form/classes/class.ilPropertyFormGUI.php'; $this->form = new ilPropertyFormGUI(); $this->form->setFormAction($this->ctrl->getFormAction($this, 'settings')); $this->form->setTitle($this->lng->txt('ecs_connection_settings')); $ena = new ilCheckboxInputGUI($this->lng->txt('ecs_active'), 'active'); $ena->setChecked($this->settings->isEnabled()); $ena->setValue(1); $this->form->addItem($ena); $ser = new ilTextInputGUI($this->lng->txt('ecs_server_url'), 'server'); $ser->setValue((string) $this->settings->getServer()); $ser->setRequired(true); $this->form->addItem($ser); $pro = new ilSelectInputGUI($this->lng->txt('ecs_protocol'), 'protocol'); // fixed to https #$pro->setOptions(array(ilECSSetting::PROTOCOL_HTTP => $this->lng->txt('http'), # ilECSSetting::PROTOCOL_HTTPS => $this->lng->txt('https'))); $pro->setOptions(array(ilECSSetting::PROTOCOL_HTTPS => 'HTTPS')); $pro->setValue($this->settings->getProtocol()); $pro->setRequired(true); $this->form->addItem($pro); $por = new ilTextInputGUI($this->lng->txt('ecs_port'), 'port'); $por->setSize(5); $por->setMaxLength(5); $por->setValue((string) $this->settings->getPort()); $por->setRequired(true); $this->form->addItem($por); $tcer = new ilRadioGroupInputGUI($this->lng->txt('ecs_auth_type'), 'auth_type'); $tcer->setValue($this->settings->getAuthType()); $this->form->addItem($tcer); // Certificate based authentication $cert_based = new ilRadioOption($this->lng->txt('ecs_auth_type_cert'), ilECSSetting::AUTH_CERTIFICATE); $tcer->addOption($cert_based); $cli = new ilTextInputGUI($this->lng->txt('ecs_client_cert'), 'client_cert'); $cli->setSize(60); $cli->setValue((string) $this->settings->getClientCertPath()); $cli->setRequired(true); $cert_based->addSubItem($cli); $key = new ilTextInputGUI($this->lng->txt('ecs_cert_key'), 'key_path'); $key->setSize(60); $key->setValue((string) $this->settings->getKeyPath()); $key->setRequired(true); $cert_based->addSubItem($key); $cerp = new ilTextInputGUI($this->lng->txt('ecs_key_password'), 'key_password'); $cerp->setSize(12); $cerp->setValue((string) $this->settings->getKeyPassword()); $cerp->setInputType('password'); $cerp->setRequired(true); $cert_based->addSubItem($cerp); $cer = new ilTextInputGUI($this->lng->txt('ecs_ca_cert'), 'ca_cert'); $cer->setSize(60); $cer->setValue((string) $this->settings->getCACertPath()); $cer->setRequired(true); $cert_based->addSubItem($cer); // Apache auth $apa_based = new ilRadioOption($this->lng->txt('ecs_auth_type_apache'), ilECSSetting::AUTH_APACHE); $tcer->addOption($apa_based); $user = new ilTextInputGUI($this->lng->txt('ecs_apache_user'), 'auth_user'); $user->setSize(32); $user->setValue((string) $this->settings->getAuthUser()); $user->setRequired(true); $apa_based->addSubItem($user); $pass = new ilPasswordInputGUI($this->lng->txt('ecs_apache_pass'), 'auth_pass'); $pass->setRetype(false); $pass->setSize(16); $pass->setMaxLength(32); $pass->setValue((string) $this->settings->getAuthPass()); $pass->setRequired(true); $apa_based->addSubItem($pass); $ser = new ilNonEditableValueGUI($this->lng->txt('cert_serial')); $ser->setValue($this->settings->getCertSerialNumber() ? $this->settings->getCertSerialNumber() : $this->lng->txt('ecs_no_value')); $cert_based->addSubItem($ser); $loc = new ilFormSectionHeaderGUI(); $loc->setTitle($this->lng->txt('ecs_local_settings')); $this->form->addItem($loc); $pol = new ilDurationInputGUI($this->lng->txt('ecs_polling'), 'polling'); $pol->setShowDays(false); $pol->setShowHours(false); $pol->setShowMinutes(true); $pol->setShowSeconds(true); $pol->setSeconds($this->settings->getPollingTimeSeconds()); $pol->setMinutes($this->settings->getPollingTimeMinutes()); $pol->setRequired(true); $pol->setInfo($this->lng->txt('ecs_polling_info')); $this->form->addItem($pol); $imp = new ilCustomInputGUI($this->lng->txt('ecs_import_id')); $imp->setRequired(true); $tpl = new ilTemplate('tpl.ecs_import_id_form.html', true, true, 'Services/WebServices/ECS'); $tpl->setVariable('SIZE', 5); $tpl->setVariable('MAXLENGTH', 11); $tpl->setVariable('POST_VAR', 'import_id'); $tpl->setVariable('PROPERTY_VALUE', $this->settings->getImportId()); if ($this->settings->getImportId()) { $tpl->setVariable('COMPLETE_PATH', $this->buildPath($this->settings->getImportId())); } $imp->setHTML($tpl->get()); $imp->setInfo($this->lng->txt('ecs_import_id_info')); $this->form->addItem($imp); $loc = new ilFormSectionHeaderGUI(); $loc->setTitle($this->lng->txt('ecs_remote_user_settings')); $this->form->addItem($loc); $role = new ilSelectInputGUI($this->lng->txt('ecs_role'), 'global_role'); $role->setOptions($this->prepareRoleSelect()); $role->setValue($this->settings->getGlobalRole()); $role->setInfo($this->lng->txt('ecs_global_role_info')); $role->setRequired(true); $this->form->addItem($role); $duration = new ilDurationInputGUI($this->lng->txt('ecs_account_duration'), 'duration'); $duration->setInfo($this->lng->txt('ecs_account_duration_info')); $duration->setMonths($this->settings->getDuration()); $duration->setShowSeconds(false); $duration->setShowMinutes(false); $duration->setShowHours(false); $duration->setShowDays(false); $duration->setShowMonths(true); $duration->setRequired(true); $this->form->addItem($duration); // Email recipients $loc = new ilFormSectionHeaderGUI(); $loc->setTitle($this->lng->txt('ecs_notifications')); $this->form->addItem($loc); $rcp_user = new ilTextInputGUI($this->lng->txt('ecs_user_rcp'), 'user_recipients'); $rcp_user->setValue((string) $this->settings->getUserRecipientsAsString()); $rcp_user->setInfo($this->lng->txt('ecs_user_rcp_info')); $this->form->addItem($rcp_user); $rcp_econ = new ilTextInputGUI($this->lng->txt('ecs_econ_rcp'), 'econtent_recipients'); $rcp_econ->setValue((string) $this->settings->getEContentRecipientsAsString()); $rcp_econ->setInfo($this->lng->txt('ecs_econ_rcp_info')); $this->form->addItem($rcp_econ); $rcp_app = new ilTextInputGUI($this->lng->txt('ecs_approval_rcp'), 'approval_recipients'); $rcp_app->setValue((string) $this->settings->getApprovalRecipientsAsString()); $rcp_app->setInfo($this->lng->txt('ecs_approval_rcp_info')); $this->form->addItem($rcp_app); if ($a_mode == 'update') { $this->form->addCommandButton('update', $this->lng->txt('save')); } else { $this->form->addCommandButton('save', $this->lng->txt('save')); } $this->form->addCommandButton('overview', $this->lng->txt('cancel')); }
/** * Role Mapping Tab * @global ilToolbarGUI $ilToolbar */ public function roleMapping() { global $ilToolbar; $this->setSubTabs(); $this->tabs_gui->setSubTabActive('ldap_role_mapping'); $ilToolbar->addButton($this->lng->txt("ldap_new_role_assignment"), $this->ctrl->getLinkTarget($this, 'addRoleMapping')); include_once "./Services/Form/classes/class.ilPropertyFormGUI.php"; //Set propertyform for synchronization settings include_once "./Services/Form/classes/class.ilCombinationInputGUI.php"; $propertie_form = new ilPropertyFormGUI(); $propertie_form->setTitle($this->lng->txt('ldap_role_settings')); $propertie_form->setFormAction($this->ctrl->getFormAction($this, "saveSyncronizationSettings")); $propertie_form->addCommandButton("saveSyncronizationSettings", $this->lng->txt('save')); $role_active = new ilCheckboxInputGUI($this->lng->txt('ldap_role_active')); $role_active->setPostVar('role_sync_active'); $role_active->setChecked($this->server->enabledRoleSynchronization() ? true : false); $propertie_form->addItem($role_active); $binding = new ilCombinationInputGUI($this->lng->txt('ldap_server_binding')); $binding->setInfo($this->lng->txt('ldap_role_bind_user_info')); $user = new ilTextInputGUI(""); $user->setPostVar("role_bind_user"); $user->setValue($this->server->getRoleBindDN()); $user->setSize(50); $user->setMaxLength(255); $binding->addCombinationItem(0, $user, $this->lng->txt('ldap_role_bind_user')); $pass = new ilPasswordInputGUI(""); $pass->setPostVar("role_bind_pass"); $pass->setValue($this->server->getRoleBindPassword()); $pass->setSize(12); $pass->setMaxLength(36); $pass->setRetype(false); $binding->addCombinationItem(1, $pass, $this->lng->txt('ldap_role_bind_pass')); $propertie_form->addItem($binding); $this->tpl->addBlockFile('ADM_CONTENT', 'adm_content', 'tpl.ldap_role_mappings.html', 'Services/LDAP'); $this->tpl->setVariable("NEW_ASSIGNMENT_TBL", $propertie_form->getHTML()); //Set Group Assignments Table if mappings exist include_once 'Services/LDAP/classes/class.ilLDAPRoleGroupMappingSettings.php'; $mapping_instance = ilLDAPRoleGroupMappingSettings::_getInstanceByServerId($this->server->getServerId()); $mappings = $mapping_instance->getMappings(); if (count($mappings)) { include_once "./Services/LDAP/classes/class.ilLDAPRoleMappingTableGUI.php"; $table_gui = new ilLDAPRoleMappingTableGUI($this, $this->server->getServerId(), "roleMapping"); $table_gui->setTitle($this->lng->txt('ldap_role_group_assignments')); $table_gui->setData($mappings); $this->tpl->setVariable("RULES_TBL", $table_gui->getHTML()); } }
/** * Show account migration screen * @param string $a_message */ public function showAccountMigration($a_message = '') { /** * @var $tpl ilTemplate * @var $lng ilLanguage */ global $tpl, $lng; $lng->loadLanguageModule('auth'); self::initStartUpTemplate('tpl.login_account_migration.html'); include_once 'Services/Form/classes/class.ilPropertyFormGUI.php'; $form = new ilPropertyFormGUI(); $form->setFormAction($this->ctrl->getFormAction($this, 'migrateAccount')); $form->setTitle($lng->txt('auth_account_migration')); $form->addCommandButton('migrateAccount', $lng->txt('save')); $form->addCommandButton('showLogin', $lng->txt('cancel')); $rad = new ilRadioGroupInputGUI($lng->txt('auth_account_migration_name'), 'account_migration'); $rad->setValue(1); $keep = new ilRadioOption($lng->txt('auth_account_migration_keep'), 1, $lng->txt('auth_info_migrate')); $user = new ilTextInputGUI($lng->txt('login'), 'mig_username'); $user->setRequired(true); $user->setValue(ilUtil::prepareFormOutput($_POST['mig_username'])); $user->setSize(32); $user->setMaxLength(128); $keep->addSubItem($user); $pass = new ilPasswordInputGUI($lng->txt('password'), 'mig_password'); $pass->setRetype(false); $pass->setRequired(true); $pass->setValue(ilUtil::prepareFormOutput($_POST['mig_password'])); $pass->setSize(12); $pass->setMaxLength(128); $keep->addSubItem($pass); $rad->addOption($keep); $new = new ilRadioOption($lng->txt('auth_account_migration_new'), 2, $lng->txt('auth_info_add')); $rad->addOption($new); $form->addItem($rad); $tpl->setVariable('MIG_FORM', $form->getHTML()); if (strlen($a_message)) { ilUtil::sendFailure($a_message); } $tpl->show('DEFAULT'); }
/** * add type specific input fields to a form * * @param object form, property or radio option * @param array (assoc) input values * @param string configuration level ("type" or "object") * @param string parent field value * @param string parent option value * @param int maximum recursion depth */ function addFormElements($a_object, $a_values = array(), $a_level = "object", $a_parentfield = '', $a_parentvalue = '', $a_maxdepth = "3") { // recursion end if ($a_maxdepth == 0) { return; } foreach ($this->getInputFields($a_level, $a_parentfield, $a_parentvalue) as $field) { $value = $a_values['field_' . $field->field_name]; $value = $value ? $value : $field->default; switch ($field->field_type) { case self::FIELDTYPE_HEADER: $item = new ilFormSectionHeaderGUI(); $item->setTitle($field->title); break; case self::FIELDTYPE_DESCRIPTION: $item = new ilCustomInputGUI($field->title); $item->setHtml(nl2br($field->description)); break; case self::FIELDTYPE_TEXT: $item = new ilTextInputGUI($field->title, 'field_' . $field->field_name); $item->setInfo($field->description); $item->setRequired($field->required ? true : false); $item->setSize($field->size); $item->setValue($value); break; case self::FIELDTYPE_TEXTAREA: $item = new ilTextAreaInputGUI($field->title, 'field_' . $field->field_name); $item->setInfo($field->description); $item->setRequired($field->required ? true : false); $item->setUseRte($field->richtext ? true : false); $item->setRows($field->rows); $item->setCols($field->cols); $item->setValue($value); break; case self::FIELDTYPE_PASSWORD: $item = new ilPasswordInputGUI($field->title, 'field_' . $field->field_name); $item->setInfo($field->description); $item->setRequired($field->required ? true : false); $item->setValue($value); break; case self::FIELDTYPE_CHECKBOX: $item = new ilCheckboxInputGUI($field->title, 'field_' . $field->field_name); $item->setInfo($field->description); if ($value) { $item->setChecked(true); } break; case self::FIELDTYPE_RADIO: $item = new ilRadioGroupInputGUI($field->title, 'field_' . $field->field_name); $item->setInfo($field->description); $item->setValue($value); foreach ($field->options as $option) { $ropt = new ilRadioOption($option->title, $option->value); $ropt->setInfo($option->description); // add the sub items to the option $item->addOption($ropt); $this->addFormElements($ropt, $a_values, $a_level, $field->field_name, $option->value, $a_maxdepth - 1); } break; default: continue 2; } // add the item to the form or to the parent item if (is_a($a_object, 'ilPropertyFormGUI')) { $a_object->addItem($item); } else { $a_object->addSubItem($item); } // add the sub items to the item if (is_a($item, 'ilSubEnabledFormPropertyGUI')) { $this->addFormElements($item, $a_level, $a_values, $field->field_name, '', $a_maxdepth - 1); } } }
/** * Show account migration screen * * @access public * @param * */ public function showAccountMigration($a_message = '') { global $tpl, $lng; $lng->loadLanguageModule('auth'); $tpl->addBlockFile("CONTENT", "content", "tpl.startup_screen.html", "Services/Init"); $tpl->setVariable("HEADER_ICON", ilUtil::getImagePath("HeaderIcon.png")); $tpl->addBlockFile("STARTUP_CONTENT", "startup_content", "tpl.login_account_migration.html", "Services/Init"); include_once './Services/Form/classes/class.ilPropertyFormGUI.php'; $form = new ilPropertyFormGUI(); $form->setFormAction($this->ctrl->getFormAction($this, 'migrateAccount')); $form->setTitle($lng->txt('auth_account_migration')); $form->addCommandButton('migrateAccount', $lng->txt('save')); $form->addCommandButton('showLogin', $lng->txt('cancel')); $rad = new ilRadioGroupInputGUI($lng->txt('auth_account_migration_name'), 'account_migration'); $rad->setValue(1); $keep = new ilRadioOption($lng->txt('auth_account_migration_keep'), 1, $lng->txt('auth_info_migrate')); $user = new ilTextInputGUI($lng->txt('login'), 'mig_username'); $user->setValue(ilUtil::prepareFormOutput($_POST['mig_username'])); $user->setSize(32); $user->setMaxLength(128); $keep->addSubItem($user); $pass = new ilPasswordInputGUI($lng->txt('password'), 'mig_password'); $pass->setValue(ilUtil::prepareFormOutput($_POST['mig_password'])); $pass->setRetype(false); $pass->setSize(12); $pass->setMaxLength(128); $keep->addSubItem($pass); $rad->addOption($keep); $new = new ilRadioOption($lng->txt('auth_account_migration_new'), 2, $lng->txt('auth_info_add')); $rad->addOption($new); $form->addItem($rad); $tpl->setVariable('MIG_FORM', $form->getHTML()); if (strlen($a_message)) { $this->showFailure($a_message); } $tpl->show('DEFAULT'); }