ILIAS  release_5-3 Revision v5.3.23-19-g915713cf615
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 $lng,$tpl,$ilCtrl,$ilTabs;
62
63 $this->lng = $lng;
64 $this->lng->loadLanguageModule('ps');
65 $this->lng->loadLanguageModule(ilObject::_lookupType($a_obj_id));
66
67 $this->tpl = $tpl;
68 $this->ctrl = $ilCtrl;
69 $this->tabs_gui = $ilTabs;
70
71 $this->obj_id = $a_obj_id;
72
73 // Currently only supported for container objects
74 $refs = ilObject::_getAllReferences($this->obj_id);
75 $this->ref_id = end($refs);
76 }
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

References $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 211 of file class.ilObjectCustomUserFieldsGUI.php.

212 {
213 $this->initFieldForm(self::MODE_CREATE);
214
215 $this->form->getItemByPostVar('va')->setValues(array(''));
216
217 $this->tpl->setContent($this->form->getHTML());
218 }
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 403 of file class.ilObjectCustomUserFieldsGUI.php.

404 {
405 $GLOBALS['ilCtrl']->returnToParent($this);
406 }
$GLOBALS['loaded']
Global hash that tracks already loaded includes.

References $GLOBALS.

◆ confirmDeleteFields()

ilObjectCustomUserFieldsGUI::confirmDeleteFields ( )
protected

Show delete confirmation screen.

Returns

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

167 {
168 if (!count($_POST['field_ids'])) {
169 ilUtil::sendFailure($this->lng->txt('ps_cdf_select_one'));
170 $this->listFields();
171 return false;
172 }
173 include_once './Services/Utilities/classes/class.ilConfirmationGUI.php';
174 $confirm = new ilConfirmationGUI();
175 $confirm->setFormAction($this->ctrl->getFormAction($this));
176 $confirm->setHeaderText($this->lng->txt('ps_cdf_delete_sure'));
177
178 foreach ($_POST['field_ids'] as $field_id) {
179 $tmp_field = new ilCourseDefinedFieldDefinition($this->getObjId(), $field_id);
180
181 $confirm->addItem('field_ids[]', $field_id, $tmp_field->getName());
182 }
183
184 $confirm->setConfirm($this->lng->txt('delete'), 'deleteFields');
185 $confirm->setCancel($this->lng->txt('cancel'), 'listFields');
186 $this->tpl->setContent($confirm->getHTML());
187 }
$_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 193 of file class.ilObjectCustomUserFieldsGUI.php.

194 {
195 foreach ((array) $_POST['field_ids'] as $field_id) {
196 $tmp_field = new ilCourseDefinedFieldDefinition($this->obj_id, $field_id);
197 $tmp_field->delete();
198 }
199
201
202 ilUtil::sendSuccess($this->lng->txt('ps_cdf_deleted'));
203 $this->listFields();
204 return true;
205 }
static _deleteByObjId($a_obj_id)
Delete all entries by obj_id.
static sendSuccess($a_info="", $a_keep=false)
Send Success Message to Screen.

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

+ Here is the call graph for this function:

◆ editField()

ilObjectCustomUserFieldsGUI::editField ( )
protected

Edit one field.

Parameters
object$a_mode
Returns

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

257 {
258 if (!$_REQUEST['field_id']) {
259 $this->listFields();
260 return false;
261 }
262
263 $this->initFieldForm(self::MODE_UPDATE);
264
265 $udf = new ilCourseDefinedFieldDefinition($this->getObjId(), (int) $_REQUEST['field_id']);
266 $this->form->getItemByPostVar('na')->setValue($udf->getName());
267 $this->form->getItemByPostVar('ty')->setValue($udf->getType());
268 $this->form->getItemByPostVar('re')->setChecked($udf->isRequired());
269 $this->form->getItemByPostVar('va')->setValues($udf->getValues());
270 $this->form->getItemByPostVar('va')->setOpenAnswerIndexes($udf->getValueOptions());
271
272 $this->tpl->setContent($this->form->getHTML());
273 }

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 380 of file class.ilObjectCustomUserFieldsGUI.php.

381 {
382 $GLOBALS['ilCtrl']->saveParameter($this, 'member_id');
383
384 $GLOBALS['ilTabs']->clearTargets();
385 $GLOBALS['ilTabs']->clearSubTabs();
386 $GLOBALS['ilTabs']->setBackTarget($this->lng->txt('back'), $this->ctrl->getLinkTarget($this, 'cancelEditMember'));
387
388
389 if ($form instanceof ilPropertyFormGUI) {
390 $GLOBALS['tpl']->setContent($form->getHTML());
391 } else {
392 $form = $this->initMemberForm();
393 ilMemberAgreementGUI::setCourseDefinedFieldValues($form, $this->getObjId(), (int) $_REQUEST['member_id']);
394 }
395
396 $GLOBALS['tpl']->setContent($form->getHTML());
397 }
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 84 of file class.ilObjectCustomUserFieldsGUI.php.

