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 @global 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$

@ilCtrl_Calls ilMemberAgreementGUI:

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

Constructor & Destructor Documentation

◆ __construct()

ilMemberAgreementGUI::__construct (   $a_ref_id)

Constructor.

@access public

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

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 }
static _lookupType($a_id, $a_reference=false)
lookup object type
static _getInstance()
Get instance of ilPrivacySettings.
global $ilCtrl
Definition: ilias.php:18
global $ilDB
$ilUser
Definition: imgupload.php:18

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

+ 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.

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

References $a_type, $agreement, and $lng.

Referenced by ilRegistrationGUI\fillAgreement(), and initFormAgreement().

+ 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.

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 {
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 }
static _getFields($a_container_id, $a_sort=IL_CDF_SORT_NAME)
Get all fields of a container.
This class represents a non editable value in a property form.
This class represents a property in a property form.
This class represents an option in a radio group.
This class represents a selection list property in a property form.
This class represents a text property in a property form.
$text

References $a_type, $lng, $text, ilCourseDefinedFieldDefinition\_getFields(), IL_CDF_TYPE_SELECT, and IL_CDF_TYPE_TEXT.

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

+ 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 @global type $lng.

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

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

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 }
This class represents a custom property in a property form.
static _getInstanceByType($a_type)
Get Singleton Instance.
special template class to simplify handling of ITX/PEAR
static _getInstance()
Get instance.

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

Referenced by ilRegistrationGUI\fillAgreement(), and initFormAgreement().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ checkAgreement()

ilMemberAgreementGUI::checkAgreement ( )
private

Check Agreement.

@access private

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

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 }
$_POST["username"]

References $_POST, and $ilUser.

Referenced by save().

+ Here is the caller graph for this function:

◆ executeCommand()

ilMemberAgreementGUI::executeCommand ( )

Execute Command.

@access public

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

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

References $cmd.

◆ getAgreement()

ilMemberAgreementGUI::getAgreement ( )
Returns
ilMemberAgreement

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

94 {
95 return $this->agreement;
96 }

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.

@access private

Returns
void

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

486 {
487 global $ilUser;
488
489 $this->required_fullfilled = ilCourseUserData::_checkRequired($ilUser->getId(),$this->obj_id);
490 $this->agreement_required = $this->getAgreement()->agreementRequired();
491 }
static _checkRequired($a_usr_id, $a_obj_id)
Check required fields.

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

Referenced by __construct().

+ 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.

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 }
static addExportFieldInfo($form, $a_obj_id, $a_type)
Add export field info to form @global type $lng.
static addCustomFields($form, $a_obj_id, $a_type, $a_mode='user')
Add custom course fields.
static addAgreement($form, $a_obj_id, $a_type)
Add agreement to form.
getPrivacy()
Get privycy settings.
This class represents a property form user interface.
$GLOBALS['loaded']
Global hash that tracks already loaded includes.

References $GLOBALS, addAgreement(), addCustomFields(), addExportFieldInfo(), and getPrivacy().

Referenced by save(), and showAgreement().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ save()

ilMemberAgreementGUI::save ( )
private

Save.

@access private

Parameters

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

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 }
const IL_CAL_UNIX
@classDescription Date and time handling
showAgreement(ilPropertyFormGUI $form=null)
Show agreement form.
static saveCourseDefinedFields(ilPropertyFormGUI $form, $a_obj_id, $a_usr_id=0)
Save course defined fields.
Editing history for object custom user fields.
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.

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

+ 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.

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 {
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 }
getInput($a_post_var, $ensureValidation=true)
Returns the value of a HTTP-POST variable, identified by the passed id.

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

Referenced by save(), and ilObjectCustomUserFieldsGUI\saveMember().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ sendInfoMessage()

ilMemberAgreementGUI::sendInfoMessage ( )
private

Send info message.

@access private

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

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 }

References ilUtil\sendFailure().

+ 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.

359 {
360 global $ilUser;
361
362 if(!$a_usr_id)
363 {
364 $a_usr_id = $ilUser->getId();
365 }
366
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 {
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 }
static _getValuesByObjId($a_obj_id)
Get values by obj_id (for all users)
getItemByPostVar($a_post_var)
Get Item by POST variable.

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

Referenced by ilObjectCustomUserFieldsGUI\editMember(), and showAgreement().

+ 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.

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 }
static setCourseDefinedFieldValues(ilPropertyFormGUI $form, $a_obj_id, $a_usr_id=0)

References $ilUser, initFormAgreement(), and setCourseDefinedFieldValues().

Referenced by save().

+ 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.

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