/** * Init category mapping form * @return */ protected function initCategoryMappingForm($a_mode = 'add') { global $ilDB; if (is_object($this->form)) { return true; } include_once './Services/Form/classes/class.ilPropertyFormGUI.php'; include_once './Services/WebServices/ECS/classes/class.ilECSCategoryMappingRule.php'; $this->form = new ilPropertyFormGUI(); if ($a_mode == 'add') { $this->form->setTitle($this->lng->txt('ecs_new_category_mapping')); $this->form->setFormAction($this->ctrl->getFormAction($this, 'categoryMapping')); $this->form->addCommandButton('addCategoryMapping', $this->lng->txt('save')); $this->form->addCommandButton('categoryMapping', $this->lng->txt('cancel')); } else { $this->form->setTitle($this->lng->txt('ecs_edit_category_mapping')); $this->form->setFormAction($this->ctrl->getFormAction($this, 'editCategoryMapping')); $this->form->addCommandButton('updateCategoryMapping', $this->lng->txt('save')); $this->form->addCommandButton('categoryMapping', $this->lng->txt('cancel')); } $imp = new ilCustomInputGUI($this->lng->txt('ecs_import_id'), '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->rule->getContainerId()); if ($this->settings->getImportId()) { $tpl->setVariable('COMPLETE_PATH', $this->buildPath($this->rule->getContainerId())); } $imp->setHTML($tpl->get()); $imp->setInfo($this->lng->txt('ecs_import_id_info')); $this->form->addItem($imp); include_once './Services/WebServices/ECS/classes/class.ilECSCategoryMapping.php'; $select = new ilSelectInputGUI($this->lng->txt('ecs_attribute_name'), 'field'); $select->setValue($this->rule->getFieldName()); $select->setRequired(true); $select->setOptions(ilECSCategoryMapping::getPossibleFields()); $this->form->addItem($select); // Value $value = new ilRadioGroupInputGUI($this->lng->txt('ecs_cat_mapping_type'), 'type'); $value->setValue($this->rule->getMappingType()); $value->setRequired(true); $fixed = new ilRadioOption($this->lng->txt('ecs_cat_mapping_fixed'), ilECSCategoryMappingRule::TYPE_FIXED); $fixed->setInfo($this->lng->txt('ecs_cat_mapping_fixed_info')); $fixed_val = new ilTextInputGUI($this->lng->txt('ecs_cat_mapping_values'), 'mapping_value'); $fixed_val->setValue($this->rule->getMappingValue()); $fixed_val->setMaxLength(255); $fixed_val->setSize(40); $fixed_val->setRequired(true); $fixed->addSubItem($fixed_val); $value->addOption($fixed); $duration = new ilRadioOption($this->lng->txt('ecs_cat_mapping_duration'), ilECSCategoryMappingRule::TYPE_DURATION); $duration->setInfo($this->lng->txt('ecs_cat_mapping_duration_info')); $dur_start = new ilDateTimeInputGUI($this->lng->txt('from'), 'dur_begin'); $dur_start->setDate($this->rule->getDateRangeStart()); $duration->addSubItem($dur_start); $dur_end = new ilDateTimeInputGUI($this->lng->txt('to'), 'dur_end'); $dur_end->setDate($this->rule->getDateRangeEnd()); $duration->addSubItem($dur_end); $value->addOption($duration); $type = new ilRadioOption($this->lng->txt('ecs_cat_mapping_by_type'), ilECSCategoryMappingRule::TYPE_BY_TYPE); $type->setInfo($this->lng->txt('ecs_cat_mapping_by_type_info')); $options = ilECSUtils::getPossibleRemoteTypes(true); $types = new ilSelectInputGUI($this->lng->txt('type'), 'by_type'); $types->setOptions($options); $types->setValue($this->rule->getByType()); $types->setRequired(true); $type->addSubitem($types); $value->addOption($type); $this->form->addItem($value); }
function initAddCodesForm() { global $rbacreview, $ilObjDataCache, $lng; include_once 'Services/Form/classes/class.ilPropertyFormGUI.php'; $this->form_gui = new ilPropertyFormGUI(); $this->form_gui->setFormAction($this->ctrl->getFormAction($this, 'createCodes')); $this->form_gui->setTitle($this->lng->txt('registration_codes_edit_header')); $count = new ilNumberInputGUI($this->lng->txt('registration_codes_number'), 'reg_codes_number'); $count->setSize(4); $count->setMaxLength(4); $count->setMinValue(1); $count->setMaxValue(1000); $count->setRequired(true); $this->form_gui->addItem($count); $sec = new ilFormSectionHeaderGUI(); $sec->setTitle($this->lng->txt('registration_codes_roles_title')); $this->form_gui->addItem($sec); include_once './Services/AccessControl/classes/class.ilObjRole.php'; $options = array("" => $this->lng->txt('registration_codes_no_assigned_role')); foreach ($rbacreview->getGlobalRoles() as $role_id) { if (!in_array($role_id, array(SYSTEM_ROLE_ID, ANONYMOUS_ROLE_ID))) { $options[$role_id] = $ilObjDataCache->lookupTitle($role_id); } } $roles = new ilSelectInputGUI($this->lng->txt("registration_codes_roles"), "reg_codes_role"); $roles->setInfo($this->lng->txt("registration_codes_override_info")); $roles->setOptions($options); $this->form_gui->addItem($roles); $local = new ilTextInputGUI($this->lng->txt("registration_codes_roles_local"), "reg_codes_local"); $local->setMulti(true); $local->setDataSource($this->ctrl->getLinkTarget($this, "getLocalRoleAutoComplete", "", true)); $this->form_gui->addItem($local); $sec = new ilFormSectionHeaderGUI(); $sec->setTitle($this->lng->txt('reg_access_limitations')); $this->form_gui->addItem($sec); $limit = new ilRadioGroupInputGUI($this->lng->txt("reg_access_limitation_mode"), "reg_limit"); $limit->setInfo($this->lng->txt("registration_codes_override_info")); $this->form_gui->addItem($limit); $opt = new ilRadioOption($this->lng->txt("registration_codes_roles_limitation_none"), "none"); $limit->addOption($opt); $opt = new ilRadioOption($this->lng->txt("reg_access_limitation_none"), "unlimited"); $limit->addOption($opt); $opt = new ilRadioOption($this->lng->txt("reg_access_limitation_mode_absolute"), "absolute"); $limit->addOption($opt); $dt = new ilDateTimeInputGUI($this->lng->txt("reg_access_limitation_mode_absolute_target"), "abs_date"); $dt->setRequired(true); $opt->addSubItem($dt); $opt = new ilRadioOption($this->lng->txt("reg_access_limitation_mode_relative"), "relative"); $limit->addOption($opt); $days = new ilTextInputGUI("", "rel_date[d]"); $days->setSize(5); $days->setSuffix($this->lng->txt("days")); $mon = new ilTextInputGUI("", "rel_date[m]"); $mon->setSize(5); $mon->setSuffix($this->lng->txt("months")); $yr = new ilTextInputGUI("", "rel_date[y]"); $yr->setSize(5); $yr->setSuffix($this->lng->txt("years")); // custom input won't reload if (is_array($_POST["rel_date"])) { $days->setValue($_POST["rel_date"]["d"]); $mon->setValue($_POST["rel_date"]["m"]); $yr->setValue($_POST["rel_date"]["y"]); } $dur = new ilCustomInputGUI($this->lng->txt("reg_access_limitation_mode_relative_target")); $dur->setRequired(true); $dur->setHTML($days->getToolbarHTML() . " " . $mon->getToolbarHTML() . " " . $yr->getToolbarHTML()); $opt->addSubItem($dur); $this->form_gui->addCommandButton('createCodes', $this->lng->txt('create')); }
/** * Init settings form */ protected function initFormCSettings() { include_once './Services/WebServices/ECS/classes/Mapping/class.ilECSNodeMappingSettings.php'; include_once './Services/Form/classes/class.ilPropertyFormGUI.php'; $form = new ilPropertyFormGUI(); $form->setFormAction($this->ctrl->getFormAction($this)); $form->setTitle($this->lng->txt('settings')); // individual course allocation $check = new ilCheckboxInputGUI($this->lng->txt('ecs_cmap_enable'), 'enabled'); $check->setChecked(ilECSNodeMappingSettings::getInstanceByServerMid($this->getServer()->getServerId(), $this->getMid())->isCourseAllocationEnabled()); $form->addItem($check); // add default container $imp = new ilCustomInputGUI($this->lng->txt('ecs_cmap_def_cat'), 'default_cat'); $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', 'default_cat'); $default = ilECSNodeMappingSettings::getInstanceByServerMid($this->getServer()->getServerId(), $this->getMid())->getDefaultCourseCategory(); $tpl->setVariable('PROPERTY_VALUE', $default); if ($default) { include_once './Services/Tree/classes/class.ilPathGUI.php'; $path = new ilPathGUI(); $path->enableTextOnly(false); $path->enableHideLeaf(false); $tpl->setVariable('COMPLETE_PATH', $path->getPath(ROOT_FOLDER_ID, $default)); } $imp->setHtml($tpl->get()); $imp->setInfo($this->lng->txt('ecs_cmap_def_cat_info')); $form->addItem($imp); // all in one category $allinone = new ilCheckboxInputGUI($this->lng->txt('ecs_cmap_all_in_one'), 'allinone'); $allinone->setChecked(ilECSNodeMappingSettings::getInstanceByServerMid($this->getServer()->getServerId(), $this->getMid())->isAllInOneCategoryEnabled()); $allinone->setInfo($this->lng->txt('ecs_cmap_all_in_one_info')); $allinone_cat = new ilCustomInputGUI($this->lng->txt('ecs_cmap_all_in_one_cat'), 'allinone_cat'); $allinone_cat->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', 'allinone_cat'); $cat = ilECSNodeMappingSettings::getInstanceByServerMid($this->getServer()->getServerId(), $this->getMid())->getAllInOneCategory(); $tpl->setVariable('PROPERTY_VALUE', $cat); if ($cat) { include_once './Services/Tree/classes/class.ilPathGUI.php'; $path = new ilPathGUI(); $path->enableTextOnly(false); $path->enableHideLeaf(false); $tpl->setVariable('COMPLETE_PATH', $path->getPath(ROOT_FOLDER_ID, $default)); } $allinone_cat->setHtml($tpl->get()); $allinone->addSubItem($allinone_cat); $form->addItem($allinone); // multiple attributes $multiple = new ilCheckboxInputGUI($this->lng->txt('ecs_cmap_multiple_atts'), 'multiple'); $multiple->setChecked(ilECSNodeMappingSettings::getInstanceByServerMid($this->getServer()->getServerId(), $this->getMid())->isAttributeMappingEnabled()); // attribute selection include_once './Services/WebServices/ECS/classes/Mapping/class.ilECSMappingUtils.php'; include_once './Services/WebServices/ECS/classes/Course/class.ilECSCourseAttributes.php'; $attributes = new ilSelectInputGUI($this->lng->txt('ecs_cmap_attributes'), 'atts'); $attributes->setMulti(true); $attributes->setValue(ilECSCourseAttributes::getInstance($this->getServer()->getServerId(), $this->getMid())->getAttributeValues()); $attributes->setRequired(true); $attributes->setOptions(ilECSMappingUtils::getCourseMappingFieldSelectOptions()); $multiple->addSubItem($attributes); $form->addItem($multiple); // role mapping $rm = new ilFormSectionHeaderGUI(); $rm->setTitle($this->lng->txt('ecs_role_mappings')); $form->addItem($rm); $mapping_defs = ilECSNodeMappingSettings::getInstanceByServerMid($this->getServer()->getServerId(), $this->getMid())->getRoleMappings(); include_once './Services/WebServices/ECS/classes/Mapping/class.ilECSMappingUtils.php'; foreach (ilECSMappingUtils::getRoleMappingInfo() as $name => $info) { $role_map = new ilTextInputGUI($this->lng->txt($info['lang']), $name); $role_map->setValue($mapping_defs[$name]); $role_map->setSize(32); $role_map->setMaxLength(64); $role_map->setRequired($info['required']); $form->addItem($role_map); } $form->addCommandButton('cUpdateSettings', $this->lng->txt('save')); $form->addCommandButton('cSettings', $this->lng->txt('cancel')); return $form; }
/** * Init form for condition table * * @access private * @param * */ private function initFormCondition($a_source_id, $a_condition_id = 0, $a_mode = 'add') { $trigger_obj_id = ilObject::_lookupObjId($a_source_id); $trigger_type = ilObject::_lookupType($trigger_obj_id); $condition = ilConditionHandler::_getCondition($a_condition_id); if (is_object($this->form)) { return true; } include_once 'Services/Form/classes/class.ilPropertyFormGUI.php'; $this->form = new ilPropertyFormGUI(); $this->ctrl->setParameter($this, 'source_id', $a_source_id); $this->form->setFormAction($this->ctrl->getFormAction($this)); $info_source = new ilNonEditableValueGUI($this->lng->txt("rbac_precondition_source")); $info_source->setValue(ilObject::_lookupTitle(ilObject::_lookupObjId($a_source_id))); $this->form->addItem($info_source); $info_target = new ilNonEditableValueGUI($this->lng->txt("rbac_precondition_target")); $info_target->setValue($this->getTargetTitle()); $this->form->addItem($info_target); /* moved to list $obl = new ilCheckboxInputGUI($this->lng->txt('precondition_obligatory'), 'obligatory'); $obl->setInfo($this->lng->txt('precondition_obligatory_info')); $obl->setValue(1); if($a_condition_id) { $obl->setChecked($condition['obligatory']); } else { $obl->setChecked(true); } $this->form->addItem($obl); */ $obl = new ilHiddenInputGUI('obligatory'); if ($a_condition_id) { $obl->setValue($condition['obligatory']); } else { $obl->setValue(1); } $this->form->addItem($obl); $sel = new ilSelectInputGUI($this->lng->txt('condition'), 'operator'); include_once "./Services/AccessControl/classes/class.ilConditionHandler.php"; $ch_obj = new ilConditionHandler(); if ($a_mode == 'add') { $operators[0] = $this->lng->txt('select_one'); } foreach ($ch_obj->getOperatorsByTargetType($trigger_type) as $operator) { $operators[$operator] = $this->lng->txt('condition_' . $operator); } $sel->setValue(isset($condition['operator']) ? $condition['operator'] : 0); $sel->setOptions($operators); $sel->setRequired(true); $this->form->addItem($sel); if (ilConditionHandler::_isReferenceHandlingOptional($this->getTargetType())) { $rad_opt = new ilRadioGroupInputGUI($this->lng->txt('cond_ref_handling'), 'ref_handling'); $rad_opt->setValue(isset($condition['ref_handling']) ? $condition['ref_handling'] : ilConditionHandler::SHARED_CONDITIONS); $opt2 = new ilRadioOption($this->lng->txt('cond_ref_shared'), ilConditionHandler::SHARED_CONDITIONS); $rad_opt->addOption($opt2); $opt1 = new ilRadioOption($this->lng->txt('cond_ref_unique'), ilConditionHandler::UNIQUE_CONDITIONS); $rad_opt->addOption($opt1); $this->form->addItem($rad_opt); } // Additional settings for SCO's if ($trigger_type == 'sahs') { $this->lng->loadLanguageModule('trac'); $cus = new ilCustomInputGUI($this->lng->txt('trac_sahs_relevant_items'), 'item_ids[]'); $cus->setRequired(true); $tpl = new ilTemplate('tpl.condition_handler_sco_row.html', true, true, "Services/AccessControl"); $counter = 0; include_once 'Services/Object/classes/class.ilObjectLP.php'; $olp = ilObjectLP::getInstance($trigger_obj_id); $collection = $olp->getCollectionInstance(); if ($collection) { foreach ($collection->getPossibleItems() as $item_id => $sahs_item) { $tpl->setCurrentBlock("sco_row"); $tpl->setVariable('SCO_ID', $item_id); $tpl->setVariable('SCO_TITLE', $sahs_item['title']); $tpl->setVariable('CHECKED', $collection->isAssignedEntry($item_id) ? 'checked="checked"' : ''); $tpl->parseCurrentBlock(); $counter++; } } $tpl->setVariable('INFO_SEL', $this->lng->txt('trac_lp_determination_info_sco')); $cus->setHTML($tpl->get()); $this->form->addItem($cus); } switch ($a_mode) { case 'edit': $this->form->setTitleIcon(ilUtil::getImagePath('icon_' . $this->getTargetType() . '.svg')); $this->form->setTitle($this->lng->txt('rbac_edit_condition')); $this->form->addCommandButton('updateCondition', $this->lng->txt('save')); $this->form->addCommandButton('listConditions', $this->lng->txt('cancel')); break; case 'add': $this->form->setTitleIcon(ilUtil::getImagePath('icon_' . $this->getTargetType() . '.svg')); $this->form->setTitle($this->lng->txt('add_condition')); $this->form->addCommandButton('assign', $this->lng->txt('save')); $this->form->addCommandButton('selector', $this->lng->txt('back')); break; } return true; }