ILIAS  release_7 Revision v7.30-3-g800a261c036
ilCustomUserFieldsGUI Class Reference

Class ilCustomUserFieldsGUI. More...

+ Collaboration diagram for ilCustomUserFieldsGUI:

Public Member Functions

 __construct ()
 
 executeCommand ()
 
 listUserDefinedFields ()
 List all custom user fields. More...
 
 addField ($a_form=null)
 Add field. More...
 
 getAccessOptions ()
 Get all access options, order is kept in forms. More...
 
 create ()
 
 edit ($a_form=null)
 Edit field. More...
 
 update ()
 
 askDeleteField ()
 
 deleteField ()
 
 updateFields ($action="")
 Update custom fields properties (from table gui) More...
 

Static Public Member Functions

static getAccessPermissions ()
 

Protected Member Functions

 getPermissions ()
 
 initFieldDefinition ()
 init field definition More...
 
 initForm ($a_mode='create')
 
 validateForm ($form, $user_field_definitions, array &$access, array $a_field_permissions=null)
 Validate field form. More...
 

Protected Attributes

 $confirm_change
 
 $field_id
 
 $field_definition
 
 $permissions
 

Detailed Description

Class ilCustomUserFieldsGUI.

Author
Jörg Lützenkirchen luetz.nosp@m.enki.nosp@m.rchen.nosp@m.@lei.nosp@m.fos.c.nosp@m.om
Version
Id
class.ilObjUserFolderGUI.php 30361 2011-08-25 11:05:41Z jluetzen

@ilCtrl_Calls ilCustomUserFieldsGUI:

Definition at line 17 of file class.ilCustomUserFieldsGUI.php.

Constructor & Destructor Documentation

◆ __construct()

ilCustomUserFieldsGUI::__construct ( )

Definition at line 24 of file class.ilCustomUserFieldsGUI.php.

25 {
26 global $DIC;
27
28 $lng = $DIC['lng'];
29 $ilCtrl = $DIC['ilCtrl'];
30
31 $lng->loadLanguageModule("user");
32 $lng->loadLanguageModule("administration");
33
34 $this->field_id = $_REQUEST["field_id"];
35 $ilCtrl->saveParameter($this, "field_id", $this->field_id);
36
37 if ($this->field_id) {
38 $user_field_definitions = ilUserDefinedFields::_getInstance();
39 $this->field_definition = $user_field_definitions->getDefinition($this->field_id);
40 }
41
42 $this->permissions = ilUDFPermissionHelper::getInstance();
43 }
static getInstance($a_user_id=null, $a_ref_id=null)
Factory.
static _getInstance()
Get instance.
global $DIC
Definition: goto.php:24
$lng

References $DIC, $lng, ilUserDefinedFields\_getInstance(), and ilClaimingPermissionHelper\getInstance().

+ Here is the call graph for this function:

Member Function Documentation

◆ addField()

ilCustomUserFieldsGUI::addField (   $a_form = null)

Add field.

Parameters
ilPropertyFormGUI$a_form

Definition at line 106 of file class.ilCustomUserFieldsGUI.php.

107 {
108 global $DIC;
109
110 $tpl = $DIC['tpl'];
111
112 if (!$a_form) {
113 $a_form = $this->initForm('create');
114 }
115
116 $tpl->setContent($a_form->getHTML());
117 }
if($DIC->http() ->request() ->getMethod()=="GET" &&isset($DIC->http() ->request() ->getQueryParams()['tex'])) $tpl
Definition: latex.php:41

References $DIC, $tpl, and initForm().

Referenced by create().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ askDeleteField()

ilCustomUserFieldsGUI::askDeleteField ( )

Definition at line 590 of file class.ilCustomUserFieldsGUI.php.

591 {
592 global $DIC;
593
594 $ilCtrl = $DIC['ilCtrl'];
595 $lng = $DIC['lng'];
596 $tpl = $DIC['tpl'];
597
598 if (!$_POST["fields"]) {
599 ilUtil::sendFailure($lng->txt("select_one"));
600 return $this->listUserDefinedFields();
601 }
602
603 include_once("./Services/Utilities/classes/class.ilConfirmationGUI.php");
604 $confirmation_gui = new ilConfirmationGUI();
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");
609
610 $user_field_definitions = ilUserDefinedFields::_getInstance();
611 foreach ($_POST["fields"] as $id) {
612 $definition = $user_field_definitions->getDefinition($id);
613 $confirmation_gui->addItem("fields[]", $id, $definition["field_name"]);
614 }
615
616 $tpl->setContent($confirmation_gui->getHTML());
617
618 return true;
619 }
$_POST["username"]
Confirmation screen class.
listUserDefinedFields()
List all custom user fields.
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.

