ILIAS  release_4-4 Revision
All Data Structures Namespaces Files Functions Variables Modules Pages
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...
 

Private Attributes

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

Detailed Description

Constructor & Destructor Documentation

◆ __construct()

ilObjectCustomUserFieldsGUI::__construct (   $a_obj_id)

Constructor.

public

Parameters

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

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

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
global $ilCtrl
Definition: ilias.php:18
static _lookupType($a_id, $a_reference=false)
lookup object type
+ 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.

References initFieldForm().

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.
+ Here is the call graph for this function:

◆ confirmDeleteFields()

ilObjectCustomUserFieldsGUI::confirmDeleteFields ( )
protected

Show delete confirmation screen.

Returns

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

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

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  }
$_POST['username']
Definition: cron.php:12
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
listFields()
List existing custom fields.
Confirmation screen class.
+ 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.

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

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 
208  ilMemberAgreement::_deleteByObjId($this->obj_id);
209 
210  ilUtil::sendSuccess($this->lng->txt('ps_cdf_deleted'));
211  $this->listFields();
212  return true;
213  }
static sendSuccess($a_info="", $a_keep=false)
Send Success Message to Screen.
$_POST['username']
Definition: cron.php:12
listFields()
List existing custom fields.
static _deleteByObjId($a_obj_id)
Delete all entries by obj_id.
+ Here is the call graph for this function:

◆ editField()

ilObjectCustomUserFieldsGUI::editField ( )
protected

Edit one field.

Parameters
object$a_mode
Returns

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

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

263  {
264  if(!$_REQUEST['field_id'])
265  {
266  $this->listFields();
267  return false;
268  }
269 
270  $this->initFieldForm(self::MODE_UPDATE);
271 
272  $udf = new ilCourseDefinedFieldDefinition($this->getObjId(),(int) $_REQUEST['field_id']);
273  $this->form->getItemByPostVar('na')->setValue($udf->getName());
274  $this->form->getItemByPostVar('ty')->setValue($udf->getType());
275  $this->form->getItemByPostVar('re')->setChecked($udf->isRequired());
276  $this->form->getItemByPostVar('va')->setValues($udf->getValues());
277  $this->form->getItemByPostVar('va')->setOpenAnswerIndexes($udf->getValueOptions());
278 
279  $this->tpl->setContent($this->form->getHTML());
280  }
initFieldForm($a_mode)
Init/create property form for fields.
listFields()
List existing custom fields.
if($_REQUEST['ilias_path']) define('ILIAS_HTTP_PATH' $_REQUEST['ilias_path']
Definition: index.php:7
+ Here is the call graph for this function:

◆ executeCommand()

ilObjectCustomUserFieldsGUI::executeCommand ( )

Execute Command.

public

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

References $cmd, $ilErr, and $lng.

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

◆ 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(), listFields(), saveField(), saveFields(), 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.

References $_REQUEST, IL_CDF_TYPE_SELECT, IL_CDF_TYPE_TEXT, ilTextWizardInputGUI\setAllowMove(), ilFormPropertyGUI\setRequired(), ilTextInputGUI\setSize(), and ilCheckboxInputGUI\setValue().

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

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

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

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

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');
144  $table->parse(ilCourseDefinedFieldDefinition::_getFields($this->getObjId()));
145  $this->tpl->setContent($table->getHTML());
146  }
Table presentation of course/group relevant user data fields
static _getFields($a_container_id, $a_sort=IL_CDF_SORT_NAME)
Get all fields of a container.
+ 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.

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

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->enableRequired($this->form->getInput('re'));
244  $udf->save();
245 
246  ilUtil::sendSuccess($this->lng->txt('ps_cdf_added_field'));
247  $this->listFields();
248  return true;
249  }
250  // not valid
251  ilUtil::sendFailure($this->lng->txt('err_check_input'));
252  $this->form->setValuesByPost();
253  $this->tpl->setContent($this->form->getHTML());
254  return false;
255  }
static sendSuccess($a_info="", $a_keep=false)
Send Success Message to Screen.
$_POST['username']
Definition: cron.php:12
initFieldForm($a_mode)
Init/create property form for fields.
$GLOBALS['ct_recipient']
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
listFields()
List existing custom fields.
+ 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.

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

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  }
static sendSuccess($a_info="", $a_keep=false)
Send Success Message to Screen.
$_POST['username']
Definition: cron.php:12
listFields()
List existing custom fields.
static _deleteByObjId($a_obj_id)
Delete all entries by obj_id.
static _getFields($a_container_id, $a_sort=IL_CDF_SORT_NAME)
Get all fields of a container.
+ 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.

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

121  {
123  {
124  ilUtil::sendInfo($this->lng->txt('ps_cdf_warning_modify'));
125  }
126  $this->listFields();
127  }
static sendInfo($a_info="", $a_keep=false)
Send Info Message to Screen.
static _hasAgreementsByObjId($a_obj_id)
Check if there is any user agreement.
listFields()
List existing custom fields.
+ Here is the call graph for this function:

◆ updateField()

ilObjectCustomUserFieldsGUI::updateField ( )
protected

Update field definition.

Returns

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

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

287  {
288  $GLOBALS['ilLog']->write(__METHOD__.': '.print_r($_POST,true));
289 
290  $this->initFieldForm(self::MODE_UPDATE);
291 
292  if($this->form->checkInput())
293  {
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  }
static sendSuccess($a_info="", $a_keep=false)
Send Success Message to Screen.
$_POST['username']
Definition: cron.php:12
initFieldForm($a_mode)
Init/create property form for fields.
$GLOBALS['ct_recipient']
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
listFields()
List existing custom fields.
if($_REQUEST['ilias_path']) define('ILIAS_HTTP_PATH' $_REQUEST['ilias_path']
Definition: index.php:7
static _deleteByObjId($a_obj_id)
Delete all entries by obj_id.
+ 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.

◆ $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.

◆ MODE_UPDATE

const ilObjectCustomUserFieldsGUI::MODE_UPDATE = 2

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


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