85 {
86 global $ilErr, $ilAccess, $lng;
87
88 if (!$ilAccess->checkAccess('write', '', $this->ref_id)) {
89 $ilErr->raiseError($lng->txt('permission_denied'), $ilErr->WARNING);
90 }
91
92 $cmd = $this->ctrl->getCmd();
93
94 switch ($next_class = $this->ctrl->getNextClass($this)) {
95 default:
96 if (!$cmd) {
97 $cmd = 'show';
98 }
99 $this->$cmd();
100 break;
101 }
102 }
global $ilErr
Definition: raiseError.php:16

References $ilErr, and $lng.

◆ getObjId()

ilObjectCustomUserFieldsGUI::getObjId ( )

Get obj_id of container.

Returns

Definition at line 108 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 312 of file class.ilObjectCustomUserFieldsGUI.php.

313 {
314 if ($this->form instanceof ilPropertyFormGUI) {
315 return true;
316 }
317 include_once './Services/Form/classes/class.ilPropertyFormGUI.php';
318 $this->form = new ilPropertyFormGUI();
319
320 switch ($a_mode) {
322 $this->form->setFormAction($this->ctrl->getFormAction($this));
323 $this->form->setTitle($this->lng->txt('ps_cdf_add_field'));
324 $this->form->addCommandButton('saveField', $this->lng->txt('save'));
325 $this->form->addCommandButton('listFields', $this->lng->txt('cancel'));
326 break;
327
329 $this->ctrl->setParameter($this, 'field_id', (int) $_REQUEST['field_id']);
330 $this->form->setFormAction($this->ctrl->getFormAction($this));
331 $this->form->setTitle($this->lng->txt('ps_cdf_edit_field'));
332 $this->form->addCommandButton('updateField', $this->lng->txt('save'));
333 $this->form->addCommandButton('listFields', $this->lng->txt('cancel'));
334 break;
335 }
336
337 // Name
338 $na = new ilTextInputGUI($this->lng->txt('ps_cdf_name'), 'na');
339 $na->setSize(32);
340 $na->setMaxLength(255);
341 $na->setRequired(true);
342 $this->form->addItem($na);
343
344 // Type
345 $ty = new ilRadioGroupInputGUI($this->lng->txt('ps_field_type'), 'ty');
346 $ty->setRequired(true);
347 $this->form->addItem($ty);
348
349 if ($a_mode == self::MODE_UPDATE) {
350 $ty->setDisabled(true); // #14888
351 }
352
353 // Text type
354 $ty_te = new ilRadioOption($this->lng->txt('ps_type_txt_long'), IL_CDF_TYPE_TEXT);
355 $ty->addOption($ty_te);
356
357 // Select Type
358 $ty_se = new ilRadioOption($this->lng->txt('ps_type_select_long'), IL_CDF_TYPE_SELECT);
359 $ty->addOption($ty_se);
360
361 // Select Type Values
362 include_once './Services/Form/classes/class.ilSelectBuilderInputGUI.php';
363 $ty_se_mu = new ilSelectBuilderInputGUI($this->lng->txt('ps_cdf_value'), 'va');
364 $ty_se_mu->setAllowMove(true);
365 $ty_se_mu->setRequired(true);
366 $ty_se_mu->setSize(32);
367 $ty_se_mu->setMaxLength(128);
368 $ty_se->addSubItem($ty_se_mu);
369
370 // Required
371 $re = new ilCheckboxInputGUI($this->lng->txt('ps_cdf_required'), 're');
372 $re->setValue(1);
373 $this->form->addItem($re);
374 }
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 412 of file class.ilObjectCustomUserFieldsGUI.php.

413 {
414 include_once './Services/Form/classes/class.ilPropertyFormGUI.php';
415 $form = new ilPropertyFormGUI();
416 $form->setFormAction($GLOBALS['ilCtrl']->getFormAction($this));
417 $title = $this->lng->txt(ilObject::_lookupType($this->getObjId()) . '_cdf_edit_member');
418 $name = ilObjUser::_lookupName((int) $_REQUEST['member_id']);
419 $title .= (': ' . $name['lastname'] . ', ' . $name['firstname']);
420 $form->setTitle($title);
421
422 include_once './Services/Membership/classes/class.ilMemberAgreementGUI.php';
424
425 $form->addCommandButton('saveMember', $this->lng->txt('save'));
426 $form->addCommandButton('cancelEditMember', $this->lng->txt('cancel'));
427
428 return $form;
429 }
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:146

References $form, $GLOBALS, $name, $title, 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 129 of file class.ilObjectCustomUserFieldsGUI.php.

130 {
131 global $ilToolbar;
132
133 $ilToolbar->addButton(
134 $this->lng->txt('ps_cdf_add_field'),
135 $this->ctrl->getLinkTarget($this, 'addField')
136 );
137
138 include_once './Services/Membership/classes/class.ilObjectCustomUserFieldsTableGUI.php';
139 $table = new ilObjectCustomUserFieldsTableGUI($this, 'listFields');
141 $this->tpl->setContent($table->getHTML());
142 }
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
if(empty($password)) $table
Definition: pwgen.php:24