References $_POST, $DIC, $lng, $tpl, ilUserDefinedFields\_getInstance(), listUserDefinedFields(), and ilUtil\sendFailure().

+ Here is the call graph for this function:

◆ create()

ilCustomUserFieldsGUI::create ( )

Definition at line 413 of file class.ilCustomUserFieldsGUI.php.

414 {
415 global $DIC;
416
417 $lng = $DIC['lng'];
418 $ilCtrl = $DIC['ilCtrl'];
419
420 $user_field_definitions = ilUserDefinedFields::_getInstance();
421 $user_field_definitions->setFieldType($_POST["field_type"]);
422
423 $access = array();
424 $form = $this->initForm('create');
425 if ($this->validateForm($form, $user_field_definitions, $access)) {
426 $user_field_definitions->setFieldName($form->getInput("name"));
427 $user_field_definitions->enableVisible($access['visible']);
428 $user_field_definitions->enableVisibleRegistration((int) $access['visib_reg']);
429 $user_field_definitions->enableVisibleLocalUserAdministration($access['visib_lua']);
430 $user_field_definitions->enableCourseExport($access['course_export']);
431 $user_field_definitions->enableGroupExport($access['group_export']);
432 $user_field_definitions->enableChangeable($access['changeable']);
433 $user_field_definitions->enableChangeableLocalUserAdministration($access['changeable_lua']);
434 $user_field_definitions->enableRequired($access['required']);
435 $user_field_definitions->enableExport($access['export']);
436 $user_field_definitions->enableSearchable($access['searchable']);
437 $user_field_definitions->enableCertificate($access['certificate']);
438 $new_id = $user_field_definitions->add();
439
440 if ($user_field_definitions->isPluginType()) {
441 include_once './Services/User/classes/class.ilCustomUserFieldsHelper.php';
442 $plugin = ilCustomUserFieldsHelper::getInstance()->getPluginForType($user_field_definitions->getFieldType());
443 if ($plugin instanceof ilUDFDefinitionPlugin) {
444 $plugin->updateDefinitionFromForm($form, $new_id);
445 }
446 }
447 if ($access['course_export']) {
448 include_once('Services/Membership/classes/class.ilMemberAgreement.php');
450 }
451
452 ilUtil::sendSuccess($lng->txt('udf_added_field'), true);
453 $ilCtrl->redirect($this);
454 }
455
456 $form->setValuesByPost();
457 $this->addField($form);
458 }
addField($a_form=null)
Add field.
validateForm($form, $user_field_definitions, array &$access, array $a_field_permissions=null)
Validate field form.
static _reset()
Reset all.
UDF type deefinition plugin.

References $_POST, $DIC, $lng, XapiProxy\$plugin, ilUserDefinedFields\_getInstance(), ilMemberAgreement\_reset(), addField(), ilCustomUserFieldsHelper\getInstance(), initForm(), and validateForm().

+ Here is the call graph for this function:

◆ deleteField()

ilCustomUserFieldsGUI::deleteField ( )

Definition at line 621 of file class.ilCustomUserFieldsGUI.php.

622 {
623 global $DIC;
624
625 $lng = $DIC['lng'];
626 $ilCtrl = $DIC['ilCtrl'];
627
628 $user_field_definitions = ilUserDefinedFields::_getInstance();
629
630 // all fields have to be deletable
631 $fail = array();
632 foreach ($_POST["fields"] as $id) {
633 if (!$this->getPermissions()->hasPermission(
635 $id,
637 )) {
638 $field = $user_field_definitions->getDefinition($id);
639 $fail[] = $field["field_name"];
640 }
641 }
642 if ($fail) {
643 ilUtil::sendFailure($lng->txt('msg_no_perm_delete') . " " . implode(", ", $fail), true);
644 $ilCtrl->redirect($this, "listUserDefinedFields");
645 }
646
647 foreach ($_POST["fields"] as $id) {
648 $user_field_definitions->delete($id);
649 }
650
651 ilUtil::sendSuccess($lng->txt('udf_field_deleted'), true);
652 $ilCtrl->redirect($this);
653 }

References $_POST, $DIC, $lng, ilUserDefinedFields\_getInstance(), ilUDFPermissionHelper\ACTION_FIELD_DELETE, ilUDFPermissionHelper\CONTEXT_FIELD, getPermissions(), and ilUtil\sendFailure().

+ Here is the call graph for this function:

◆ edit()

ilCustomUserFieldsGUI::edit (   $a_form = null)

Edit field.

Parameters
ilPropertyFormGUI$a_form

Definition at line 465 of file class.ilCustomUserFieldsGUI.php.

466 {
467 global $DIC;
468
469 $tpl = $DIC['tpl'];
470
471 if (!$a_form) {
472 $a_form = $this->initForm("edit");
473 }
474
475 $tpl->setContent($a_form->getHTML());
476 }

References $DIC, $tpl, and initForm().

Referenced by update().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ executeCommand()

ilCustomUserFieldsGUI::executeCommand ( )

Definition at line 50 of file class.ilCustomUserFieldsGUI.php.

51 {
52 global $DIC;
53
54 $ilCtrl = $DIC['ilCtrl'];
55
56 $next_class = $ilCtrl->getNextClass($this);
57 $cmd = $ilCtrl->getCmd();
58
59 switch ($next_class) {
60 default:
61 if (!$cmd) {
62 $cmd = "listUserDefinedFields";
63 }
64 $this->$cmd();
65 break;
66 }
67 return true;
68 }

References $DIC.

◆ getAccessOptions()

ilCustomUserFieldsGUI::getAccessOptions ( )

Get all access options, order is kept in forms.

Returns
array

Definition at line 124 of file class.ilCustomUserFieldsGUI.php.

125 {
126 global $DIC;
127
128 $lng = $DIC['lng'];
129
130 $opts = array();
131 $opts["visible"] = $lng->txt("user_visible_in_profile");
132 $opts["visib_reg"] = $lng->txt("visible_registration");
133 $opts["visib_lua"] = $lng->txt("usr_settings_visib_lua");
134 $opts["course_export"] = $lng->txt("course_export");
135 $opts["group_export"] = $lng->txt("group_export");
136 $opts["changeable"] = $lng->txt("changeable");
137 $opts["changeable_lua"] = $lng->txt("usr_settings_changeable_lua");
138 $opts["required"] = $lng->txt("required_field");
139 $opts["export"] = $lng->txt("export");
140 $opts["searchable"] = $lng->txt("header_searchable");
141 $opts["certificate"] = $lng->txt("certificate");
142 return $opts;
143 }

References $DIC, and $lng.

Referenced by initForm(), and validateForm().

+ Here is the caller graph for this function:

◆ getAccessPermissions()

static ilCustomUserFieldsGUI::getAccessPermissions ( )
static

Definition at line 145 of file class.ilCustomUserFieldsGUI.php.

146 {
158 );
159 }

References ilUDFPermissionHelper\SUBACTION_FIELD_ACCESS_CERTIFICATE, ilUDFPermissionHelper\SUBACTION_FIELD_ACCESS_CHANGEABLE_LOCAL, ilUDFPermissionHelper\SUBACTION_FIELD_ACCESS_CHANGEABLE_PERSONAL, ilUDFPermissionHelper\SUBACTION_FIELD_ACCESS_EXPORT, ilUDFPermissionHelper\SUBACTION_FIELD_ACCESS_REQUIRED, ilUDFPermissionHelper\SUBACTION_FIELD_ACCESS_SEARCHABLE, ilUDFPermissionHelper\SUBACTION_FIELD_ACCESS_VISIBLE_COURSES, ilUDFPermissionHelper\SUBACTION_FIELD_ACCESS_VISIBLE_GROUPS, ilUDFPermissionHelper\SUBACTION_FIELD_ACCESS_VISIBLE_LOCAL, ilUDFPermissionHelper\SUBACTION_FIELD_ACCESS_VISIBLE_PERSONAL, and ilUDFPermissionHelper\SUBACTION_FIELD_ACCESS_VISIBLE_REGISTRATION.

Referenced by ilCustomUserFieldSettingsTableGUI\__construct(), initForm(), updateFields(), and validateForm().

+ Here is the caller graph for this function:

◆ getPermissions()

ilCustomUserFieldsGUI::getPermissions ( )
protected

Definition at line 45 of file class.ilCustomUserFieldsGUI.php.

References $permissions.

Referenced by deleteField(), and listUserDefinedFields().

+ Here is the caller graph for this function:

◆ initFieldDefinition()

ilCustomUserFieldsGUI::initFieldDefinition ( )
protected

init field definition

Returns
array

Definition at line 166 of file class.ilCustomUserFieldsGUI.php.

167 {
168 global $DIC;
169
170 $ilCtrl = $DIC['ilCtrl'];
171 $lng = $DIC['lng'];
172
173 include_once("Services/Membership/classes/class.ilMemberAgreement.php");
175 $lng->loadLanguageModule("ps");
176 ilUtil::sendInfo($lng->txt("ps_warning_modify"));
177 }
178
179 $perms = array();
180 if ($this->field_definition) {
181 $perms = $this->permissions->hasPermissions(
183 $this->field_definition["field_id"],
184 array(
211 )
212 );
213 }
214 return $perms;
215 }
static _hasAgreements()
Check if there is any user agreement.
static sendInfo($a_info="", $a_keep=false)
Send Info Message to Screen.

References $DIC, $lng, ilMemberAgreement\_hasAgreements(), ilUDFPermissionHelper\ACTION_FIELD_EDIT_ACCESS, ilUDFPermissionHelper\ACTION_FIELD_EDIT_PROPERTY, ilUDFPermissionHelper\CONTEXT_FIELD, ilUtil\sendInfo(), ilUDFPermissionHelper\SUBACTION_FIELD_ACCESS_CERTIFICATE, ilUDFPermissionHelper\SUBACTION_FIELD_ACCESS_CHANGEABLE_LOCAL, ilUDFPermissionHelper\SUBACTION_FIELD_ACCESS_CHANGEABLE_PERSONAL, ilUDFPermissionHelper\SUBACTION_FIELD_ACCESS_EXPORT, ilUDFPermissionHelper\SUBACTION_FIELD_ACCESS_REQUIRED, ilUDFPermissionHelper\SUBACTION_FIELD_ACCESS_SEARCHABLE, ilUDFPermissionHelper\SUBACTION_FIELD_ACCESS_VISIBLE_COURSES, ilUDFPermissionHelper\SUBACTION_FIELD_ACCESS_VISIBLE_GROUPS, ilUDFPermissionHelper\SUBACTION_FIELD_ACCESS_VISIBLE_LOCAL, ilUDFPermissionHelper\SUBACTION_FIELD_ACCESS_VISIBLE_PERSONAL, ilUDFPermissionHelper\SUBACTION_FIELD_ACCESS_VISIBLE_REGISTRATION, ilUDFPermissionHelper\SUBACTION_FIELD_PROPERTIES, and ilUDFPermissionHelper\SUBACTION_FIELD_TITLE.

Referenced by initForm().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ initForm()

ilCustomUserFieldsGUI::initForm (   $a_mode = 'create')
protected

Definition at line 217 of file class.ilCustomUserFieldsGUI.php.

