ILIAS  release_6 Revision v6.24-5-g0c8bfefb3b8
ilObjectCustomUserFieldsGUI Class Reference
+ Collaboration diagram for ilObjectCustomUserFieldsGUI:

Public Member Functions

 __construct ($a_obj_id)
 Constructor. More...
 
 executeCommand ()
 Execute Command. More...
 
 getObjId ()
 Get obj_id of container. More...
 

Data Fields

const MODE_CREATE = 1
 
const MODE_UPDATE = 2
 

Protected Member Functions

 show ()
 Show list of custom fields. More...
 
 listFields ()
 List existing custom fields. More...
 
 saveFields ()
 Save Field settings (currently only required status) More...
 
 confirmDeleteFields ()
 Show delete confirmation screen. More...
 
 deleteFields ()
 Delete selected fields. More...
 
 addField ()
 Show field creation form. More...
 
 saveField ()
 Save field. More...
 
 editField ()
 Edit one field. More...
 
 updateField ()
 Update field definition. More...
 
 initFieldForm ($a_mode)
 Init/create property form for fields. More...
 
 editMember (ilPropertyFormGUI $form=null)
 Edit Member. More...
 
 cancelEditMember ()
 Cancel editing. More...
 
 initMemberForm ()
 Init member form. More...
 
 saveMember ()
 

Private Attributes

 $form = null
 
 $lng
 
 $tpl
 
 $ctrl
 
 $tabs_gui
 
 $obj_id
 
 $ref_id
 
 $cdf
 

Detailed Description

Author
Stefan Meyer meyer.nosp@m.@lei.nosp@m.fos.c.nosp@m.om
Version
$Id$

@ilCtrl_Calls ilObjectCustomUserFieldsGUI

Definition at line 35 of file class.ilObjectCustomUserFieldsGUI.php.

Constructor & Destructor Documentation

◆ __construct()

ilObjectCustomUserFieldsGUI::__construct (   $a_obj_id)

Constructor.

@access public

Parameters

Definition at line 59 of file class.ilObjectCustomUserFieldsGUI.php.

60 {
61 global $DIC;
62
63 $lng = $DIC['lng'];
64 $tpl = $DIC['tpl'];
65 $ilCtrl = $DIC['ilCtrl'];
66 $ilTabs = $DIC['ilTabs'];
67
68 $this->lng = $lng;
69 $this->lng->loadLanguageModule('ps');
70 $this->lng->loadLanguageModule(ilObject::_lookupType($a_obj_id));
71
72 $this->tpl = $tpl;
73 $this->ctrl = $ilCtrl;
74 $this->tabs_gui = $ilTabs;
75
76 $this->obj_id = $a_obj_id;
77
78 // Currently only supported for container objects
79 $refs = ilObject::_getAllReferences($this->obj_id);
80 $this->ref_id = end($refs);
81 }
static _getAllReferences($a_id)
get all reference ids of object
static _lookupType($a_id, $a_reference=false)
lookup object type
global $ilCtrl
Definition: ilias.php:18
$DIC
Definition: xapitoken.php:46

References $DIC, $ilCtrl, $lng, $tpl, ilObject\_getAllReferences(), and ilObject\_lookupType().

+ Here is the call graph for this function:

Member Function Documentation

◆ addField()

ilObjectCustomUserFieldsGUI::addField ( )
protected

Show field creation form.

Returns

Definition at line 222 of file class.ilObjectCustomUserFieldsGUI.php.

223 {
224 $this->initFieldForm(self::MODE_CREATE);
225
226 $this->form->getItemByPostVar('va')->setValues(array(''));
227
228 $this->tpl->setContent($this->form->getHTML());
229 }
initFieldForm($a_mode)
Init/create property form for fields.

References initFieldForm().

+ Here is the call graph for this function:

◆ cancelEditMember()

ilObjectCustomUserFieldsGUI::cancelEditMember ( )
protected

Cancel editing.

Definition at line 411 of file class.ilObjectCustomUserFieldsGUI.php.

412 {
413 $GLOBALS['DIC']['ilCtrl']->returnToParent($this);
414 }
if(!defined('PATH_SEPARATOR')) $GLOBALS['_PEAR_default_error_mode']
Definition: PEAR.php:64

References $GLOBALS.

◆ confirmDeleteFields()

ilObjectCustomUserFieldsGUI::confirmDeleteFields ( )
protected

Show delete confirmation screen.

Returns

Definition at line 177 of file class.ilObjectCustomUserFieldsGUI.php.

178 {
179 if (!count($_POST['field_ids'])) {
180 ilUtil::sendFailure($this->lng->txt('ps_cdf_select_one'));
181 $this->listFields();
182 return false;
183 }
184 include_once './Services/Utilities/classes/class.ilConfirmationGUI.php';
185 $confirm = new ilConfirmationGUI();
186 $confirm->setFormAction($this->ctrl->getFormAction($this));
187 $confirm->setHeaderText($this->lng->txt('ps_cdf_delete_sure'));
188
189 foreach ($_POST['field_ids'] as $field_id) {
190 $tmp_field = new ilCourseDefinedFieldDefinition($this->getObjId(), $field_id);
191
192 $confirm->addItem('field_ids[]', $field_id, $tmp_field->getName());
193 }
194
195 $confirm->setConfirm($this->lng->txt('delete'), 'deleteFields');
196 $confirm->setCancel($this->lng->txt('cancel'), 'listFields');
197 $this->tpl->setContent($confirm->getHTML());
198 }
$_POST["username"]
Confirmation screen class.
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.

References $_POST, getObjId(), listFields(), and ilUtil\sendFailure().

+ Here is the call graph for this function:

◆ deleteFields()

ilObjectCustomUserFieldsGUI::deleteFields ( )
protected

Delete selected fields.

Returns

Definition at line 204 of file class.ilObjectCustomUserFieldsGUI.php.

205 {
206 foreach ((array) $_POST['field_ids'] as $field_id) {
207 $tmp_field = new ilCourseDefinedFieldDefinition($this->obj_id, $field_id);
208 $tmp_field->delete();
209 }
210
212
213 ilUtil::sendSuccess($this->lng->txt('ps_cdf_deleted'));
214 $this->listFields();
215 return true;
216 }
static _deleteByObjId($a_obj_id)
Delete all entries by obj_id.

References $_POST, ilMemberAgreement\_deleteByObjId(), and listFields().

+ Here is the call graph for this function:

◆ editField()

ilObjectCustomUserFieldsGUI::editField ( )
protected

Edit one field.

Parameters
object$a_mode
Returns

Definition at line 266 of file class.ilObjectCustomUserFieldsGUI.php.

267 {
268 if (!$_REQUEST['field_id']) {
269 $this->listFields();
270 return false;
271 }
272
273 $this->initFieldForm(self::MODE_UPDATE);
274
275 $udf = new ilCourseDefinedFieldDefinition($this->getObjId(), (int) $_REQUEST['field_id']);
276 $this->form->getItemByPostVar('na')->setValue($udf->getName());
277 $this->form->getItemByPostVar('ty')->setValue($udf->getType());
278 $this->form->getItemByPostVar('re')->setChecked($udf->isRequired());
279 $this->form->getItemByPostVar('va')->setValues($udf->getValues());
280 $this->form->getItemByPostVar('va')->setOpenAnswerIndexes($udf->getValueOptions());
281
282 $this->tpl->setContent($this->form->getHTML());
283 }

References getObjId(), initFieldForm(), and listFields().

+ Here is the call graph for this function:

◆ editMember()

ilObjectCustomUserFieldsGUI::editMember ( ilPropertyFormGUI  $form = null)
protected

Edit Member.

Parameters
ilPropertyFormGUI$form

Definition at line 388 of file class.ilObjectCustomUserFieldsGUI.php.

389 {
390 $GLOBALS['DIC']['ilCtrl']->saveParameter($this, 'member_id');
391
392 $GLOBALS['DIC']['ilTabs']->clearTargets();
393 $GLOBALS['DIC']['ilTabs']->clearSubTabs();
394 $GLOBALS['DIC']['ilTabs']->setBackTarget($this->lng->txt('back'), $this->ctrl->getLinkTarget($this, 'cancelEditMember'));
395
396
397 if ($form instanceof ilPropertyFormGUI) {
398 $GLOBALS['DIC']['tpl']->setContent($form->getHTML());
399 } else {
400 $form = $this->initMemberForm();
401 ilMemberAgreementGUI::setCourseDefinedFieldValues($form, $this->getObjId(), (int) $_REQUEST['member_id']);
402 }
403
404 $GLOBALS['DIC']['tpl']->setContent($form->getHTML());
405 }
static setCourseDefinedFieldValues(ilPropertyFormGUI $form, $a_obj_id, $a_usr_id=0)
This class represents a property form user interface.

References $form, $GLOBALS, getObjId(), initMemberForm(), and ilMemberAgreementGUI\setCourseDefinedFieldValues().

Referenced by saveMember().

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

◆ executeCommand()

ilObjectCustomUserFieldsGUI::executeCommand ( )

Execute Command.

@access public

Definition at line 89 of file class.ilObjectCustomUserFieldsGUI.php.

90 {
91 global $DIC;
92
93 $ilErr = $DIC['ilErr'];
94 $ilAccess = $DIC['ilAccess'];
95 $lng = $DIC['lng'];
96
97 if (!$ilAccess->checkAccess('write', '', $this->ref_id)) {
98 $ilErr->raiseError($lng->txt('permission_denied'), $ilErr->WARNING);
99 }
100
101 $cmd = $this->ctrl->getCmd();
102
103 switch ($next_class = $this->ctrl->getNextClass($this)) {
104 default:
105 if (!$cmd) {
106 $cmd = 'show';
107 }
108 $this->$cmd();
109 break;
110 }
111 }
$ilErr
Definition: raiseError.php:18

References $DIC, $ilErr, and $lng.

◆ getObjId()

ilObjectCustomUserFieldsGUI::getObjId ( )

Get obj_id of container.

Returns

Definition at line 117 of file class.ilObjectCustomUserFieldsGUI.php.

References $obj_id.

Referenced by confirmDeleteFields(), editField(), editMember(), initMemberForm(), listFields(), saveField(), saveFields(), saveMember(), show(), and updateField().

+ Here is the caller graph for this function:

◆ initFieldForm()

ilObjectCustomUserFieldsGUI::initFieldForm (   $a_mode)
protected

Init/create property form for fields.

Returns

Definition at line 320 of file class.ilObjectCustomUserFieldsGUI.php.

321 {
322 if ($this->form instanceof ilPropertyFormGUI) {
323 return true;
324 }
325 include_once './Services/Form/classes/class.ilPropertyFormGUI.php';
326 $this->form = new ilPropertyFormGUI();
327
328 switch ($a_mode) {
330 $this->form->setFormAction($this->ctrl->getFormAction($this));
331 $this->form->setTitle($this->lng->txt('ps_cdf_add_field'));
332 $this->form->addCommandButton('saveField', $this->lng->txt('save'));
333 $this->form->addCommandButton('listFields', $this->lng->txt('cancel'));
334 break;
335
337 $this->ctrl->setParameter($this, 'field_id', (int) $_REQUEST['field_id']);
338 $this->form->setFormAction($this->ctrl->getFormAction($this));
339 $this->form->setTitle($this->lng->txt('ps_cdf_edit_field'));
340 $this->form->addCommandButton('updateField', $this->lng->txt('save'));
341 $this->form->addCommandButton('listFields', $this->lng->txt('cancel'));
342 break;
343 }
344
345 // Name
346 $na = new ilTextInputGUI($this->lng->txt('ps_cdf_name'), 'na');
347 $na->setSize(32);
348 $na->setMaxLength(255);
349 $na->setRequired(true);
350 $this->form->addItem($na);
351
352 // Type
353 $ty = new ilRadioGroupInputGUI($this->lng->txt('ps_field_type'), 'ty');
354 $ty->setRequired(true);
355 $this->form->addItem($ty);
356
357 if ($a_mode == self::MODE_UPDATE) {
358 $ty->setDisabled(true); // #14888
359 }
360
361 // Text type
362 $ty_te = new ilRadioOption($this->lng->txt('ps_type_txt_long'), IL_CDF_TYPE_TEXT);
363 $ty->addOption($ty_te);
364
365 // Select Type
366 $ty_se = new ilRadioOption($this->lng->txt('ps_type_select_long'), IL_CDF_TYPE_SELECT);
367 $ty->addOption($ty_se);
368
369 // Select Type Values
370 include_once './Services/Form/classes/class.ilSelectBuilderInputGUI.php';
371 $ty_se_mu = new ilSelectBuilderInputGUI($this->lng->txt('ps_cdf_value'), 'va');
372 $ty_se_mu->setAllowMove(true);
373 $ty_se_mu->setRequired(true);
374 $ty_se_mu->setSize(32);
375 $ty_se_mu->setMaxLength(128);
376 $ty_se->addSubItem($ty_se_mu);
377
378 // Required
379 $re = new ilCheckboxInputGUI($this->lng->txt('ps_cdf_required'), 're');
380 $re->setValue(1);
381 $this->form->addItem($re);
382 }
This class represents a checkbox property in a property form.
This class represents a property in a property form.
This class represents an option in a radio group.
Input GUI for the configuration of select input elements.
This class represents a text property in a property form.

References IL_CDF_TYPE_SELECT, IL_CDF_TYPE_TEXT, MODE_CREATE, and MODE_UPDATE.

Referenced by addField(), editField(), saveField(), and updateField().

+ Here is the caller graph for this function:

◆ initMemberForm()

ilObjectCustomUserFieldsGUI::initMemberForm ( )
protected

Init member form.

Returns
\ilPropertyFormGUI

Definition at line 420 of file class.ilObjectCustomUserFieldsGUI.php.

421 {
422 include_once './Services/Form/classes/class.ilPropertyFormGUI.php';
423 $form = new ilPropertyFormGUI();
424 $form->setFormAction($GLOBALS['DIC']['ilCtrl']->getFormAction($this));
425 $title = $this->lng->txt(ilObject::_lookupType($this->getObjId()) . '_cdf_edit_member');
426 $name = ilObjUser::_lookupName((int) $_REQUEST['member_id']);
427 $title .= (': ' . $name['lastname'] . ', ' . $name['firstname']);
428 $form->setTitle($title);
429
430 include_once './Services/Membership/classes/class.ilMemberAgreementGUI.php';
432
433 $form->addCommandButton('saveMember', $this->lng->txt('save'));
434 $form->addCommandButton('cancelEditMember', $this->lng->txt('cancel'));
435
436 return $form;
437 }
static addCustomFields($form, $a_obj_id, $a_type, $a_mode='user')
Add custom course fields.
static _lookupName($a_user_id)
lookup user name
if($format !==null) $name
Definition: metadata.php:230

References $form, $GLOBALS, $name, ilObjUser\_lookupName(), ilObject\_lookupType(), ilMemberAgreementGUI\addCustomFields(), and getObjId().

Referenced by editMember(), and saveMember().

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

◆ listFields()

ilObjectCustomUserFieldsGUI::listFields ( )
protected

List existing custom fields.

Returns

Definition at line 138 of file class.ilObjectCustomUserFieldsGUI.php.

139 {
140 global $DIC;
141
142 $ilToolbar = $DIC['ilToolbar'];
143
144 $ilToolbar->addButton(
145 $this->lng->txt('ps_cdf_add_field'),
146 $this->ctrl->getLinkTarget($this, 'addField')
147 );
148
149 include_once './Services/Membership/classes/class.ilObjectCustomUserFieldsTableGUI.php';
150 $table = new ilObjectCustomUserFieldsTableGUI($this, 'listFields');
152 $this->tpl->setContent($table->getHTML());
153 }
static _getFields($a_container_id, $a_sort=IL_CDF_SORT_NAME)
Get all fields of a container.
@classDescription Table presentation of course/group relevant user data fields

References $DIC, ilCourseDefinedFieldDefinition\_getFields(), and getObjId().

Referenced by confirmDeleteFields(), deleteFields(), editField(), saveField(), saveFields(), show(), and updateField().

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

◆ saveField()

ilObjectCustomUserFieldsGUI::saveField ( )
protected

Save field.

Returns

Definition at line 235 of file class.ilObjectCustomUserFieldsGUI.php.

236 {
237 $GLOBALS['DIC']->logger()->mmbr()->dump($_POST);
238 $this->initFieldForm(self::MODE_CREATE);
239 if ($this->form->checkInput()) {
240 $udf = new ilCourseDefinedFieldDefinition($this->getObjId());
241 $udf->setName($this->form->getInput('na'));
242 $udf->setType($this->form->getInput('ty'));
243 $udf->setValues($udf->prepareValues($this->form->getInput('va')));
244 $udf->setValueOptions($this->form->getItemByPostVar('va')->getOpenAnswerIndexes()); // #14720
245 $udf->enableRequired($this->form->getInput('re'));
246 $udf->save();
247
248 ilUtil::sendSuccess($this->lng->txt('ps_cdf_added_field'));
249 // reset agreements
251 $this->listFields();
252 return true;
253 }
254 // not valid
255 ilUtil::sendFailure($this->lng->txt('err_check_input'));
256 $this->form->setValuesByPost();
257 $this->tpl->setContent($this->form->getHTML());
258 return false;
259 }

References $_POST, $GLOBALS, ilMemberAgreement\_deleteByObjId(), getObjId(), initFieldForm(), listFields(), and ilUtil\sendFailure().

+ Here is the call graph for this function:

◆ saveFields()

ilObjectCustomUserFieldsGUI::saveFields ( )
protected

Save Field settings (currently only required status)

Returns

Definition at line 159 of file class.ilObjectCustomUserFieldsGUI.php.

160 {
162 foreach ($fields as $field_obj) {
163 $field_obj->enableRequired((bool) isset($_POST['required'][$field_obj->getId()]));
164 $field_obj->update();
165 }
166
168 ilUtil::sendSuccess($this->lng->txt('settings_saved'));
169 $this->listFields();
170 return true;
171 }

References $_POST, ilMemberAgreement\_deleteByObjId(), ilCourseDefinedFieldDefinition\_getFields(), getObjId(), and listFields().

+ Here is the call graph for this function:

◆ saveMember()

ilObjectCustomUserFieldsGUI::saveMember ( )
protected

Definition at line 439 of file class.ilObjectCustomUserFieldsGUI.php.

440 {
441 global $DIC;
442
443 $ilUser = $DIC['ilUser'];
444
445 $GLOBALS['DIC']['ilCtrl']->saveParameter($this, 'member_id');
446
447 $form = $this->initMemberForm();
448 if ($form->checkInput()) {
449 // save history
450 include_once './Services/Membership/classes/class.ilObjectCustomUserFieldHistory.php';
451 $history = new ilObjectCustomUserFieldHistory($this->getObjId(), (int) $_REQUEST['member_id']);
452 $history->setEditingTime(new ilDateTime(time(), IL_CAL_UNIX));
453 $history->setUpdateUser($ilUser->getId());
454 $history->save();
455
456 ilMemberAgreementGUI::saveCourseDefinedFields($form, $this->getObjId(), (int) $_REQUEST['member_id']);
457 ilUtil::sendSuccess($this->lng->txt('settings_saved'), true);
458 $GLOBALS['DIC']['ilCtrl']->returnToParent($this);
459 return true;
460 }
461
462 $form->setValuesByPost();
463 ilUtil::sendFailure($this->lng->txt('err_check_input'));
464 return $this->editMember($form);
465 }
const IL_CAL_UNIX
@classDescription Date and time handling
static saveCourseDefinedFields(ilPropertyFormGUI $form, $a_obj_id, $a_usr_id=0)
Save course defined fields.
Editing history for object custom user fields.
editMember(ilPropertyFormGUI $form=null)
Edit Member.
$ilUser
Definition: imgupload.php:18

References $DIC, $form, $GLOBALS, $ilUser, editMember(), getObjId(), IL_CAL_UNIX, initMemberForm(), ilMemberAgreementGUI\saveCourseDefinedFields(), and ilUtil\sendFailure().

+ Here is the call graph for this function:

◆ show()

ilObjectCustomUserFieldsGUI::show ( )
protected

Show list of custom fields.

Returns

Definition at line 126 of file class.ilObjectCustomUserFieldsGUI.php.

127 {
129 ilUtil::sendInfo($this->lng->txt('ps_cdf_warning_modify'));
130 }
131 $this->listFields();
132 }
static _hasAgreementsByObjId($a_obj_id)
Check if there is any user agreement.
static sendInfo($a_info="", $a_keep=false)
Send Info Message to Screen.

References ilMemberAgreement\_hasAgreementsByObjId(), getObjId(), listFields(), and ilUtil\sendInfo().

+ Here is the call graph for this function:

◆ updateField()

ilObjectCustomUserFieldsGUI::updateField ( )
protected

Update field definition.

Returns

Definition at line 289 of file class.ilObjectCustomUserFieldsGUI.php.

290 {
291 $this->initFieldForm(self::MODE_UPDATE);
292
293 if ($this->form->checkInput()) {
294 $udf = new ilCourseDefinedFieldDefinition($this->getObjId(), (int) $_REQUEST['field_id']);
295 $udf->setName($this->form->getInput('na'));
296 $udf->setType($this->form->getInput('ty'));
297 $prepared = $udf->prepareValues($this->form->getInput('va'));
298 $udf->setValues($prepared);
299 $udf->setValueOptions($this->form->getItemByPostVar('va')->getOpenAnswerIndexes());
300 $udf->enableRequired($this->form->getInput('re'));
301 $udf->update();
302
303 // Finally reset member agreements
305 ilUtil::sendSuccess($this->lng->txt('settings_saved'));
306 $this->listFields();
307 return true;
308 }
309
310 ilUtil::sendFailure($this->lng->txt('err_check_input'));
311 $this->form->setValuesByPost();
312 $this->tpl->setContent($this->form->getHTML());
313 return false;
314 }

References ilMemberAgreement\_deleteByObjId(), getObjId(), initFieldForm(), listFields(), and ilUtil\sendFailure().

+ Here is the call graph for this function:

Field Documentation

◆ $cdf

ilObjectCustomUserFieldsGUI::$cdf
private

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

◆ $ctrl

ilObjectCustomUserFieldsGUI::$ctrl
private

Definition at line 44 of file class.ilObjectCustomUserFieldsGUI.php.

◆ $form

ilObjectCustomUserFieldsGUI::$form = null
private

Definition at line 40 of file class.ilObjectCustomUserFieldsGUI.php.

Referenced by editMember(), initMemberForm(), and saveMember().

◆ $lng

ilObjectCustomUserFieldsGUI::$lng
private

Definition at line 42 of file class.ilObjectCustomUserFieldsGUI.php.

Referenced by __construct(), and executeCommand().

◆ $obj_id

ilObjectCustomUserFieldsGUI::$obj_id
private

Definition at line 47 of file class.ilObjectCustomUserFieldsGUI.php.

Referenced by getObjId().

◆ $ref_id

ilObjectCustomUserFieldsGUI::$ref_id
private

Definition at line 48 of file class.ilObjectCustomUserFieldsGUI.php.

◆ $tabs_gui

ilObjectCustomUserFieldsGUI::$tabs_gui
private

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

◆ $tpl

ilObjectCustomUserFieldsGUI::$tpl
private

Definition at line 43 of file class.ilObjectCustomUserFieldsGUI.php.

Referenced by __construct().

◆ MODE_CREATE

const ilObjectCustomUserFieldsGUI::MODE_CREATE = 1

Definition at line 37 of file class.ilObjectCustomUserFieldsGUI.php.

Referenced by initFieldForm().

◆ MODE_UPDATE

const ilObjectCustomUserFieldsGUI::MODE_UPDATE = 2

Definition at line 38 of file class.ilObjectCustomUserFieldsGUI.php.

Referenced by initFieldForm().


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