25 protected \ILIAS\User\StandardGUIRequest
$request;
38 int $requested_field_id
41 $this->main_tpl =
$DIC->ui()->mainTemplate();
44 $ilCtrl =
$DIC[
'ilCtrl'];
47 $lng->loadLanguageModule(
"user");
48 $lng->loadLanguageModule(
"administration");
50 $this->field_id = $requested_field_id;
51 $ilCtrl->saveParameter($this,
"field_id", $this->field_id);
53 if ($this->field_id) {
55 $this->field_definition = $user_field_definitions->getDefinition($this->field_id);
59 $DIC->user()->getId(),
62 $this->request = new \ILIAS\User\StandardGUIRequest(
77 $ilCtrl =
$DIC[
'ilCtrl'];
79 $next_class = $ilCtrl->getNextClass($this);
80 $cmd = $ilCtrl->getCmd();
82 switch ($next_class) {
85 $cmd =
"listUserDefinedFields";
98 $ilToolbar =
$DIC[
'ilToolbar'];
99 $ilCtrl =
$DIC[
'ilCtrl'];
103 (
string) $this->ref_id,
106 $ilToolbar->addButton(
107 $lng->txt(
"add_user_defined_field"),
108 $ilCtrl->getLinkTarget($this,
"addField")
113 if ($this->confirm_change) {
114 $tab->setConfirmChange();
116 $tpl->setContent($tab->getHTML());
126 $a_form = $this->
initForm(
'create');
129 $tpl->setContent($a_form->getHTML());
143 $opts[
"visible"] =
$lng->txt(
"user_visible_in_profile");
144 $opts[
"visib_reg"] =
$lng->txt(
"visible_registration");
145 $opts[
"visib_lua"] =
$lng->txt(
"usr_settings_visib_lua");
146 $opts[
"course_export"] =
$lng->txt(
"course_export");
147 $opts[
"group_export"] =
$lng->txt(
"group_export");
148 $opts[
"changeable"] =
$lng->txt(
"changeable");
149 $opts[
"changeable_lua"] =
$lng->txt(
"usr_settings_changeable_lua");
150 $opts[
"required"] =
$lng->txt(
"required_field");
151 $opts[
"export"] =
$lng->txt(
"export");
152 $opts[
"searchable"] =
$lng->txt(
"header_searchable");
153 $opts[
"certificate"] =
$lng->txt(
"certificate");
183 $lng->loadLanguageModule(
"ps");
184 $this->main_tpl->setOnScreenMessage(
'info',
$lng->txt(
"ps_warning_modify"));
188 if ($this->field_definition) {
189 $perms = $this->permissions->hasPermissions(
191 (
string) $this->field_definition[
"field_id"],
227 global $ilCtrl,
$lng;
235 $lng->loadLanguageModule(
"ps");
236 $this->main_tpl->setOnScreenMessage(
'info',
$lng->txt(
"ps_warning_modify"));
239 if ($this->field_definition) {
245 $form->setFormAction($ilCtrl->getFormAction($this));
248 $name->setRequired(
true);
249 $form->addItem(
$name);
252 $name->setDisabled(
true);
257 $radg->setRequired(
true);
260 $radg->addOption($op);
270 $se_mu->setRequired(
true);
272 $se_mu->setMaxLength(128);
273 $se_mu->setValues(array(
''));
274 $op->addSubItem($se_mu);
280 $plugin->addDefinitionTypeOptionsToRadioOption($op, $this->field_id);
286 $form->addItem($radg);
289 $se_mu->setDisabled(
true);
290 $se_mu->setRequired(
false);
297 $acc_values = array();
300 $acc->addOption($opt);
302 if ($this->field_definition && $this->field_definition[
$id]) {
307 $opt->setDisabled(
true);
311 $form->addItem($acc);
314 if ($a_mode ==
'create') {
316 $form->setTitle(
$lng->txt(
'add_new_user_defined_field'));
317 $form->addCommandButton(
"create",
$lng->txt(
"save"));
319 $name->setValue($this->field_definition[
"field_name"]);
320 $radg->setValue($this->field_definition[
"field_type"]);
321 $radg->setDisabled(
true);
322 $acc->setValue($acc_values);
324 switch ($this->field_definition[
"field_type"]) {
326 $values = $this->field_definition[
"field_values"];
327 if (!is_array($values) || $values === []) {
330 $se_mu->setValue($values);
331 $form->setTitle(
$lng->txt(
"udf_update_select_field"));
335 $form->setTitle(
$lng->txt(
"udf_update_text_field"));
339 $form->setTitle(
$lng->txt(
"udf_update_wysiwyg_field"));
345 $form->setTitle(
$plugin->getDefinitionUpdateFormTitle());
349 $form->addCommandButton(
"update",
$lng->txt(
"save"));
351 $form->addCommandButton(
"listUserDefinedFields",
$lng->txt(
"cancel"));
359 array $a_field_permissions =
null
369 $incoming = (array) $form->
getInput(
"access");
371 if ($a_field_permissions) {
377 $access[
$id] = in_array(
$id, $incoming);
381 $access[
$id] = $this->field_definition[
$id];
385 if ($access[
'required'] && !$access[
'visib_reg']) {
386 $this->confirm_change =
true;
391 if (!$this->field_id && $user_field_definitions->
nameExists($form->
getInput(
"name"))) {
410 $this->main_tpl->setOnScreenMessage(
'failure',
$lng->txt(
"form_input_not_valid"));
423 $ilCtrl =
$DIC[
'ilCtrl'];
427 $this->request->getFieldType()
431 $form = $this->initForm(
'create');
432 if ($this->validateForm($form, $user_field_definitions, $access)) {
442 $user_field_definitions->
enableExport($access[
'export']);
445 $new_id = $user_field_definitions->
add();
450 $plugin->updateDefinitionFromForm($form, $new_id);
453 if ($access[
'course_export']) {
457 $this->main_tpl->setOnScreenMessage(
'success',
$lng->txt(
'udf_added_field'),
true);
458 $ilCtrl->redirect($this);
462 $this->addField($form);
472 $a_form = $this->initForm(
"edit");
475 $tpl->setContent($a_form->getHTML());
483 $ilCtrl =
$DIC[
'ilCtrl'];
487 $user_field_definitions->
setFieldType($this->field_definition[
"field_type"]);
491 if ($this->field_id) {
492 $old_values = $user_field_definitions->
getDefinition($this->field_id);
494 $old_options = $old_values[
"field_values"];
497 $perms = $this->permissions->hasPermissions(
499 (
string) $this->field_id,
532 $form = $this->initForm(
"edit");
533 if ($this->validateForm($form, $user_field_definitions, $access, $perms) && $this->field_id) {
538 if (is_array($old_options)) {
539 foreach ($old_options as $old_option) {
540 if (!in_array($old_option, $user_field_definitions->
getFieldValues())) {
547 elseif (is_array($old_options)) {
554 $user_field_definitions->
setFieldName($this->field_definition[
"field_name"]);
565 $user_field_definitions->
enableExport($access[
'export']);
568 $user_field_definitions->
update($this->field_id);
573 $plugin->updateDefinitionFromForm($form, $this->field_id);
577 if ($access[
'course_export']) {
581 $this->main_tpl->setOnScreenMessage(
'success',
$lng->txt(
'settings_saved'),
true);
582 $ilCtrl->redirect($this);
593 $ilCtrl =
$DIC[
'ilCtrl'];
597 $fields = $this->request->getFields();
598 if (count($fields) == 0) {
599 $this->main_tpl->setOnScreenMessage(
'failure',
$lng->txt(
"select_one"));
600 $this->listUserDefinedFields();
605 $confirmation_gui->setFormAction($ilCtrl->getFormAction($this));
606 $confirmation_gui->setHeaderText(
$lng->txt(
"udf_delete_sure"));
607 $confirmation_gui->setCancel(
$lng->txt(
"cancel"),
"listUserDefinedFields");
608 $confirmation_gui->setConfirm(
$lng->txt(
"delete"),
"deleteField");
611 foreach ($fields as
$id) {
613 $confirmation_gui->addItem(
"fields[]",
$id, $definition[
"field_name"]);
616 $tpl->setContent($confirmation_gui->getHTML());
626 $ilCtrl =
$DIC[
'ilCtrl'];
629 $fields = $this->request->getFields();
633 foreach ($fields as
$id) {
634 if (!$this->getPermissions()->hasPermission(
640 $fail[] = $field[
"field_name"];
644 $this->main_tpl->setOnScreenMessage(
'failure',
$lng->txt(
'msg_no_perm_delete') .
" " . implode(
", ", $fail),
true);
645 $ilCtrl->redirect($this,
"listUserDefinedFields");
648 foreach ($fields as
$id) {
652 $this->main_tpl->setOnScreenMessage(
'success',
$lng->txt(
'udf_field_deleted'),
true);
653 $ilCtrl->redirect($this);
664 $ilCtrl =
$DIC[
'ilCtrl'];
669 $checked = $this->request->getChecked();
671 $perm_map = self::getAccessPermissions();
673 foreach ($a_fields as $field_id => $definition) {
674 $perms = $this->permissions->hasPermissions(
704 foreach ($perm_map as $prop => $perm) {
706 $checked[$prop .
'_' . $field_id] = $definition[$prop];
712 foreach ($a_fields as $field_id => $definition) {
713 if (isset($checked[
'required_' . $field_id]) && (
int) $checked[
'required_' . $field_id] &&
714 (!isset($checked[
'visib_reg_' . $field_id]) || !(
int) $checked[
'visib_reg_' . $field_id])) {
715 $this->confirm_change =
true;
717 $this->main_tpl->setOnScreenMessage(
'failure',
$lng->txt(
'invalid_visible_required_options_selected'));
723 $this->listUserDefinedFields();
727 foreach ($a_fields as $field_id => $definition) {
728 $user_field_definitions->
setFieldName($definition[
'field_name']);
729 $user_field_definitions->
setFieldType($definition[
'field_type']);
730 $user_field_definitions->
setFieldValues($definition[
'field_values']);
731 $user_field_definitions->
enableVisible((
bool) ($checked[
'visible_' . $field_id] ??
false));
732 $user_field_definitions->
enableChangeable((
bool) ($checked[
'changeable_' . $field_id] ??
false));
733 $user_field_definitions->
enableRequired((
bool) ($checked[
'required_' . $field_id] ??
false));
734 $user_field_definitions->
enableSearchable((
bool) ($checked[
'searchable_' . $field_id] ??
false));
735 $user_field_definitions->
enableExport((
bool) ($checked[
'export_' . $field_id] ??
false));
736 $user_field_definitions->
enableCourseExport((
bool) ($checked[
'course_export_' . $field_id] ??
false));
739 $user_field_definitions->
enableGroupExport((
bool) ($checked[
'group_export_' . $field_id] ??
false));
741 $user_field_definitions->
enableCertificate((
bool) ($checked[
'certificate_' . $field_id] ??
false));
743 $user_field_definitions->
update($field_id);
746 $this->main_tpl->setOnScreenMessage(
'success',
$lng->txt(
'settings_saved'),
true);
747 $ilCtrl->redirect($this);
$id
plugin.php for ilComponentBuildPluginInfoObjectiveTest::testAddPlugins
const UDF_TYPE_TEXT
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
const UDF_DUPLICATE_VALUES
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
static getInstance(int $a_user_id, int $a_ref_id)
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
addField(ilPropertyFormGUI $a_form=null)
static getAccessPermissions()
initForm(string $a_mode='create')
__construct(int $ref_id, int $requested_field_id)
ilClaimingPermissionHelper $permissions
validateForm(ilPropertyFormGUI $form, ilUserDefinedFields $user_field_definitions, array &$access, array $a_field_permissions=null)
edit(ilPropertyFormGUI $a_form=null)
updateFields(string $action="")
Update custom fields properties (from table gui)
ilGlobalTemplateInterface $main_tpl
getAccessOptions()
Get all access options, order is kept in forms.
ILIAS User StandardGUIRequest $request
static _hasAgreements()
Check if there is any user agreement.
static _reset()
Reset all.
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
This class represents a text property in a property form.
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
const ACTION_FIELD_EDIT_ACCESS
const SUBACTION_FIELD_ACCESS_CERTIFICATE
const SUBACTION_FIELD_ACCESS_VISIBLE_LOCAL
const ACTION_FIELD_EDIT_PROPERTY
const SUBACTION_FIELD_ACCESS_SEARCHABLE
const SUBACTION_FIELD_PROPERTIES
const SUBACTION_FIELD_ACCESS_EXPORT
const SUBACTION_FIELD_ACCESS_CHANGEABLE_PERSONAL
const SUBACTION_FIELD_ACCESS_VISIBLE_PERSONAL
const ACTION_FIELD_DELETE
const SUBACTION_FIELD_ACCESS_REQUIRED
const SUBACTION_FIELD_TITLE
const ACTION_UDF_CREATE_FIELD
const SUBACTION_FIELD_ACCESS_VISIBLE_REGISTRATION
const SUBACTION_FIELD_ACCESS_VISIBLE_COURSES
const SUBACTION_FIELD_ACCESS_VISIBLE_GROUPS
const SUBACTION_FIELD_ACCESS_CHANGEABLE_LOCAL
static deleteFieldValue(int $a_field_id, string $a_value)
Delete data of particular value of a (selection) field.
Additional user data fields definition.
enableVisibleLocalUserAdministration(bool $a_visible)
enableVisible(bool $a_visible)
enableExport(bool $a_export)
enableRequired(bool $a_required)
enableChangeableLocalUserAdministration(bool $a_changeable)
nameExists(string $a_field_name)
enableGroupExport(bool $a_group_export)
enableCertificate(bool $a_c)
setFieldType(int $a_type)
enableSearchable(bool $a_searchable)
enableVisibleRegistration(bool $a_visible_registration)
setFieldName(string $a_name)
enableCourseExport(bool $a_course_export)
setFieldValues(array $a_values)
enableChangeable(bool $a_changeable)
if($DIC->http() ->request() ->getMethod()=="GET" &&isset($DIC->http() ->request() ->getQueryParams()['tex'])) $tpl