References $table, 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 224 of file class.ilObjectCustomUserFieldsGUI.php.

225 {
226 $GLOBALS['ilLog']->write(__METHOD__ . ': ' . print_r($_POST, true));
227
228 $this->initFieldForm(self::MODE_CREATE);
229 if ($this->form->checkInput()) {
230 $udf = new ilCourseDefinedFieldDefinition($this->getObjId());
231 $udf->setName($this->form->getInput('na'));
232 $udf->setType($this->form->getInput('ty'));
233 $udf->setValues($udf->prepareValues($this->form->getInput('va')));
234 $udf->setValueOptions($this->form->getItemByPostVar('va')->getOpenAnswerIndexes()); // #14720
235 $udf->enableRequired($this->form->getInput('re'));
236 $udf->save();
237
238 ilUtil::sendSuccess($this->lng->txt('ps_cdf_added_field'));
239 // reset agreements
241 $this->listFields();
242 return true;
243 }
244 // not valid
245 ilUtil::sendFailure($this->lng->txt('err_check_input'));
246 $this->form->setValuesByPost();
247 $this->tpl->setContent($this->form->getHTML());
248 return false;
249 }

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

+ Here is the call graph for this function:

◆ saveFields()

ilObjectCustomUserFieldsGUI::saveFields ( )
protected

Save Field settings (currently only required status)

Returns

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

149 {
151 foreach ($fields as $field_obj) {
152 $field_obj->enableRequired((bool) isset($_POST['required'][$field_obj->getId()]));
153 $field_obj->update();
154 }
155
157 ilUtil::sendSuccess($this->lng->txt('settings_saved'));
158 $this->listFields();
159 return true;
160 }

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

+ Here is the call graph for this function:

◆ saveMember()

ilObjectCustomUserFieldsGUI::saveMember ( )
protected

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

432 {
433 global $ilUser;
434
435 $GLOBALS['ilCtrl']->saveParameter($this, 'member_id');
436
437 $form = $this->initMemberForm();
438 if ($form->checkInput()) {
439 // save history
440 include_once './Services/Membership/classes/class.ilObjectCustomUserFieldHistory.php';
441 $history = new ilObjectCustomUserFieldHistory($this->getObjId(), (int) $_REQUEST['member_id']);
442 $history->setEditingTime(new ilDateTime(time(), IL_CAL_UNIX));
443 $history->setUpdateUser($ilUser->getId());
444 $history->save();
445
446 ilMemberAgreementGUI::saveCourseDefinedFields($form, $this->getObjId(), (int) $_REQUEST['member_id']);
447 ilUtil::sendSuccess($this->lng->txt('settings_saved'), true);
448 $GLOBALS['ilCtrl']->returnToParent($this);
449 return true;
450 }
451
452 $form->setValuesByPost();
453 ilUtil::sendFailure($this->lng->txt('err_check_input'));
454 return $this->editMember($form);
455 }
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 $form, $GLOBALS, $ilUser, editMember(), getObjId(), IL_CAL_UNIX, initMemberForm(), ilMemberAgreementGUI\saveCourseDefinedFields(), ilUtil\sendFailure(), and ilUtil\sendSuccess().

+ Here is the call graph for this function:

◆ show()

ilObjectCustomUserFieldsGUI::show ( )
protected

Show list of custom fields.

Returns

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

118 {
120 ilUtil::sendInfo($this->lng->txt('ps_cdf_warning_modify'));
121 }
122 $this->listFields();
123 }
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 279 of file class.ilObjectCustomUserFieldsGUI.php.

280 {
281 $GLOBALS['ilLog']->write(__METHOD__ . ': ' . print_r($_POST, true));
282
283 $this->initFieldForm(self::MODE_UPDATE);
284
285 if ($this->form->checkInput()) {
286 $udf = new ilCourseDefinedFieldDefinition($this->getObjId(), (int) $_REQUEST['field_id']);
287 $udf->setName($this->form->getInput('na'));
288 $udf->setType($this->form->getInput('ty'));
289 $prepared = $udf->prepareValues($this->form->getInput('va'));
290 $udf->setValues($prepared);
291 $udf->setValueOptions($this->form->getItemByPostVar('va')->getOpenAnswerIndexes());
292 $udf->enableRequired($this->form->getInput('re'));
293 $udf->update();
294
295 // Finally reset member agreements
297 ilUtil::sendSuccess($this->lng->txt('settings_saved'));
298 $this->listFields();
299 return true;
300 }
301
302 ilUtil::sendFailure($this->lng->txt('err_check_input'));
303 $this->form->setValuesByPost();
304 $this->tpl->setContent($this->form->getHTML());
305 return false;
306 }

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

+ 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: