ILIAS  release_7 Revision v7.30-3-g800a261c036
All Data Structures Namespaces Files Functions Variables Modules Pages
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

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.

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

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.
$lng
global $DIC
Definition: goto.php:24
+ 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.

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

Referenced by create().

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  }
global $DIC
Definition: goto.php:24
if($DIC->http() ->request() ->getMethod()=="GET" &&isset($DIC->http() ->request() ->getQueryParams()['tex'])) $tpl
Definition: latex.php:41
+ 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.

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

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  }
static _getInstance()
Get instance.
listUserDefinedFields()
List all custom user fields.
$lng
global $DIC
Definition: goto.php:24
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
if($DIC->http() ->request() ->getMethod()=="GET" &&isset($DIC->http() ->request() ->getQueryParams()['tex'])) $tpl
Definition: latex.php:41
$_POST["username"]
Confirmation screen class.
+ Here is the call graph for this function:

◆ create()

ilCustomUserFieldsGUI::create ( )

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

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

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  }
static _getInstance()
Get instance.
addField($a_form=null)
Add field.
static _reset()
Reset all.
$lng
UDF type deefinition plugin.
global $DIC
Definition: goto.php:24
validateForm($form, $user_field_definitions, array &$access, array $a_field_permissions=null)
Validate field form.
$_POST["username"]
+ Here is the call graph for this function:

◆ deleteField()

ilCustomUserFieldsGUI::deleteField ( )

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

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

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  }
static _getInstance()
Get instance.
$lng
global $DIC
Definition: goto.php:24
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
$_POST["username"]
+ 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.

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

Referenced by update().

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  }
global $DIC
Definition: goto.php:24
if($DIC->http() ->request() ->getMethod()=="GET" &&isset($DIC->http() ->request() ->getQueryParams()['tex'])) $tpl
Definition: latex.php:41
+ 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.

References $DIC.

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  }
global $DIC
Definition: goto.php:24

◆ getAccessOptions()

ilCustomUserFieldsGUI::getAccessOptions ( )

Get all access options, order is kept in forms.

Returns
array

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

References $DIC, and $lng.

Referenced by initForm(), and validateForm().

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  }
$lng
global $DIC
Definition: goto.php:24
+ Here is the caller graph for this function:

◆ getAccessPermissions()

static ilCustomUserFieldsGUI::getAccessPermissions ( )
static

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

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().

146  {
158  );
159  }
+ 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.

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().

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 sendInfo($a_info="", $a_keep=false)
Send Info Message to Screen.
$lng
global $DIC
Definition: goto.php:24
static _hasAgreements()
Check if there is any user agreement.
+ 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.

References $lng, $name, XapiProxy\$plugin, ilMemberAgreement\_hasAgreements(), ilUDFPermissionHelper\ACTION_FIELD_EDIT_ACCESS, ilUDFPermissionHelper\ACTION_FIELD_EDIT_PROPERTY, getAccessOptions(), ilCustomUserFieldsHelper\getInstance(), initFieldDefinition(), ilUtil\sendInfo(), ilFormPropertyGUI\setDisabled(), ilFormPropertyGUI\setRequired(), 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().

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
This class represents an option in a radio group.
This class represents an option in a checkbox group.
This class represents a property form user interface.
getAccessOptions()
Get all access options, order is kept in forms.
static sendInfo($a_info="", $a_keep=false)
Send Info Message to Screen.
if($format !==null) $name
Definition: metadata.php:230
This class represents a property in a property form.
$lng
UDF type deefinition plugin.
const UDF_TYPE_TEXT
This class represents a property in a property form.
static _hasAgreements()
Check if there is any user agreement.
const UDF_TYPE_WYSIWYG
initFieldDefinition()
init field definition
This class represents a text wizard property in a property form.
setDisabled($a_disabled)
Set Disabled.
setRequired($a_required)
Set Required.
+ 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.

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

Referenced by askDeleteField(), and updateFields().

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.
$lng
global $DIC
Definition: goto.php:24
if($DIC->http() ->request() ->getMethod()=="GET" &&isset($DIC->http() ->request() ->getQueryParams()['tex'])) $tpl
Definition: latex.php:41
+ 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.

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().

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  }
const UDF_TYPE_SELECT
static _getInstance()
Get instance.
edit($a_form=null)
Edit field.
static _reset()
Reset all.
$lng
UDF type deefinition plugin.
global $DIC
Definition: goto.php:24
validateForm($form, $user_field_definitions, array &$access, array $a_field_permissions=null)
Validate field form.
static deleteFieldValue($a_field_id, $a_value)
Delete data of particular value of a (selection) field.
+ 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.

References $_POST, $DIC, $field_id, $lng, ilUserDefinedFields\_getInstance(), ilUDFPermissionHelper\ACTION_FIELD_EDIT_ACCESS, ilUDFPermissionHelper\CONTEXT_FIELD, 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.

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  }
static _getInstance()
Get instance.
listUserDefinedFields()
List all custom user fields.
$lng
global $DIC
Definition: goto.php:24
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
$_POST["username"]
+ 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.

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

Referenced by create(), and update().

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_TYPE_SELECT
$valid
getAccessOptions()
Get all access options, order is kept in forms.
$lng
global $DIC
Definition: goto.php:24
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
const UDF_DUPLICATE_VALUES
+ 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: