ILIAS  release_5-1 Revision 5.0.0-5477-g43f3e3fab5f
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 420 of file class.ilObjectCustomUserFieldsGUI.php.

421 {
422 $GLOBALS['ilCtrl']->returnToParent($this);
423 }
$GLOBALS['PHPCAS_CLIENT']
This global variable is used by the interface class phpCAS.
Definition: CAS.php:276

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

266 {
267 if(!$_REQUEST['field_id'])
268 {
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 }
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 394 of file class.ilObjectCustomUserFieldsGUI.php.

395 {
396 $GLOBALS['ilCtrl']->saveParameter($this,'member_id');
397
398 $GLOBALS['ilTabs']->clearTargets();
399 $GLOBALS['ilTabs']->clearSubTabs();
400 $GLOBALS['ilTabs']->setBackTarget($this->lng->txt('back'),$this->ctrl->getLinkTarget($this,'cancelEditMember'));
401
402
403 if($form instanceof ilPropertyFormGUI)
404 {
405 $GLOBALS['tpl']->setContent($form->getHTML());
406 }
407 else
408 {
409 $form = $this->initMemberForm();
410 ilMemberAgreementGUI::setCourseDefinedFieldValues($form, $this->getObjId(), (int) $_REQUEST['member_id']);
411 }
412
413 $GLOBALS['tpl']->setContent($form->getHTML());
414 }
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 323 of file class.ilObjectCustomUserFieldsGUI.php.

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

430 {
431 include_once './Services/Form/classes/class.ilPropertyFormGUI.php';
432 $form = new ilPropertyFormGUI();
433 $form->setFormAction($GLOBALS['ilCtrl']->getFormAction($this));
434 $title = $this->lng->txt(ilObject::_lookupType($this->getObjId()).'_cdf_edit_member');
435 $name = ilObjUser::_lookupName((int) $_REQUEST['member_id']);
436 $title .= (': '.$name['lastname'].', '.$name['firstname']);
437 $form->setTitle($title);
438
439 include_once './Services/Membership/classes/class.ilMemberAgreementGUI.php';
441
442 $form->addCommandButton('saveMember', $this->lng->txt('save'));
443 $form->addCommandButton('cancelEditMember', $this->lng->txt('cancel'));
444
445 return $form;
446 }
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 // reset agreements
250 $this->listFields();
251 return true;
252 }
253 // not valid
254 ilUtil::sendFailure($this->lng->txt('err_check_input'));
255 $this->form->setValuesByPost();
256 $this->tpl->setContent($this->form->getHTML());
257 return false;
258 }

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

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

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

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: