ILIAS  release_5-2 Revision v5.2.25-18-g3f80b828510
ilMemberAgreementGUI Class Reference
+ Collaboration diagram for ilMemberAgreementGUI:

Public Member Functions

 __construct ($a_ref_id)
 Constructor. More...
 
 executeCommand ()
 Execute Command. More...
 
 getPrivacy ()
 Get privycy settings. More...
 
 getAgreement ()
 

Static Public Member Functions

static addExportFieldInfo ($form, $a_obj_id, $a_type)
 Add export field info to form type $lng. More...
 
static addAgreement ($form, $a_obj_id, $a_type)
 Add agreement to form. More...
 
static addCustomFields ($form, $a_obj_id, $a_type, $a_mode='user')
 Add custom course fields. More...
 
static setCourseDefinedFieldValues (ilPropertyFormGUI $form, $a_obj_id, $a_usr_id=0)
 
static saveCourseDefinedFields (ilPropertyFormGUI $form, $a_obj_id, $a_usr_id=0)
 Save course defined fields. More...
 

Protected Member Functions

 showAgreement (ilPropertyFormGUI $form=null)
 Show agreement form. More...
 
 initFormAgreement ()
 

Private Member Functions

 save ()
 Save. More...
 
 checkAgreement ()
 Check Agreement. More...
 
 init ()
 Read setting. More...
 
 sendInfoMessage ()
 Send info message. More...
 

Private Attributes

 $ref_id
 
 $obj_id
 
 $type
 
 $db
 
 $ctrl
 
 $lng
 
 $tpl
 
 $privacy
 
 $agreement
 
 $required_fullfilled = false
 
 $agrement_required = false
 

Detailed Description

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

ilMemberAgreementGUI:

Definition at line 18 of file class.ilMemberAgreementGUI.php.

Constructor & Destructor Documentation

◆ __construct()

ilMemberAgreementGUI::__construct (   $a_ref_id)

Constructor.

public

Definition at line 41 of file class.ilMemberAgreementGUI.php.

References $ilCtrl, $ilDB, $ilUser, $lng, $obj_id, $tpl, ilPrivacySettings\_getInstance(), ilObject\_lookupType(), and init().

42  {
43  global $ilDB,$ilCtrl,$lng,$tpl,$ilUser,$ilObjDataCache;
44 
45  $this->ref_id = $a_ref_id;
46  $this->obj_id = $ilObjDataCache->lookupObjId($this->ref_id);
47  $this->type = ilObject::_lookupType($this->obj_id);
48  $this->ctrl = $ilCtrl;
49  $this->tpl = $tpl;
50  $this->lng = $lng;
51  $this->lng->loadLanguageModule('ps');
52 
53  $this->privacy = ilPrivacySettings::_getInstance();
54  $this->agreement = new ilMemberAgreement($ilUser->getId(),$this->obj_id);
55  $this->init();
56  }
global $ilCtrl
Definition: ilias.php:18
$ilUser
Definition: imgupload.php:18
static _lookupType($a_id, $a_reference=false)
lookup object type
global $ilDB
static _getInstance()
Get instance of ilPrivacySettings.
+ Here is the call graph for this function:

Member Function Documentation

◆ addAgreement()

static ilMemberAgreementGUI::addAgreement (   $form,
  $a_obj_id,
  $a_type 
)
static

Add agreement to form.

Parameters
type$form
type$a_obj_id
type$a_type

Definition at line 185 of file class.ilMemberAgreementGUI.php.

References $a_type, $agreement, and $lng.

Referenced by ilRegistrationGUI\fillAgreement().

186  {
187  global $lng;
188 
189  $agreement = new ilCheckboxInputGUI($lng->txt($a_type.'_agree'),'agreement');
190  $agreement->setRequired(true);
191  $agreement->setOptionTitle($lng->txt($a_type.'_info_agree'));
192  $agreement->setValue(1);
193  $form->addItem($agreement);
194 
195  return $form;
196  }
This class represents a checkbox property in a property form.
$a_type
Definition: workflow.php:93
+ Here is the caller graph for this function:

◆ addCustomFields()

static ilMemberAgreementGUI::addCustomFields (   $form,
  $a_obj_id,
  $a_type,
  $a_mode = 'user' 
)
static

Add custom course fields.

Parameters
type$form
type$a_obj_id
type$a_type

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

References $a_type, $lng, $text, ilCourseDefinedFieldDefinition\_getFields(), array, IL_CDF_TYPE_SELECT, IL_CDF_TYPE_TEXT, ilSelectInputGUI\setOptions(), ilFormPropertyGUI\setRequired(), and ilNonEditableValueGUI\setValue().

Referenced by ilRegistrationGUI\fillAgreement(), and ilObjectCustomUserFieldsGUI\initMemberForm().

205  {
206  global $lng;
207 
208  include_once('Modules/Course/classes/Export/class.ilCourseDefinedFieldDefinition.php');
209  include_once('Modules/Course/classes/Export/class.ilCourseUserData.php');
210 
211  if(!count($cdf_fields = ilCourseDefinedFieldDefinition::_getFields($a_obj_id)))
212  {
213  return $form;
214  }
215 
216  if($a_mode == 'user')
217  {
218  $cdf = new ilNonEditableValueGUI($lng->txt('ps_'.$a_type.'_user_fields'));
219  $cdf->setValue($lng->txt($a_type.'_ps_cdf_info'));
220  $cdf->setRequired(true);
221  }
222 
223  foreach($cdf_fields as $field_obj)
224  {
225  switch($field_obj->getType())
226  {
227  case IL_CDF_TYPE_SELECT:
228 
229  if($field_obj->getValueOptions())
230  {
231  // Show as radio group
232  $option_radios = new ilRadioGroupInputGUI($field_obj->getName(), 'cdf_'.$field_obj->getId());
233  if($field_obj->isRequired())
234  {
235  $option_radios->setRequired(true);
236  }
237 
238  $open_answer_indexes = (array) $field_obj->getValueOptions();
239  foreach($field_obj->getValues() as $key => $val)
240  {
241  $option_radio = new ilRadioOption($val,$field_obj->getId().'_'.$key);
242 
243  // open answers
244  if(in_array($key, $open_answer_indexes))
245  {
246  $open_answer = new ilTextInputGUI($lng->txt("form_open_answer"), 'cdf_oa_'.$field_obj->getId().'_'.$key);
247  $open_answer->setRequired(true);
248  $option_radio->addSubItem($open_answer);
249  }
250 
251  $option_radios->addOption($option_radio);
252  }
253  if($a_mode == 'user')
254  {
255  $cdf->addSubItem($option_radios);
256  }
257  else
258  {
259  $form->addItem($option_radios);
260  }
261  }
262  else
263  {
264  $select = new ilSelectInputGUI($field_obj->getName(),'cdf_'.$field_obj->getId());
265  #$select->setValue(ilUtil::stripSlashes($_POST['cdf'][$field_obj->getId()]));
266  $select->setOptions($field_obj->prepareSelectBox());
267  if($field_obj->isRequired())
268  {
269  $select->setRequired(true);
270  }
271  if($a_mode == 'user')
272  {
273  $cdf->addSubItem($select);
274  }
275  else
276  {
277  $form->addItem($select);
278  }
279  }
280  break;
281 
282  case IL_CDF_TYPE_TEXT:
283  $text = new ilTextInputGUI($field_obj->getName(),'cdf_'.$field_obj->getId());
284  #$text->setValue(ilUtil::stripSlashes($_POST['cdf'][$field_obj->getId()]));
285  $text->setSize(32);
286  $text->setMaxLength(255);
287  if($field_obj->isRequired())
288  {
289  $text->setRequired(true);
290  }
291  if($a_mode == 'user')
292  {
293  $cdf->addSubItem($text);
294  }
295  else
296  {
297  $form->addItem($text);
298  }
299  break;
300  }
301  }
302  if($a_mode == 'user')
303  {
304  $form->addItem($cdf);
305  }
306  return $form;
307 
308  }
This class represents an option in a radio group.
This class represents a selection list property in a property form.
$a_type
Definition: workflow.php:93
This class represents a property in a property form.
This class represents a text property in a property form.
setOptions($a_options)
Set Options.
Create styles array
The data for the language used.
This class represents a non editable value in a property form.
$text
setRequired($a_required)
Set Required.
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:

◆ addExportFieldInfo()

static ilMemberAgreementGUI::addExportFieldInfo (   $form,
  $a_obj_id,
  $a_type 
)
static

Add export field info to form type $lng.

Parameters
type$form
type$a_obj_id
type$a_type
Returns
type

Definition at line 146 of file class.ilMemberAgreementGUI.php.

References $a_type, $lng, $tpl, ilUserDefinedFields\_getInstance(), ilExportFieldsInfo\_getInstanceByType(), ilObject\_lookupType(), and ilCustomInputGUI\setHtml().

Referenced by ilRegistrationGUI\fillAgreement().

147  {
148  global $lng;
149 
150  include_once('Services/PrivacySecurity/classes/class.ilExportFieldsInfo.php');
152 
153  $fields = new ilCustomInputGUI($lng->txt($a_type.'_user_agreement'),'');
154  $tpl = new ilTemplate('tpl.agreement_form.html',true,true,'Services/Membership');
155  $tpl->setVariable('TXT_INFO_AGREEMENT',$lng->txt($a_type.'_info_agreement'));
156  foreach($fields_info->getExportableFields() as $field)
157  {
158  $tpl->setCurrentBlock('field_item');
159  $tpl->setVariable('FIELD_NAME',$lng->txt($field));
160  $tpl->parseCurrentBlock();
161  }
162 
163  // #17609 - not part of ilExportFieldsInfo::getExportableFields()
164  // see ilExportFieldsInfo::getSelectableFieldsInfo()
165  include_once('Services/User/classes/class.ilUserDefinedFields.php');
166  foreach(ilUserDefinedFields::_getInstance()->getExportableFields($a_obj_id) as $field)
167  {
168  $tpl->setCurrentBlock('field_item');
169  $tpl->setVariable('FIELD_NAME',$field['field_name']);
170  $tpl->parseCurrentBlock();
171  }
172 
173  $fields->setHtml($tpl->get());
174  $form->addItem($fields);
175 
176  return $form;
177  }
setHtml($a_html)
Set Html.
static _getInstance()
Get instance.
$a_type
Definition: workflow.php:93
static _getInstanceByType($a_type)
Get Singleton Instance.
special template class to simplify handling of ITX/PEAR
static _lookupType($a_id, $a_reference=false)
lookup object type
This class represents a custom property in a property form.
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ checkAgreement()

ilMemberAgreementGUI::checkAgreement ( )
private

Check Agreement.

private

Definition at line 462 of file class.ilMemberAgreementGUI.php.

References $_POST, and $ilUser.

Referenced by save().

463  {
464  global $ilUser;
465 
466  if($_POST['agreement'])
467  {
468  return true;
469  }
470  if($this->privacy->confirmationRequired($this->type))
471  {
472  return false;
473  }
474  return true;
475  }
$ilUser
Definition: imgupload.php:18
$_POST["username"]
+ Here is the caller graph for this function:

◆ executeCommand()

ilMemberAgreementGUI::executeCommand ( )

Execute Command.

public

Definition at line 64 of file class.ilMemberAgreementGUI.php.

References $cmd.

65  {
66  $next_class = $this->ctrl->getNextClass($this);
67  $cmd = $this->ctrl->getCmd();
68 
69  switch($next_class)
70  {
71  default:
72  if(!$cmd or $cmd == 'view')
73  {
74  $cmd = 'showAgreement';
75  }
76  $this->$cmd();
77  break;
78  }
79  }
$cmd
Definition: sahs_server.php:35

◆ getAgreement()

ilMemberAgreementGUI::getAgreement ( )
Returns
ilMemberAgreement

Definition at line 93 of file class.ilMemberAgreementGUI.php.

References $agreement.

Referenced by init(), and save().

+ Here is the caller graph for this function:

◆ getPrivacy()

ilMemberAgreementGUI::getPrivacy ( )

Get privycy settings.

Returns
ilPrivacySettings

Definition at line 85 of file class.ilMemberAgreementGUI.php.

References $privacy.

Referenced by initFormAgreement().

+ Here is the caller graph for this function:

◆ init()

ilMemberAgreementGUI::init ( )
private

Read setting.

private

Returns
void

Definition at line 485 of file class.ilMemberAgreementGUI.php.

References $ilUser, $obj_id, ilCourseUserData\_checkRequired(), and getAgreement().

Referenced by __construct().

486  {
487  global $ilUser;
488 
489  $this->required_fullfilled = ilCourseUserData::_checkRequired($ilUser->getId(),$this->obj_id);
490  $this->agreement_required = $this->getAgreement()->agreementRequired();
491  }
$ilUser
Definition: imgupload.php:18
static _checkRequired($a_usr_id, $a_obj_id)
Check required fields.
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ initFormAgreement()

ilMemberAgreementGUI::initFormAgreement ( )
protected

Definition at line 119 of file class.ilMemberAgreementGUI.php.

References $GLOBALS, and getPrivacy().

Referenced by save(), and showAgreement().

120  {
121  include_once './Services/Form/classes/class.ilPropertyFormGUI.php';
122  $form = new ilPropertyFormGUI();
123  $form->setTitle($this->lng->txt($this->type.'_agreement_header'));
124  $form->setFormAction($GLOBALS['ilCtrl']->getFormAction($this));
125  $form->addCommandButton('save', $this->lng->txt('save'));
126 
127  $form = self::addExportFieldInfo($form, $this->obj_id, $this->type);
128  $form = self::addCustomFields($form, $this->obj_id, $this->type);
129 
130  if($this->getPrivacy()->confirmationRequired($this->type))
131  {
132  $form = self::addAgreement($form, $this->obj_id, $this->type);
133  }
134 
135  return $form;
136  }
This class represents a property form user interface.
$GLOBALS['loaded']
Global hash that tracks already loaded includes.
getPrivacy()
Get privycy settings.
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ save()

ilMemberAgreementGUI::save ( )
private

Save.

private

Parameters

Definition at line 319 of file class.ilMemberAgreementGUI.php.

References $ilUser, checkAgreement(), getAgreement(), IL_CAL_UNIX, initFormAgreement(), ilUtil\sendFailure(), ilObjectCustomUserFieldHistory\setUpdateUser(), showAgreement(), and time.

320  {
321  global $ilUser;
322 
323  $form = $this->initFormAgreement();
324 
325  // #14715 - checkInput() does not work for checkboxes
326  if($this->checkAgreement() && $form->checkInput())
327  {
328  self::saveCourseDefinedFields($form, $this->obj_id);
329 
330  $this->getAgreement()->setAccepted(true);
331  $this->getAgreement()->setAcceptanceTime(time());
332  $this->getAgreement()->save();
333 
334  include_once './Services/Membership/classes/class.ilObjectCustomUserFieldHistory.php';
335  $history = new ilObjectCustomUserFieldHistory($this->obj_id,$ilUser->getId());
336  $history->setUpdateUser($ilUser->getId());
337  $history->setEditingTime(new ilDateTime(time(),IL_CAL_UNIX));
338  $history->save();
339 
340  $this->ctrl->returnToParent($this);
341  }
342  elseif(!$this->checkAgreement())
343  {
344  ilUtil::sendFailure($this->lng->txt($this->type.'_agreement_required'));
345  $form->setValuesByPost();
346  $this->showAgreement($form);
347  return false;
348  }
349  else
350  {
351  ilUtil::sendFailure($this->lng->txt('fill_out_all_required_fields'));
352  $form->setValuesByPost();
353  $this->showAgreement($form);
354  return false;
355  }
356  }
Editing history for object custom user fields.
const IL_CAL_UNIX
Date and time handling
$ilUser
Definition: imgupload.php:18
showAgreement(ilPropertyFormGUI $form=null)
Show agreement form.
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
Add data(end) time
Method that wraps PHPs time in order to allow simulations with the workflow.
+ Here is the call graph for this function:

◆ saveCourseDefinedFields()

static ilMemberAgreementGUI::saveCourseDefinedFields ( ilPropertyFormGUI  $form,
  $a_obj_id,
  $a_usr_id = 0 
)
static

Save course defined fields.

Parameters
ilPropertyFormGUI$form

Definition at line 416 of file class.ilMemberAgreementGUI.php.

References $ilUser, ilCourseDefinedFieldDefinition\_getFields(), array, ilPropertyFormGUI\getInput(), IL_CDF_TYPE_SELECT, IL_CDF_TYPE_TEXT, and ilCourseUserData\setValue().

Referenced by ilObjectCustomUserFieldsGUI\saveMember().

417  {
418  global $ilUser;
419 
420  if(!$a_usr_id)
421  {
422  $a_usr_id = $ilUser->getId();
423  }
424 
425  foreach(ilCourseDefinedFieldDefinition::_getFields($a_obj_id) as $field_obj)
426  {
427  switch($field_obj->getType())
428  {
429  case IL_CDF_TYPE_SELECT:
430 
431  // Split value id from post
432  list($field_id,$option_id) = explode('_', $form->getInput('cdf_'.$field_obj->getId()));
433  $open_answer_indexes = (array) $field_obj->getValueOptions();
434  if(in_array($option_id, $open_answer_indexes))
435  {
436  $value = $form->getInput('cdf_oa_'.$field_obj->getId().'_'.$option_id);
437  }
438  else
439  {
440  $value = $field_obj->getValueById($option_id);
441  }
442  break;
443 
444  case IL_CDF_TYPE_TEXT:
445  $value = $form->getInput('cdf_'.$field_obj->getId());
446  break;
447  }
448 
449  $course_user_data = new ilCourseUserData($a_usr_id,$field_obj->getId());
450  $course_user_data->setValue($value);
451  $course_user_data->update();
452  }
453  }
$ilUser
Definition: imgupload.php:18
getInput($a_post_var, $ensureValidation=true)
Returns the value of a HTTP-POST variable, identified by the passed id.
Create styles array
The data for the language used.
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:

◆ sendInfoMessage()

ilMemberAgreementGUI::sendInfoMessage ( )
private

Send info message.

private

Definition at line 498 of file class.ilMemberAgreementGUI.php.

References ilUtil\sendFailure().

499  {
500  $message = '';
501  if($this->agreement_required)
502  {
503  $message = $this->lng->txt($this->type.'_ps_agreement_req_info');
504  }
505  if(!$this->required_fullfilled)
506  {
507  if(strlen($message))
508  {
509  $message .= '<br />';
510  }
511  $message .= $this->lng->txt($this->type.'_ps_required_info');
512  }
513 
514  if(strlen($message))
515  {
516  ilUtil::sendFailure($message);
517  }
518  }
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
+ Here is the call graph for this function:

◆ setCourseDefinedFieldValues()

static ilMemberAgreementGUI::setCourseDefinedFieldValues ( ilPropertyFormGUI  $form,
  $a_obj_id,
  $a_usr_id = 0 
)
static

Definition at line 358 of file class.ilMemberAgreementGUI.php.

References $ilUser, ilCourseDefinedFieldDefinition\_getFields(), ilCourseUserData\_getValuesByObjId(), ilPropertyFormGUI\getItemByPostVar(), IL_CDF_TYPE_SELECT, and IL_CDF_TYPE_TEXT.

Referenced by ilObjectCustomUserFieldsGUI\editMember().

359  {
360  global $ilUser;
361 
362  if(!$a_usr_id)
363  {
364  $a_usr_id = $ilUser->getId();
365  }
366 
367  $ud = ilCourseUserData::_getValuesByObjId($a_obj_id);
368 
369  foreach(ilCourseDefinedFieldDefinition::_getFields($a_obj_id) as $field_obj)
370  {
371  $current_value = $ud[$a_usr_id][$field_obj->getId()];
372  if(!$current_value)
373  {
374  continue;
375  }
376 
377  switch($field_obj->getType())
378  {
379  case IL_CDF_TYPE_SELECT:
380 
381  $id = $field_obj->getIdByValue($current_value);
382 
383  if($id >= 0)
384  {
385  $item = $form->getItemByPostVar('cdf_'.$field_obj->getId());
386  $item->setValue($field_obj->getId().'_'.$id);
387  }
388  else
389  {
390  // open answer
391  $open_answer_indexes = $field_obj->getValueOptions();
392  $open_answer_index = end($open_answer_indexes);
393  $item = $form->getItemByPostVar('cdf_'.$field_obj->getId());
394  $item->setValue($field_obj->getId().'_'.$open_answer_index);
395  $item_txt = $form->getItemByPostVar('cdf_oa_'.$field_obj->getId().'_'.$open_answer_index);
396  if($item_txt)
397  {
398  $item_txt->setValue($current_value);
399  }
400  }
401  break;
402 
403  case IL_CDF_TYPE_TEXT:
404  $item = $form->getItemByPostVar('cdf_'.$field_obj->getId());
405  $item->setValue($current_value);
406  break;
407  }
408  }
409  }
getItemByPostVar($a_post_var)
Get Item by POST variable.
static _getValuesByObjId($a_obj_id)
Get values by obj_id (for all users)
$ilUser
Definition: imgupload.php:18
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:

◆ showAgreement()

ilMemberAgreementGUI::showAgreement ( ilPropertyFormGUI  $form = null)
protected

Show agreement form.

Parameters
ilPropertyFormGUI$form
Returns
bool

Definition at line 103 of file class.ilMemberAgreementGUI.php.

References $ilUser, and initFormAgreement().

Referenced by save().

104  {
105  global $ilUser;
106 
107  if(!$form instanceof ilPropertyFormGUI)
108  {
109  $form = $this->initFormAgreement($form);
110  self::setCourseDefinedFieldValues($form, $this->obj_id, $ilUser->getId());
111  }
112 
113  $this->tpl->setContent($form->getHTML());
114  return true;
115  }
This class represents a property form user interface.
$ilUser
Definition: imgupload.php:18
getId()
Get Id.
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

Field Documentation

◆ $agreement

ilMemberAgreementGUI::$agreement
private

Definition at line 30 of file class.ilMemberAgreementGUI.php.

Referenced by addAgreement(), and getAgreement().

◆ $agrement_required

ilMemberAgreementGUI::$agrement_required = false
private

Definition at line 33 of file class.ilMemberAgreementGUI.php.

◆ $ctrl

ilMemberAgreementGUI::$ctrl
private

Definition at line 25 of file class.ilMemberAgreementGUI.php.

◆ $db

ilMemberAgreementGUI::$db
private

Definition at line 24 of file class.ilMemberAgreementGUI.php.

◆ $lng

ilMemberAgreementGUI::$lng
private

◆ $obj_id

ilMemberAgreementGUI::$obj_id
private

Definition at line 21 of file class.ilMemberAgreementGUI.php.

Referenced by __construct(), and init().

◆ $privacy

ilMemberAgreementGUI::$privacy
private

Definition at line 29 of file class.ilMemberAgreementGUI.php.

Referenced by getPrivacy().

◆ $ref_id

ilMemberAgreementGUI::$ref_id
private

Definition at line 20 of file class.ilMemberAgreementGUI.php.

◆ $required_fullfilled

ilMemberAgreementGUI::$required_fullfilled = false
private

Definition at line 32 of file class.ilMemberAgreementGUI.php.

◆ $tpl

ilMemberAgreementGUI::$tpl
private

Definition at line 27 of file class.ilMemberAgreementGUI.php.

Referenced by __construct(), and addExportFieldInfo().

◆ $type

ilMemberAgreementGUI::$type
private

Definition at line 22 of file class.ilMemberAgreementGUI.php.


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