4 include_once
'./Services/User/classes/class.ilUserDefinedFields.php';
26 $lng->loadLanguageModule(
"user");
27 $lng->loadLanguageModule(
"administration");
30 $ilCtrl->saveParameter($this,
"field_id", $this->field_id);
35 $this->field_definition = $user_field_definitions->getDefinition($this->field_id);
43 $next_class = $ilCtrl->getNextClass($this);
44 $cmd = $ilCtrl->getCmd();
51 $cmd =
"listUserDefinedFields";
66 $ilToolbar->addButton($lng->txt(
"add_user_defined_field"),
67 $ilCtrl->getLinkTarget($this,
"addField"));
69 include_once(
"./Services/User/classes/class.ilCustomUserFieldSettingsTableGUI.php");
71 if($this->confirm_change)
73 $tab->setConfirmChange();
75 $tpl->setContent(
$tab->getHTML());
92 $tpl->setContent($a_form->getHTML());
105 $opts[
"visible"] = $lng->txt(
"user_visible_in_profile");
106 $opts[
"visib_reg"] = $lng->txt(
"visible_registration");
107 $opts[
"visib_lua"] = $lng->txt(
"usr_settings_visib_lua");
108 $opts[
"course_export"] = $lng->txt(
"course_export");
109 $opts[
"group_export"] = $lng->txt(
"group_export");
110 $opts[
"changeable"] = $lng->txt(
"changeable");
111 $opts[
"changeable_lua"] = $lng->txt(
"usr_settings_changeable_lua");
112 $opts[
"required"] = $lng->txt(
"required_field");
113 $opts[
"export"] = $lng->txt(
"export");
114 $opts[
"searchable"] = $lng->txt(
"header_searchable");
115 $opts[
"certificate"] = $lng->txt(
"certificate");
129 include_once(
"Services/Membership/classes/class.ilMemberAgreement.php");
132 $lng->loadLanguageModule(
"ps");
136 include_once(
"./Services/Form/classes/class.ilPropertyFormGUI.php");
138 $form->setFormAction($ilCtrl->getFormAction($this));
142 $form->addItem($name);
148 $radg->addOption($op1);
150 $radg->addOption($op2);
152 $radg->addOption($op3);
153 $form->addItem($radg);
159 $se_mu->setMaxLength(128);
160 $se_mu->setValues(array(
''));
161 $op2->addSubItem($se_mu);
166 $acc_values = array();
170 $acc->addOption($opt);
172 if($this->field_definition && $this->field_definition[$id])
178 $form->addItem($acc);
180 if($a_mode ==
"create")
185 $form->setTitle($lng->txt(
'add_new_user_defined_field'));
187 $form->addCommandButton(
"create", $lng->txt(
"save"));
188 $form->addCommandButton(
"listUserDefinedFields", $lng->txt(
"cancel"));
192 $name->setValue($this->field_definition[
"field_name"]);
193 $radg->setValue($this->field_definition[
"field_type"]);
194 $radg->setDisabled(
true);
195 $acc->setValue($acc_values);
197 switch($this->field_definition[
"field_type"])
200 $se_mu->setValue($this->field_definition[
"field_values"]);
201 $form->setTitle($lng->txt(
"udf_update_select_field"));
205 $form->setTitle($lng->txt(
"udf_update_text_field"));
209 $form->setTitle($lng->txt(
"udf_update_wysiwyg_field"));
213 $form->addCommandButton(
"update", $lng->txt(
"save"));
214 $form->addCommandButton(
"listUserDefinedFields", $lng->txt(
"cancel"));
228 protected function validateForm($form, $user_field_definitions, array &$access)
232 if($form->checkInput())
236 $incoming = (array)$form->getInput(
"access");
240 $access[$id] = in_array($id, $incoming);
243 if($access[
'required'] && !$access[
'visib_reg'])
245 $this->confirm_change =
true;
246 $form->getItemByPostVar(
"access")->setAlert($lng->txt(
'udf_required_requires_visib_reg'));
250 if(!$this->field_id && $user_field_definitions->nameExists($form->getInput(
"name")))
252 $form->getItemByPostVar(
"name")->setAlert($lng->txt(
'udf_name_already_exists'));
258 $user_field_definitions->setFieldValues($form->getInput(
"selvalue"));
259 if($error = $user_field_definitions->validateValues())
264 $form->getItemByPostVar(
"selvalue")->setAlert($lng->txt(
'udf_duplicate_entries'));
286 $user_field_definitions->setFieldType(
$_POST[
"field_type"]);
290 if($this->
validateForm($form, $user_field_definitions, $access))
292 $user_field_definitions->setFieldName($form->getInput(
"name"));
293 $user_field_definitions->enableVisible($access[
'visible']);
294 $user_field_definitions->enableVisibleRegistration((
int)$access[
'visib_reg']);
295 $user_field_definitions->enableVisibleLocalUserAdministration($access[
'visib_lua']);
296 $user_field_definitions->enableCourseExport($access[
'course_export']);
297 $user_field_definitions->enableGroupExport($access[
'group_export']);
298 $user_field_definitions->enableChangeable($access[
'changeable']);
299 $user_field_definitions->enableChangeableLocalUserAdministration($access[
'changeable_lua']);
300 $user_field_definitions->enableRequired($access[
'required']);
301 $user_field_definitions->enableExport($access[
'export']);
302 $user_field_definitions->enableSearchable($access[
'searchable']);
303 $user_field_definitions->enableCertificate($access[
'certificate']);
304 $user_field_definitions->add();
306 if ($access[
'course_export'])
308 include_once(
'Services/Membership/classes/class.ilMemberAgreement.php');
313 $ilCtrl->redirect($this);
316 $form->setValuesByPost();
334 $tpl->setContent($a_form->getHTML());
342 $user_field_definitions->setFieldType($this->field_definition[
"field_type"]);
348 $old_values = $user_field_definitions->getDefinition($this->field_id);
351 $old_options = $old_values[
"field_values"];
357 if($this->
validateForm($form, $user_field_definitions, $access) && $this->field_id)
362 if(is_array($old_options))
364 foreach($old_options as $old_option)
366 if(!in_array($old_option, $user_field_definitions->getFieldValues()))
373 $user_field_definitions->setFieldName($form->getInput(
"name"));
374 $user_field_definitions->enableVisible($access[
'visible']);
375 $user_field_definitions->enableVisibleRegistration((
int)$access[
'visib_reg']);
376 $user_field_definitions->enableVisibleLocalUserAdministration($access[
'visib_lua']);
377 $user_field_definitions->enableCourseExport($access[
'course_export']);
378 $user_field_definitions->enableGroupExport($access[
'group_export']);
379 $user_field_definitions->enableChangeable($access[
'changeable']);
380 $user_field_definitions->enableChangeableLocalUserAdministration($access[
'changeable_lua']);
381 $user_field_definitions->enableRequired($access[
'required']);
382 $user_field_definitions->enableExport($access[
'export']);
383 $user_field_definitions->enableSearchable($access[
'searchable']);
384 $user_field_definitions->enableCertificate($access[
'certificate']);
385 $user_field_definitions->update($this->field_id);
387 if ($access[
'course_export'])
389 include_once(
'Services/Membership/classes/class.ilMemberAgreement.php');
394 $ilCtrl->redirect($this);
397 $form->setValuesByPost();
411 include_once(
"./Services/Utilities/classes/class.ilConfirmationGUI.php");
413 $confirmation_gui->setFormAction($ilCtrl->getFormAction($this));
414 $confirmation_gui->setHeaderText($lng->txt(
"udf_delete_sure"));
415 $confirmation_gui->setCancel($lng->txt(
"cancel"),
"listUserDefinedFields");
416 $confirmation_gui->setConfirm($lng->txt(
"delete"),
"deleteField");
419 foreach(
$_POST[
"fields"] as $id)
421 $definition = $user_field_definitions->getDefinition($id);
422 $confirmation_gui->addItem(
"fields[]", $id, $definition[
"field_name"]);
425 $tpl->setContent($confirmation_gui->getHTML());
435 foreach(
$_POST[
"fields"] as $id)
437 $user_field_definitions->delete($id);
441 $ilCtrl->redirect($this);
452 $a_fields = $user_field_definitions->getDefinitions();
454 foreach($a_fields as
$field_id => $definition)
457 (!isset(
$_POST[
'chb'][
'visib_reg_'.$field_id]) || !(
int)
$_POST[
'chb'][
'visib_reg_'.$field_id]))
459 $this->confirm_change =
true;
467 foreach($a_fields as
$field_id => $definition)
469 $user_field_definitions->setFieldName($definition[
'field_name']);
470 $user_field_definitions->setFieldType($definition[
'field_type']);
471 $user_field_definitions->setFieldValues($definition[
'field_values']);
472 $user_field_definitions->enableVisible((
int)
$_POST[
'chb'][
'visible_'.
$field_id]);
473 $user_field_definitions->enableChangeable((
int)
$_POST[
'chb'][
'changeable_'.$field_id]);
474 $user_field_definitions->enableRequired((
int)
$_POST[
'chb'][
'required_'.$field_id]);
475 $user_field_definitions->enableSearchable((
int)
$_POST[
'chb'][
'searchable_'.$field_id]);
476 $user_field_definitions->enableExport((
int)
$_POST[
'chb'][
'export_'.$field_id]);
477 $user_field_definitions->enableCourseExport((
int)
$_POST[
'chb'][
'course_export_'.$field_id]);
478 $user_field_definitions->enableVisibleLocalUserAdministration((
int)
$_POST[
'chb'][
'visib_lua_'.$field_id]);
479 $user_field_definitions->enableChangeableLocalUserAdministration((
int)
$_POST[
'chb'][
'changeable_lua_'.$field_id]);
480 $user_field_definitions->enableGroupExport((
int)
$_POST[
'chb'][
'group_export_'.$field_id]);
481 $user_field_definitions->enableVisibleRegistration((
int)
$_POST[
'chb'][
'visib_reg_'.$field_id]);
482 $user_field_definitions->enableCertificate((
int)
$_POST[
'chb'][
'certificate_'.$field_id]);
484 $user_field_definitions->update($field_id);
488 $ilCtrl->redirect($this);