ILIAS  release_5-1 Revision 5.0.0-5477-g43f3e3fab5f
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
static _lookupType($a_id, $a_reference=false)
lookup object type
global $ilUser
Definition: imgupload.php:15
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 182 of file class.ilMemberAgreementGUI.php.

References $agreement, and $lng.

Referenced by ilRegistrationGUI\fillAgreement().

183  {
184  global $lng;
185 
186  $agreement = new ilCheckboxInputGUI($lng->txt($a_type.'_agree'),'agreement');
187  $agreement->setRequired(true);
188  $agreement->setOptionTitle($lng->txt($a_type.'_info_agree'));
189  $agreement->setValue(1);
190  $form->addItem($agreement);
191 
192  return $form;
193  }
This class represents a checkbox property in a property form.
+ 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 201 of file class.ilMemberAgreementGUI.php.

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

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

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

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

Referenced by ilRegistrationGUI\fillAgreement().

144  {
145  global $lng;
146 
147  include_once('Services/PrivacySecurity/classes/class.ilExportFieldsInfo.php');
149 
150  $fields = new ilCustomInputGUI($lng->txt($a_type.'_user_agreement'),'');
151  $tpl = new ilTemplate('tpl.agreement_form.html',true,true,'Services/Membership');
152  $tpl->setVariable('TXT_INFO_AGREEMENT',$lng->txt($a_type.'_info_agreement'));
153  foreach($fields_info->getExportableFields() as $field)
154  {
155  $tpl->setCurrentBlock('field_item');
156  $tpl->setVariable('FIELD_NAME',$lng->txt($field));
157  $tpl->parseCurrentBlock();
158  }
159 
160  // #17609 - not part of ilExportFieldsInfo::getExportableFields()
161  // see ilExportFieldsInfo::getSelectableFieldsInfo()
162  include_once('Services/User/classes/class.ilUserDefinedFields.php');
163  foreach(ilUserDefinedFields::_getInstance()->getExportableFields($a_obj_id) as $field)
164  {
165  $tpl->setCurrentBlock('field_item');
166  $tpl->setVariable('FIELD_NAME',$field['field_name']);
167  $tpl->parseCurrentBlock();
168  }
169 
170  $fields->setHtml($tpl->get());
171  $form->addItem($fields);
172 
173  return $form;
174  }
setHtml($a_html)
Set Html.
static _getInstance()
Get instance.
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 460 of file class.ilMemberAgreementGUI.php.

References $_POST, and $ilUser.

Referenced by save().

461  {
462  global $ilUser;
463 
464  if($_POST['agreement'])
465  {
466  return true;
467  }
468  if($this->privacy->confirmationRequired($this->type))
469  {
470  return false;
471  }
472  return true;
473  }
$_POST['username']
Definition: cron.php:12
global $ilUser
Definition: imgupload.php:15
+ 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 483 of file class.ilMemberAgreementGUI.php.

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

Referenced by __construct().

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

◆ initFormAgreement()

ilMemberAgreementGUI::initFormAgreement ( )
protected

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

References $GLOBALS, and getPrivacy().

Referenced by save(), and showAgreement().

117  {
118  include_once './Services/Form/classes/class.ilPropertyFormGUI.php';
119  $form = new ilPropertyFormGUI();
120  $form->setTitle($this->lng->txt($this->type.'_agreement_header'));
121  $form->setFormAction($GLOBALS['ilCtrl']->getFormAction($this));
122  $form->addCommandButton('save', $this->lng->txt('save'));
123 
124  $form = self::addExportFieldInfo($form, $this->obj_id, $this->type);
125  $form = self::addCustomFields($form, $this->obj_id, $this->type);
126 
127  if($this->getPrivacy()->confirmationRequired($this->type))
128  {
129  $form = self::addAgreement($form, $this->obj_id, $this->type);
130  }
131 
132  return $form;
133  }
This class represents a property form user interface.
getPrivacy()
Get privycy settings.
$GLOBALS['PHPCAS_CLIENT']
This global variable is used by the interface class phpCAS.
Definition: CAS.php:276
+ 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 316 of file class.ilMemberAgreementGUI.php.

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

317  {
318  global $ilUser;
319 
320  $form = $this->initFormAgreement();
321 
322  // #14715 - checkInput() does not work for checkboxes
323  if($this->checkAgreement() &&
324  $form->checkInput())
325  {
326  self::saveCourseDefinedFields($form, $this->obj_id);
327 
328  $this->getAgreement()->setAccepted(true);
329  $this->getAgreement()->setAcceptanceTime(time());
330  $this->getAgreement()->save();
331 
332  include_once './Services/Membership/classes/class.ilObjectCustomUserFieldHistory.php';
333  $history = new ilObjectCustomUserFieldHistory($this->obj_id,$ilUser->getId());
334  $history->setUpdateUser($ilUser->getId());
335  $history->setEditingTime(new ilDateTime(time(),IL_CAL_UNIX));
336  $history->save();
337 
338  $this->ctrl->returnToParent($this);
339  }
340  elseif(!$this->checkAgreement())
341  {
342  ilUtil::sendFailure($this->lng->txt($this->type.'_agreement_required'));
343  $form->setValuesByPost();
344  $this->showAgreement($form);
345  return false;
346  }
347  else
348  {
349  ilUtil::sendFailure($this->lng->txt('fill_out_all_required_fields'));
350  $form->setValuesByPost();
351  $this->showAgreement($form);
352  return false;
353  }
354  }
Editing history for object custom user fields.
const IL_CAL_UNIX
Date and time handling
showAgreement(ilPropertyFormGUI $form=null)
Show agreement form.
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
global $ilUser
Definition: imgupload.php:15
+ 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 414 of file class.ilMemberAgreementGUI.php.

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

Referenced by ilObjectCustomUserFieldsGUI\saveMember().

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

References ilUtil\sendFailure().

497  {
498  $message = '';
499  if($this->agreement_required)
500  {
501  $message = $this->lng->txt($this->type.'_ps_agreement_req_info');
502  }
503  if(!$this->required_fullfilled)
504  {
505  if(strlen($message))
506  {
507  $message .= '<br />';
508  }
509  $message .= $this->lng->txt($this->type.'_ps_required_info');
510  }
511 
512  if(strlen($message))
513  {
514  ilUtil::sendFailure($message);
515  }
516  }
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 356 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().

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