218 {
219 global $ilCtrl, $lng;
220
221 include_once("Services/Membership/classes/class.ilMemberAgreement.php");
223 $lng->loadLanguageModule("ps");
224 ilUtil::sendInfo($lng->txt("ps_warning_modify"));
225 }
226
227 if ($this->field_definition) {
228 $perms = $this->initFieldDefinition();
229 $perm_map = self::getAccessPermissions();
230 }
231
232 include_once("./Services/Form/classes/class.ilPropertyFormGUI.php");
233 $form = new ilPropertyFormGUI();
234 $form->setFormAction($ilCtrl->getFormAction($this));
235
236 $name = new ilTextInputGUI($lng->txt("field_name"), "name");
237 $name->setRequired(true);
238 $form->addItem($name);
239
241 $name->setDisabled(true);
242 }
243
244 // type
245 $radg = new ilRadioGroupInputGUI($lng->txt("field_type"), "field_type");
246 $radg->setRequired(true);
247 include_once './Services/User/classes/class.ilCustomUserFieldsHelper.php';
248 foreach (ilCustomUserFieldsHelper::getInstance()->getUDFTypes() as $udf_type => $udf_name) {
249 $op = new ilRadioOption($udf_name, $udf_type);
250 $radg->addOption($op);
251
252 switch ($udf_type) {
253 case UDF_TYPE_TEXT:
254 case UDF_TYPE_WYSIWYG:
255 // do nothing
256 break;
257 case UDF_TYPE_SELECT:
258 // select values
259 $se_mu = new ilTextWizardInputGUI($lng->txt("value"), "selvalue");
260 $se_mu->setRequired(true);
261 $se_mu->setSize(32);
262 $se_mu->setMaxLength(128);
263 $se_mu->setValues(array(''));
264 $op->addSubItem($se_mu);
265 break;
266
267 default:
268 $plugin = ilCustomUserFieldsHelper::getInstance()->getPluginForType($udf_type);
269 if ($plugin instanceof ilUDFDefinitionPlugin) {
270 $plugin->addDefinitionTypeOptionsToRadioOption($op, $this->field_id);
271 }
272 break;
273 }
274 }
275
276 $form->addItem($radg);
277
279 $se_mu->setDisabled(true);
280 $se_mu->setRequired(false);
281 }
282
283
284 // access
285 $acc = new ilCheckboxGroupInputGUI($lng->txt("access"), "access");
286
287 $acc_values = array();
288 foreach ($this->getAccessOptions() as $id => $caption) {
289 $opt = new ilCheckboxOption($caption, $id);
290 $acc->addOption($opt);
291
292 if ($this->field_definition && $this->field_definition[$id]) {
293 $acc_values[] = $id;
294 }
295
296 if ($perms && !$perms[ilUDFPermissionHelper::ACTION_FIELD_EDIT_ACCESS][$perm_map[$id]]) {
297 $opt->setDisabled(true);
298 }
299 }
300
301 $form->addItem($acc);
302
303
304 if ($a_mode == 'create') {
305 $radg->setValue(UDF_TYPE_TEXT);
306 $form->setTitle($lng->txt('add_new_user_defined_field'));
307 $form->addCommandButton("create", $lng->txt("save"));
308 $form->addCommandButton("listUserDefinedFields", $lng->txt("cancel"));
309 } else {
310 $name->setValue($this->field_definition["field_name"]);
311 $radg->setValue($this->field_definition["field_type"]);
312 $radg->setDisabled(true);
313 $acc->setValue($acc_values);
314
315 switch ($this->field_definition["field_type"]) {
316 case UDF_TYPE_SELECT:
317 $values = $this->field_definition["field_values"];
318 if (!is_array($values) || $values === []) {
319 $values = [''];
320 }
321 $se_mu->setValue($values);
322 $form->setTitle($lng->txt("udf_update_select_field"));
323 break;
324
325 case UDF_TYPE_TEXT:
326 $form->setTitle($lng->txt("udf_update_text_field"));
327 break;
328
329 case UDF_TYPE_WYSIWYG:
330 $form->setTitle($lng->txt("udf_update_wysiwyg_field"));
331 break;
332
333 default:
334 $plugin = ilCustomUserFieldsHelper::getInstance()->getPluginForType($udf_type);
335 if ($plugin instanceof ilUDFDefinitionPlugin) {
336 $form->setTitle($plugin->getDefinitionUpdateFormTitle());
337 }
338 break;
339 }
340 $form->addCommandButton("update", $lng->txt("save"));
341 $form->addCommandButton("listUserDefinedFields", $lng->txt("cancel"));
342 }
343 return $form;
344 }
const UDF_TYPE_SELECT
const UDF_TYPE_WYSIWYG
const UDF_TYPE_TEXT
This class represents a property in a property form.
This class represents an option in a checkbox group.
initFieldDefinition()
init field definition
getAccessOptions()
Get all access options, order is kept in forms.
This class represents a property form user interface.
This class represents a property in a property form.
This class represents an option in a radio group.
This class represents a text property in a property form.
This class represents a text wizard property in a property form.
if($format !==null) $name
Definition: metadata.php:230

References $lng, $name, XapiProxy\$plugin, ilMemberAgreement\_hasAgreements(), ilUDFPermissionHelper\ACTION_FIELD_EDIT_ACCESS, ilUDFPermissionHelper\ACTION_FIELD_EDIT_PROPERTY, getAccessOptions(), getAccessPermissions(), ilCustomUserFieldsHelper\getInstance(), initFieldDefinition(), ilUtil\sendInfo(), ilUDFPermissionHelper\SUBACTION_FIELD_PROPERTIES, ilUDFPermissionHelper\SUBACTION_FIELD_TITLE, UDF_TYPE_SELECT, UDF_TYPE_TEXT, and UDF_TYPE_WYSIWYG.

Referenced by addField(), create(), edit(), and update().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ listUserDefinedFields()

ilCustomUserFieldsGUI::listUserDefinedFields ( )

List all custom user fields.

Definition at line 73 of file class.ilCustomUserFieldsGUI.php.

74 {
75 global $DIC;
76
77 $lng = $DIC['lng'];
78 $tpl = $DIC['tpl'];
79 $ilToolbar = $DIC['ilToolbar'];
80 $ilCtrl = $DIC['ilCtrl'];
81
82 if ($this->getPermissions()->hasPermission(
84 (int) $_GET["ref_id"],
86 )) {
87 $ilToolbar->addButton(
88 $lng->txt("add_user_defined_field"),
89 $ilCtrl->getLinkTarget($this, "addField")
90 );
91 }
92
93 include_once("./Services/User/classes/class.ilCustomUserFieldSettingsTableGUI.php");
94 $tab = new ilCustomUserFieldSettingsTableGUI($this, "listUserDefinedFields", $this->getPermissions());
95 if ($this->confirm_change) {
96 $tab->setConfirmChange();
97 }
98 $tpl->setContent($tab->getHTML());
99 }
$_GET["client_id"]
TableGUI class for custom defined user fields.

References $_GET, $DIC, $lng, $tpl, ilUDFPermissionHelper\ACTION_UDF_CREATE_FIELD, ilUDFPermissionHelper\CONTEXT_UDF, and getPermissions().

Referenced by askDeleteField(), and updateFields().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ update()

ilCustomUserFieldsGUI::update ( )

Definition at line 478 of file class.ilCustomUserFieldsGUI.php.

479 {
480 global $DIC;
481
482 $lng = $DIC['lng'];
483 $ilCtrl = $DIC['ilCtrl'];
484
485 $user_field_definitions = ilUserDefinedFields::_getInstance();
486 $user_field_definitions->setFieldType($this->field_definition["field_type"]);
487
488 // gather old select options
489 $old_options = null;
490 if ($this->field_id) {
491 $old_values = $user_field_definitions->getDefinition($this->field_id);
492 if ($old_values["field_type"] == UDF_TYPE_SELECT) {
493 $old_options = $old_values["field_values"];
494 }
495
496 $perms = $this->permissions->hasPermissions(
498 $this->field_id,
499 array(
526 )
527 );
528 }
529
530 $access = array();
531 $form = $this->initForm("edit");
532 if ($this->validateForm($form, $user_field_definitions, $access, $perms) && $this->field_id) {
533 // field values are set in validateForm()...
534
536 // diff old select options against new to handle deleted values properly
537 if (is_array($old_options)) {
538 foreach ($old_options as $old_option) {
539 if (!in_array($old_option, $user_field_definitions->getFieldValues())) {
540 ilUserDefinedData::deleteFieldValue($this->field_id, $old_option);
541 }
542 }
543 }
544 }
545 // disabled fields
546 elseif (is_array($old_options)) {
547 $user_field_definitions->setFieldValues($old_options);
548 }
549
551 $user_field_definitions->setFieldName($form->getInput("name"));
552 } else {
553 $user_field_definitions->setFieldName($this->field_definition["field_name"]);
554 }
555
556 $user_field_definitions->enableVisible($access['visible']);
557 $user_field_definitions->enableVisibleRegistration((int) $access['visib_reg']);
558 $user_field_definitions->enableVisibleLocalUserAdministration($access['visib_lua']);
559 $user_field_definitions->enableCourseExport($access['course_export']);
560 $user_field_definitions->enableGroupExport($access['group_export']);
561 $user_field_definitions->enableChangeable($access['changeable']);
562 $user_field_definitions->enableChangeableLocalUserAdministration($access['changeable_lua']);
563 $user_field_definitions->enableRequired($access['required']);
564 $user_field_definitions->enableExport($access['export']);
565 $user_field_definitions->enableSearchable($access['searchable']);
566 $user_field_definitions->enableCertificate($access['certificate']);
567 $user_field_definitions->update($this->field_id);
568
569 if ($user_field_definitions->isPluginType()) {
570 include_once './Services/User/classes/class.ilCustomUserFieldsHelper.php';
571 $plugin = ilCustomUserFieldsHelper::getInstance()->getPluginForType($user_field_definitions->getFieldType());
572 if ($plugin instanceof ilUDFDefinitionPlugin) {
573 $plugin->updateDefinitionFromForm($form, $this->field_id);
574 }
575 }
576
577 if ($access['course_export']) {
578 include_once('Services/Membership/classes/class.ilMemberAgreement.php');
580 }
581
582 ilUtil::sendSuccess($lng->txt('settings_saved'), true);
583 $ilCtrl->redirect($this);
584 }
585
586 $form->setValuesByPost();
587 $this->edit($form);
588 }
edit($a_form=null)
Edit field.
static deleteFieldValue($a_field_id, $a_value)
Delete data of particular value of a (selection) field.

References $DIC, $lng, XapiProxy\$plugin, ilUserDefinedFields\_getInstance(), ilMemberAgreement\_reset(), ilUDFPermissionHelper\ACTION_FIELD_EDIT_ACCESS, ilUDFPermissionHelper\ACTION_FIELD_EDIT_PROPERTY, ilUDFPermissionHelper\CONTEXT_FIELD, ilUserDefinedData\deleteFieldValue(), edit(), ilCustomUserFieldsHelper\getInstance(), initForm(), ilUDFPermissionHelper\SUBACTION_FIELD_ACCESS_CERTIFICATE, ilUDFPermissionHelper\SUBACTION_FIELD_ACCESS_CHANGEABLE_LOCAL, ilUDFPermissionHelper\SUBACTION_FIELD_ACCESS_CHANGEABLE_PERSONAL, ilUDFPermissionHelper\SUBACTION_FIELD_ACCESS_EXPORT, ilUDFPermissionHelper\SUBACTION_FIELD_ACCESS_REQUIRED, ilUDFPermissionHelper\SUBACTION_FIELD_ACCESS_SEARCHABLE, ilUDFPermissionHelper\SUBACTION_FIELD_ACCESS_VISIBLE_COURSES, ilUDFPermissionHelper\SUBACTION_FIELD_ACCESS_VISIBLE_GROUPS, ilUDFPermissionHelper\SUBACTION_FIELD_ACCESS_VISIBLE_LOCAL, ilUDFPermissionHelper\SUBACTION_FIELD_ACCESS_VISIBLE_PERSONAL, ilUDFPermissionHelper\SUBACTION_FIELD_ACCESS_VISIBLE_REGISTRATION, ilUDFPermissionHelper\SUBACTION_FIELD_PROPERTIES, ilUDFPermissionHelper\SUBACTION_FIELD_TITLE, UDF_TYPE_SELECT, and validateForm().

+ Here is the call graph for this function:

◆ updateFields()

ilCustomUserFieldsGUI::updateFields (   $action = "")

Update custom fields properties (from table gui)

Definition at line 658 of file class.ilCustomUserFieldsGUI.php.

659 {
660 global $DIC;
661
662 $lng = $DIC['lng'];
663 $ilCtrl = $DIC['ilCtrl'];
664
665 $user_field_definitions = ilUserDefinedFields::_getInstance();
666 $a_fields = $user_field_definitions->getDefinitions();
667
668 $perm_map = self::getAccessPermissions();
669
670 foreach ($a_fields as $field_id => $definition) {
671 $perms = $this->permissions->hasPermissions(
673 $field_id,
674 array(
697 )
698 );
699
700 // disabled field
701 foreach ($perm_map as $prop => $perm) {
703 $_POST['chb'][$prop . '_' . $field_id] = $definition[$prop];
704 }
705 }
706 }
707
708 foreach ($a_fields as $field_id => $definition) {
709 if (isset($_POST['chb']['required_' . $field_id]) && (int) $_POST['chb']['required_' . $field_id] &&
710 (!isset($_POST['chb']['visib_reg_' . $field_id]) || !(int) $_POST['chb']['visib_reg_' . $field_id])) {
711 $this->confirm_change = true;
712
713 ilUtil::sendFailure($lng->txt('invalid_visible_required_options_selected'));
714 $this->listUserDefinedFields();
715 return false;
716 }
717 }
718
719 foreach ($a_fields as $field_id => $definition) {
720 $user_field_definitions->setFieldName($definition['field_name']);
721 $user_field_definitions->setFieldType($definition['field_type']);
722 $user_field_definitions->setFieldValues($definition['field_values']);
723 $user_field_definitions->enableVisible((int) $_POST['chb']['visible_' . $field_id]);
724 $user_field_definitions->enableChangeable((int) $_POST['chb']['changeable_' . $field_id]);
725 $user_field_definitions->enableRequired((int) $_POST['chb']['required_' . $field_id]);
726 $user_field_definitions->enableSearchable((int) $_POST['chb']['searchable_' . $field_id]);
727 $user_field_definitions->enableExport((int) $_POST['chb']['export_' . $field_id]);
728 $user_field_definitions->enableCourseExport((int) $_POST['chb']['course_export_' . $field_id]);
729 $user_field_definitions->enableVisibleLocalUserAdministration((int) $_POST['chb']['visib_lua_' . $field_id]);
730 $user_field_definitions->enableChangeableLocalUserAdministration((int) $_POST['chb']['changeable_lua_' . $field_id]);
731 $user_field_definitions->enableGroupExport((int) $_POST['chb']['group_export_' . $field_id]);
732 $user_field_definitions->enableVisibleRegistration((int) $_POST['chb']['visib_reg_' . $field_id]);
733 $user_field_definitions->enableCertificate((int) $_POST['chb']['certificate_' . $field_id]);
734
735 $user_field_definitions->update($field_id);
736 }
737
738 ilUtil::sendSuccess($lng->txt('settings_saved'), true);
739 $ilCtrl->redirect($this);
740 }

References $_POST, $DIC, $field_id, $lng, ilUserDefinedFields\_getInstance(), ilUDFPermissionHelper\ACTION_FIELD_EDIT_ACCESS, ilUDFPermissionHelper\CONTEXT_FIELD, getAccessPermissions(), listUserDefinedFields(), ilUtil\sendFailure(), ilUDFPermissionHelper\SUBACTION_FIELD_ACCESS_CERTIFICATE, ilUDFPermissionHelper\SUBACTION_FIELD_ACCESS_CHANGEABLE_LOCAL, ilUDFPermissionHelper\SUBACTION_FIELD_ACCESS_CHANGEABLE_PERSONAL, ilUDFPermissionHelper\SUBACTION_FIELD_ACCESS_EXPORT, ilUDFPermissionHelper\SUBACTION_FIELD_ACCESS_REQUIRED, ilUDFPermissionHelper\SUBACTION_FIELD_ACCESS_SEARCHABLE, ilUDFPermissionHelper\SUBACTION_FIELD_ACCESS_VISIBLE_COURSES, ilUDFPermissionHelper\SUBACTION_FIELD_ACCESS_VISIBLE_GROUPS, ilUDFPermissionHelper\SUBACTION_FIELD_ACCESS_VISIBLE_LOCAL, ilUDFPermissionHelper\SUBACTION_FIELD_ACCESS_VISIBLE_PERSONAL, and ilUDFPermissionHelper\SUBACTION_FIELD_ACCESS_VISIBLE_REGISTRATION.

+ Here is the call graph for this function:

◆ validateForm()

ilCustomUserFieldsGUI::validateForm (   $form,
  $user_field_definitions,
array &  $access,
array  $a_field_permissions = null 
)
protected

Validate field form.

Parameters
ilPropertyFormGUI$form
ilUserDefinedFields$user_field_definitions
array$access
array$a_field_permissions
Returns
bool

Definition at line 355 of file class.ilCustomUserFieldsGUI.php.

356 {
357 global $DIC;
358
359 $lng = $DIC['lng'];
360
361 if ($form->checkInput()) {
362 $valid = true;
363
364 $incoming = (array) $form->getInput("access");
365
366 if ($a_field_permissions) {
367 $perm_map = self::getAccessPermissions();
368 }
369
370 $access = array();
371 foreach (array_keys($this->getAccessOptions()) as $id) {
372 $access[$id] = in_array($id, $incoming);
373
374 // disabled fields
375 if ($a_field_permissions && !$a_field_permissions[ilUDFPermissionHelper::ACTION_FIELD_EDIT_ACCESS][$perm_map[$id]]) {
376 $access[$id] = $this->field_definition[$id];
377 }
378 }
379
380 if ($access['required'] && !$access['visib_reg']) {
381 $this->confirm_change = true;
382 $form->getItemByPostVar("access")->setAlert($lng->txt('udf_required_requires_visib_reg'));
383 $valid = false;
384 }
385
386 if (!$this->field_id && $user_field_definitions->nameExists($form->getInput("name"))) {
387 $form->getItemByPostVar("name")->setAlert($lng->txt('udf_name_already_exists'));
388 $valid = false;
389 }
390
391 if ($form->getInput("field_type") == UDF_TYPE_SELECT &&
393 $user_field_definitions->setFieldValues($form->getInput("selvalue"));
394 if ($error = $user_field_definitions->validateValues()) {
395 switch ($error) {
397 $form->getItemByPostVar("selvalue")->setAlert($lng->txt('udf_duplicate_entries'));
398 $valid = false;
399 break;
400 }
401 }
402 }
403
404 if (!$valid) {
405 ilUtil::sendFailure($lng->txt("form_input_not_valid"));
406 }
407 return $valid;
408 }
409
410 return false;
411 }
const UDF_DUPLICATE_VALUES
$valid

References $DIC, $lng, $valid, ilUDFPermissionHelper\ACTION_FIELD_EDIT_ACCESS, ilUDFPermissionHelper\ACTION_FIELD_EDIT_PROPERTY, getAccessOptions(), getAccessPermissions(), ilUtil\sendFailure(), ilUDFPermissionHelper\SUBACTION_FIELD_PROPERTIES, UDF_DUPLICATE_VALUES, and UDF_TYPE_SELECT.

Referenced by create(), and update().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

Field Documentation

◆ $confirm_change

ilCustomUserFieldsGUI::$confirm_change
protected

Definition at line 19 of file class.ilCustomUserFieldsGUI.php.

◆ $field_definition

ilCustomUserFieldsGUI::$field_definition
protected

Definition at line 21 of file class.ilCustomUserFieldsGUI.php.

◆ $field_id

ilCustomUserFieldsGUI::$field_id
protected

Definition at line 20 of file class.ilCustomUserFieldsGUI.php.

Referenced by updateFields().

◆ $permissions

ilCustomUserFieldsGUI::$permissions
protected

Definition at line 22 of file class.ilCustomUserFieldsGUI.php.

Referenced by getPermissions().


The documentation for this class was generated from the following file: