ILIAS  release_5-0 Revision 5.0.0-1144-gc4397b1f870
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 219 of file class.ilObjectCustomUserFieldsGUI.php.

220 {
221 $this->initFieldForm(self::MODE_CREATE);
222
223 $this->form->getItemByPostVar('va')->setValues(array(''));
224
225 $this->tpl->setContent($this->form->getHTML());
226 }
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 418 of file class.ilObjectCustomUserFieldsGUI.php.

419 {
420 $GLOBALS['ilCtrl']->returnToParent($this);
421 }
$GLOBALS['ct_recipient']

References $GLOBALS.

◆ confirmDeleteFields()

ilObjectCustomUserFieldsGUI::confirmDeleteFields ( )
protected

Show delete confirmation screen.

Returns

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

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

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

201 {
202 foreach((array) $_POST['field_ids'] as $field_id)
203 {
204 $tmp_field = new ilCourseDefinedFieldDefinition($this->obj_id,$field_id);
205 $tmp_field->delete();
206 }
207
209
210 ilUtil::sendSuccess($this->lng->txt('ps_cdf_deleted'));
211 $this->listFields();
212 return true;
213 }
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 263 of file class.ilObjectCustomUserFieldsGUI.php.

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

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

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

References $_REQUEST, $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 {
90 $ilErr->raiseError($lng->txt('permission_denied'),$ilErr->WARNING);
91 }
92
93 $cmd = $this->ctrl->getCmd();
94
95 switch($next_class = $this->ctrl->getNextClass($this))
96 {
97 default:
98 if(!$cmd)
99 {
100 $cmd = 'show';
101 }
102 $this->$cmd();
103 break;
104 }
105 }
$cmd
Definition: sahs_server.php:35

References $cmd, $ilErr, and $lng.

◆ getObjId()

ilObjectCustomUserFieldsGUI::getObjId ( )

Get obj_id of container.

Returns

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

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

428 {
429 include_once './Services/Form/classes/class.ilPropertyFormGUI.php';
430 $form = new ilPropertyFormGUI();
431 $form->setFormAction($GLOBALS['ilCtrl']->getFormAction($this));
432 $title = $this->lng->txt(ilObject::_lookupType($this->getObjId()).'_cdf_edit_member');
433 $name = ilObjUser::_lookupName((int) $_REQUEST['member_id']);
434 $title .= (': '.$name['lastname'].', '.$name['firstname']);
435 $form->setTitle($title);
436
437 include_once './Services/Membership/classes/class.ilMemberAgreementGUI.php';
439
440 $form->addCommandButton('saveMember', $this->lng->txt('save'));
441 $form->addCommandButton('cancelEditMember', $this->lng->txt('cancel'));
442
443 return $form;
444 }
static addCustomFields($form, $a_obj_id, $a_type, $a_mode='user')
Add custom course fields.
static _lookupName($a_user_id)
lookup user name

References $_REQUEST, $form, $GLOBALS, 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 133 of file class.ilObjectCustomUserFieldsGUI.php.

134 {
135 global $ilToolbar;
136
137 $ilToolbar->addButton(
138 $this->lng->txt('ps_cdf_add_field'),
139 $this->ctrl->getLinkTarget($this,'addField')
140 );
141
142 include_once './Services/Membership/classes/class.ilObjectCustomUserFieldsTableGUI.php';
143 $table = new ilObjectCustomUserFieldsTableGUI($this,'listFields');
145 $this->tpl->setContent($table->getHTML());
146 }
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 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 232 of file class.ilObjectCustomUserFieldsGUI.php.

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

References $_POST, $GLOBALS, 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 152 of file class.ilObjectCustomUserFieldsGUI.php.

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

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

447 {
448 global $ilUser;
449
450 $GLOBALS['ilCtrl']->saveParameter($this,'member_id');
451
452 $form = $this->initMemberForm();
453 if($form->checkInput())
454 {
455 // save history
456 include_once './Services/Membership/classes/class.ilObjectCustomUserFieldHistory.php';
457 $history = new ilObjectCustomUserFieldHistory($this->getObjId(), (int) $_REQUEST['member_id']);
458 $history->setEditingTime(new ilDateTime(time(),IL_CAL_UNIX));
459 $history->setUpdateUser($ilUser->getId());
460 $history->save();
461
463 ilUtil::sendSuccess($this->lng->txt('settings_saved'),TRUE);
464 $GLOBALS['ilCtrl']->returnToParent($this);
465 return TRUE;
466 }
467
468 $form->setValuesByPost();
469 ilUtil::sendFailure($this->lng->txt('err_check_input'));
470 return $this->editMember($form);
471 }
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.
global $ilUser
Definition: imgupload.php:15

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

121 {
123 {
124 ilUtil::sendInfo($this->lng->txt('ps_cdf_warning_modify'));
125 }
126 $this->listFields();
127 }
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 287 of file class.ilObjectCustomUserFieldsGUI.php.

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

References $_POST, $_REQUEST, $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: