ILIAS  release_5-2 Revision v5.2.25-18-g3f80b828510
ilCourseRegistrationGUI Class Reference

GUI class for course registrations. More...

+ Inheritance diagram for ilCourseRegistrationGUI:
+ Collaboration diagram for ilCourseRegistrationGUI:

Public Member Functions

 __construct ($a_container, $a_parent_gui)
 Constructor. More...
 
 executeCommand ()
 Execute command. More...
 
- Public Member Functions inherited from ilRegistrationGUI
 __construct ($a_container)
 Constructor. More...
 
 getContainer ()
 Parent object. More...
 
 getRefId ()
 Get ref. More...
 
 cancel ()
 cancel subscription More...
 
 show (ilPropertyFormGUI $form=null)
 show registration form More...
 
 join ()
 join More...
 

Protected Member Functions

 getFormTitle ()
 get form title More...
 
 fillInformations ()
 fill informations More...
 
 fillRegistrationPeriod ()
 show informations about the registration period More...
 
 fillMaxMembers ()
 fill max members More...
 
 fillRegistrationType ()
 fill registration type More...
 
 addCommandButtons ()
 Add group specific command buttons. More...
 
 validate ()
 Validate subscription request. More...
 
 add ()
 add user More...
 
 initParticipants ()
 Init course participants. More...
 
 initWaitingList ()
 
 isWaitingListActive ()
 
- Protected Member Functions inherited from ilRegistrationGUI
 isRegistrationPossible ()
 check if registration is possible More...
 
 enableRegistration ($a_status)
 set registration disabled More...
 
 initParticipants ()
 Init participants object (course or group participants) More...
 
 initWaitingList ()
 Init waiting list (course or group waiting list) More...
 
 isWaitingListActive ()
 Check if the waiting list is active Maximum of members exceeded or any user on the waiting list. More...
 
 getWaitingList ()
 Get waiting list object. More...
 
 leaveWaitingList ()
 
 getFormTitle ()
 Get title for property form. More...
 
 fillInformations ()
 fill informations More...
 
 fillRegistrationPeriod ()
 show informations about the registration period More...
 
 fillMaxMembers ()
 show informations about the maximum number of user. More...
 
 fillRegistrationType ()
 show informations about registration procedure More...
 
 fillMembershipLimitation ()
 Show membership limitations. More...
 
 fillAgreement ()
 Show user agreement. More...
 
 showCustomFields ()
 Show course defined fields. More...
 
 validateAgreement ()
 Check Agreement. More...
 
 validateCustomFields ()
 Check required course fields. More...
 
 setAccepted ($a_status)
 Set Agreement accepted. More...
 
 validate ()
 validate join request More...
 
 initForm ()
 init registration form More...
 
 addCommandButtons ()
 Add command buttons. More...
 
 updateSubscriptionRequest ()
 Update subscription message. More...
 
 cancelSubscriptionRequest ()
 

Private Attributes

 $parent_gui = null
 

Additional Inherited Members

- Protected Attributes inherited from ilRegistrationGUI
 $privacy = null
 
 $container = null
 
 $ref_id
 
 $obj_id
 
 $participants
 
 $waiting_list = null
 
 $form
 
 $registration_possible = true
 
 $join_error = ''
 
 $tpl
 
 $lng
 
 $ctrl
 

Detailed Description

GUI class for course registrations.

Author
Stefan Meyer smeye.nosp@m.r.il.nosp@m.ias@g.nosp@m.mx.d.nosp@m.e
Version
$Id$

ilCourseRegistrationGUI:

Definition at line 16 of file class.ilCourseRegistrationGUI.php.

Constructor & Destructor Documentation

◆ __construct()

ilCourseRegistrationGUI::__construct (   $a_container,
  $a_parent_gui 
)

Constructor.

public

Parameters
objectcourse object

Definition at line 26 of file class.ilCourseRegistrationGUI.php.

27  {
28  parent::__construct($a_container);
29 
30  $this->parent_gui = $a_parent_gui;
31  }

Member Function Documentation

◆ add()

ilCourseRegistrationGUI::add ( )
protected

add user

protected

Parameters

Definition at line 480 of file class.ilCourseRegistrationGUI.php.

References $_POST, $_SESSION, $GLOBALS, $ilCtrl, $ilUser, $info, $success, ilRegistrationGUI\$waiting_list, ilCourseWaitingList\addToList(), array, ilForumNotification\checkForumsExistsInsert(), ilParticipants\getDefaultMemberRole(), IL_CRS_MEMBER, IL_CRS_SUBSCRIPTION_CONFIRMATION, ilUtil\redirect(), ilUtil\sendFailure(), ilUtil\sendSuccess(), ilRegistrationGUI\setAccepted(), ilRegistrationGUI\show(), ilUtil\stripSlashes(), and time.

481  {
482  global $ilUser,$tree, $ilCtrl;
483 
484  // TODO: language vars
485 
486  // set aggreement accepted
487  $this->setAccepted(true);
488 
489  include_once('./Modules/Course/classes/class.ilCourseWaitingList.php');
490  $free = max(0,$this->container->getSubscriptionMaxMembers() - $this->participants->getCountMembers());
491  $waiting_list = new ilCourseWaitingList($this->container->getId());
492  if($this->container->isSubscriptionMembershipLimited() and $this->container->enabledWaitingList() and (!$free or $waiting_list->getCountUsers()))
493  {
494  $waiting_list->addToList($ilUser->getId());
495  $info = sprintf($this->lng->txt('crs_added_to_list'),
496  $waiting_list->getPosition($ilUser->getId()));
498 
499  $this->participants->sendNotification($this->participants->NOTIFY_SUBSCRIPTION_REQUEST,$ilUser->getId());
500  $this->participants->sendNotification($this->participants->NOTIFY_WAITING_LIST,$ilUser->getId());
501  $ilCtrl->setParameterByClass("ilrepositorygui", "ref_id",
502  $tree->getParentId($this->container->getRefId()));
503  $ilCtrl->redirectByClass("ilrepositorygui", "");
504  }
505 
506  switch($this->container->getSubscriptionType())
507  {
509  $this->participants->addSubscriber($ilUser->getId());
510  $this->participants->updateSubscriptionTime($ilUser->getId(),time());
511  $this->participants->updateSubject($ilUser->getId(),ilUtil::stripSlashes($_POST['subject']));
512  $this->participants->sendNotification($this->participants->NOTIFY_SUBSCRIPTION_REQUEST,$ilUser->getId());
513 
514  ilUtil::sendSuccess($this->lng->txt("application_completed"),true);
515  $ilCtrl->setParameterByClass("ilrepositorygui", "ref_id",
516  $tree->getParentId($this->container->getRefId()));
517  $ilCtrl->redirectByClass("ilrepositorygui", "");
518  break;
519 
520  default:
521 
522  if($this->container->isSubscriptionMembershipLimited() && $this->container->getSubscriptionMaxMembers())
523  {
524  $success = $GLOBALS['rbacadmin']->assignUserLimited(
525  ilParticipants::getDefaultMemberRole($this->container->getRefId()),
526  $ilUser->getId(),
527  $this->container->getSubscriptionMaxMembers(),
528  array(ilParticipants::getDefaultMemberRole($this->container->getRefId()))
529  );
530  if(!$success)
531  {
532  ilUtil::sendFailure($this->lng->txt('crs_subscription_failed_limit'));
533  $this->show();
534  return FALSE;
535  }
536  }
537 
538  $this->participants->add($ilUser->getId(),IL_CRS_MEMBER);
539  $this->participants->sendNotification($this->participants->NOTIFY_ADMINS,$ilUser->getId());
540  $this->participants->sendNotification($this->participants->NOTIFY_REGISTERED,$ilUser->getId());
541 
542  include_once './Modules/Forum/classes/class.ilForumNotification.php';
543  ilForumNotification::checkForumsExistsInsert($this->container->getRefId(), $ilUser->getId());
544 
545  if($this->container->getType() == "crs")
546  {
547  $this->container->checkLPStatusSync($ilUser->getId());
548  }
549 
550  if(!$_SESSION["pending_goto"])
551  {
552  ilUtil::sendSuccess($this->lng->txt("crs_subscription_successful"),true);
553  $this->ctrl->returnToParent($this);
554  }
555  else
556  {
557  $tgt = $_SESSION["pending_goto"];
558  unset($_SESSION["pending_goto"]);
559  ilUtil::redirect($tgt);
560  }
561  break;
562  }
563  }
show(ilPropertyFormGUI $form=null)
show registration form
static sendSuccess($a_info="", $a_keep=false)
Send Success Message to Screen.
$_SESSION["AccountId"]
$GLOBALS['loaded']
Global hash that tracks already loaded includes.
static getDefaultMemberRole($a_ref_id)
const IL_CRS_SUBSCRIPTION_CONFIRMATION
addToList($a_usr_id)
Add to waiting list and raise event.
global $ilCtrl
Definition: ilias.php:18
const IL_CRS_MEMBER
setAccepted($a_status)
Set Agreement accepted.
$info
Definition: example_052.php:80
$success
Definition: Utf8Test.php:86
$ilUser
Definition: imgupload.php:18
static stripSlashes($a_str, $a_strip_html=true, $a_allow="")
strip slashes if magic qoutes is enabled
Create styles array
The data for the language used.
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.
static checkForumsExistsInsert($ref_id, $user_id=0)
static redirect($a_script)
http redirect to other script
$_POST["username"]
+ Here is the call graph for this function:

◆ addCommandButtons()

ilCourseRegistrationGUI::addCommandButtons ( )
protected

Add group specific command buttons.

Returns

Definition at line 389 of file class.ilCourseRegistrationGUI.php.

References $ilUser, IL_CRS_SUBSCRIPTION_CONFIRMATION, and ilRegistrationGUI\isRegistrationPossible().

390  {
391  global $ilUser;
392 
393  parent::addCommandButtons();
394 
395 
396  switch($this->container->getSubscriptionType())
397  {
399  if($this->participants->isSubscriber($ilUser->getId()))
400  {
401  $this->form->clearCommandButtons();
402  $this->form->addCommandButton('updateSubscriptionRequest', $this->lng->txt('crs_update_subscr_request'));
403  $this->form->addCommandButton('cancelSubscriptionRequest', $this->lng->txt('crs_cancel_subscr_request'));
404  }
405  elseif($this->isRegistrationPossible())
406  {
407  $this->form->clearCommandButtons();
408  $this->form->addCommandButton('join', $this->lng->txt('crs_join_request'));
409  $this->form->addCommandButton('cancel',$this->lng->txt('cancel'));
410  }
411  break;
412  }
413  if(!$this->isRegistrationPossible())
414  {
415  return false;
416  }
417 
418  return true;
419  }
const IL_CRS_SUBSCRIPTION_CONFIRMATION
isRegistrationPossible()
check if registration is possible
$ilUser
Definition: imgupload.php:18
+ Here is the call graph for this function:

◆ executeCommand()

ilCourseRegistrationGUI::executeCommand ( )

Execute command.

public

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

References $cmd, $GLOBALS, $ilUser, ilRegistrationGUI\getRefId(), and ilRegistrationGUI\getWaitingList().

39  {
40  global $ilTabs,$ilUser;
41 
42  if($this->getWaitingList()->isOnList($ilUser->getId()))
43  {
44  $ilTabs->activateTab('leave');
45  }
46 
47  if(!$GLOBALS['ilAccess']->checkAccess('join','',$this->getRefId()))
48  {
49  $this->ctrl->setReturn($this->parent_gui,'infoScreen');
50  $this->ctrl->returnToParent($this);
51  return FALSE;
52  }
53 
54  $next_class = $this->ctrl->getNextClass($this);
55  switch($next_class)
56  {
57  default:
58  $cmd = $this->ctrl->getCmd("show");
59  $this->$cmd();
60  break;
61  }
62  return true;
63  }
getWaitingList()
Get waiting list object.
$GLOBALS['loaded']
Global hash that tracks already loaded includes.
$cmd
Definition: sahs_server.php:35
$ilUser
Definition: imgupload.php:18
+ Here is the call graph for this function:

◆ fillInformations()

ilCourseRegistrationGUI::fillInformations ( )
protected

fill informations

protected

Parameters

Definition at line 89 of file class.ilCourseRegistrationGUI.php.

References ilUtil\makeClickable().

90  {
91  if($this->container->getImportantInformation())
92  {
93  $imp = new ilNonEditableValueGUI($this->lng->txt('crs_important_info'), "", true);
94  $value = nl2br(ilUtil::makeClickable($this->container->getImportantInformation(), true));
95  $imp->setValue($value);
96  $this->form->addItem($imp);
97  }
98 
99  if($this->container->getSyllabus())
100  {
101  $syl = new ilNonEditableValueGUI($this->lng->txt('crs_syllabus'), "", true);
102  $value = nl2br(ilUtil::makeClickable ($this->container->getSyllabus(), true));
103  $syl->setValue($value);
104  $this->form->addItem($syl);
105  }
106  }
static makeClickable($a_text, $detectGotoLinks=false)
makeClickable In Texten enthaltene URLs und Mail-Adressen klickbar machen
This class represents a non editable value in a property form.
+ Here is the call graph for this function:

◆ fillMaxMembers()

ilCourseRegistrationGUI::fillMaxMembers ( )
protected

fill max members

protected

Parameters

Definition at line 184 of file class.ilCourseRegistrationGUI.php.

References $ilUser, ilRegistrationGUI\$tpl, ilRegistrationGUI\$waiting_list, ilRegistrationGUI\enableRegistration(), ilRegistrationGUI\getContainer(), ilRegistrationGUI\getWaitingList(), ilObjCourseAccess\lookupRegistrationInfo(), ilUtil\sendFailure(), and ilCustomInputGUI\setHtml().

185  {
186  global $ilUser;
187 
188  if(!$this->container->isSubscriptionMembershipLimited())
189  {
190  return true;
191  }
192  $tpl = new ilTemplate('tpl.max_members_form.html',true,true,'Services/Membership');
193 
194  if($this->container->getSubscriptionMinMembers())
195  {
196  $tpl->setVariable('TXT_MIN',$this->lng->txt('mem_min_users').':');
197  $tpl->setVariable('NUM_MIN',$this->container->getSubscriptionMinMembers());
198  }
199 
200  if($this->container->getSubscriptionMaxMembers())
201  {
202  $tpl->setVariable('TXT_MAX',$this->lng->txt('mem_max_users'));
203  $tpl->setVariable('NUM_MAX',$this->container->getSubscriptionMaxMembers());
204 
205  $tpl->setVariable('TXT_FREE',$this->lng->txt('mem_free_places').":");
206  include_once './Modules/Course/classes/class.ilObjCourseAccess.php';
207  $reg_info = ilObjCourseAccess::lookupRegistrationInfo($this->getContainer()->getId());
208  $free = $reg_info['reg_info_free_places'];
209 
210  if($free)
211  {
212  $tpl->setVariable('NUM_FREE',$free);
213  }
214  else
215  {
216  $tpl->setVariable('WARN_FREE',$free);
217  }
218 
219  include_once('./Modules/Course/classes/class.ilCourseWaitingList.php');
220  $waiting_list = new ilCourseWaitingList($this->container->getId());
221  if(
222  $this->container->isSubscriptionMembershipLimited() and
223  $this->container->enabledWaitingList() and
224  (!$free or $waiting_list->getCountUsers()))
225  {
226  if($waiting_list->isOnList($ilUser->getId()))
227  {
228  $tpl->setVariable('TXT_WAIT',$this->lng->txt('mem_waiting_list_position'));
229  $tpl->setVariable('NUM_WAIT',$waiting_list->getPosition($ilUser->getId()));
230 
231  }
232  else
233  {
234  $tpl->setVariable('TXT_WAIT',$this->lng->txt('mem_waiting_list'));
235  if($free and $waiting_list->getCountUsers())
236  $tpl->setVariable('WARN_WAIT',$waiting_list->getCountUsers());
237  else
238  $tpl->setVariable('NUM_WAIT',$waiting_list->getCountUsers());
239  }
240  }
241 
242  $alert = '';
243  if(
244  !$free and
245  !$this->container->enabledWaitingList())
246  {
247  // Disable registration
248  $this->enableRegistration(false);
249  ilUtil::sendFailure($this->lng->txt('mem_alert_no_places'));
250  #$alert = $this->lng->txt('mem_alert_no_places');
251  }
252  elseif(
253  $this->container->enabledWaitingList() and
254  $this->container->isSubscriptionMembershipLimited() and
255  $waiting_list->isOnList($ilUser->getId())
256  )
257  {
258  // Disable registration
259  $this->enableRegistration(false);
260  }
261  elseif(
262  !$free and
263  $this->container->enabledWaitingList() and
264  $this->container->isSubscriptionMembershipLimited())
265 
266  {
267  ilUtil::sendFailure($this->lng->txt('crs_warn_no_max_set_on_waiting_list'));
268  #$alert = $this->lng->txt('crs_warn_no_max_set_on_waiting_list');
269  }
270  elseif(
271  $free and
272  $this->container->enabledWaitingList() and
273  $this->container->isSubscriptionMembershipLimited() and
274  $this->getWaitingList()->getCountUsers())
275  {
276  ilUtil::sendFailure($this->lng->txt('crs_warn_wl_set_on_waiting_list'));
277  #$alert = $this->lng->txt('crs_warn_wl_set_on_waiting_list');
278  }
279  }
280 
281  $max = new ilCustomInputGUI($this->lng->txt('mem_participants'));
282  $max->setHtml($tpl->get());
283  if(strlen($alert))
284  {
285  $max->setAlert($alert);
286  }
287  $this->form->addItem($max);
288  return true;
289  }
setHtml($a_html)
Set Html.
getWaitingList()
Get waiting list object.
enableRegistration($a_status)
set registration disabled
special template class to simplify handling of ITX/PEAR
static lookupRegistrationInfo($a_obj_id)
Lookup registration info ilDB $ilDB ilObjUser $ilUser ilLanguage $lng.
$ilUser
Definition: imgupload.php:18
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
This class represents a custom property in a property form.
getContainer()
Parent object.
+ Here is the call graph for this function:

◆ fillRegistrationPeriod()

ilCourseRegistrationGUI::fillRegistrationPeriod ( )
protected

show informations about the registration period

protected

Definition at line 113 of file class.ilCourseRegistrationGUI.php.

References $start, ilRegistrationGUI\$tpl, ilDateTime\_after(), ilDateTime\_before(), ilRegistrationGUI\enableRegistration(), ilDatePresentation\formatDate(), IL_CAL_UNIX, IL_CRS_SUBSCRIPTION_DEACTIVATED, ilUtil\sendFailure(), ilCustomInputGUI\setHtml(), ilNonEditableValueGUI\setValue(), and time.

114  {
115  include_once('./Services/Calendar/classes/class.ilDateTime.php');
116  $now = new ilDateTime(time(),IL_CAL_UNIX,'UTC');
117 
118  if($this->container->getSubscriptionUnlimitedStatus())
119  {
120  $reg = new ilNonEditableValueGUI($this->lng->txt('mem_reg_period'));
121  $reg->setValue($this->lng->txt('mem_unlimited'));
122  $this->form->addItem($reg);
123  return true;
124  }
125  elseif($this->container->getSubscriptionLimitationType() == IL_CRS_SUBSCRIPTION_DEACTIVATED)
126  {
127  return true;
128  }
129 
130  $start = new ilDateTime($this->container->getSubscriptionStart(),IL_CAL_UNIX,'UTC');
131  $end = new ilDateTime($this->container->getSubscriptionEnd(),IL_CAL_UNIX,'UTC');
132 
133  if(ilDateTime::_before($now,$start))
134  {
135  $tpl = new ilTemplate('tpl.registration_period_form.html',true,true,'Services/Membership');
136  $tpl->setVariable('TXT_FIRST',$this->lng->txt('mem_start'));
137  $tpl->setVariable('FIRST',ilDatePresentation::formatDate($start));
138 
139  $tpl->setVariable('TXT_END',$this->lng->txt('mem_end'));
140  $tpl->setVariable('END',ilDatePresentation::formatDate($end));
141 
142  $warning = $this->lng->txt('mem_reg_not_started');
143  }
144  elseif(ilDateTime::_after($now,$end))
145  {
146  $tpl = new ilTemplate('tpl.registration_period_form.html',true,true,'Services/Membership');
147  $tpl->setVariable('TXT_FIRST',$this->lng->txt('mem_start'));
148  $tpl->setVariable('FIRST',ilDatePresentation::formatDate($start));
149 
150  $tpl->setVariable('TXT_END',$this->lng->txt('mem_end'));
151  $tpl->setVariable('END',ilDatePresentation::formatDate($end));
152 
153 
154  $warning = $this->lng->txt('mem_reg_expired');
155  }
156  else
157  {
158  $tpl = new ilTemplate('tpl.registration_period_form.html',true,true,'Services/Membership');
159  $tpl->setVariable('TXT_FIRST',$this->lng->txt('mem_end'));
160  $tpl->setVariable('FIRST',ilDatePresentation::formatDate($end));
161  }
162 
163  $reg = new ilCustomInputGUI($this->lng->txt('mem_reg_period'));
164  $reg->setHtml($tpl->get());
165  if(strlen($warning))
166  {
167  // Disable registration
168  $this->enableRegistration(false);
169  ilUtil::sendFailure($warning);
170  #$reg->setAlert($warning);
171  }
172  $this->form->addItem($reg);
173  return true;
174  }
setHtml($a_html)
Set Html.
static _after(ilDateTime $start, ilDateTime $end, $a_compare_field='', $a_tz='')
compare two dates and check start is after end This method does not consider tz offsets.
static _before(ilDateTime $start, ilDateTime $end, $a_compare_field='', $a_tz='')
compare two dates and check start is before end This method does not consider tz offsets.
const IL_CAL_UNIX
enableRegistration($a_status)
set registration disabled
special template class to simplify handling of ITX/PEAR
static formatDate(ilDateTime $date)
Format a date public.
Date and time handling
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
This class represents a custom property in a property form.
This class represents a non editable value in a property form.
Add data(end) time
Method that wraps PHPs time in order to allow simulations with the workflow.
const IL_CRS_SUBSCRIPTION_DEACTIVATED
+ Here is the call graph for this function:

◆ fillRegistrationType()

ilCourseRegistrationGUI::fillRegistrationType ( )
protected

fill registration type

protected

Returns

Definition at line 297 of file class.ilCourseRegistrationGUI.php.

References $_POST, $ilUser, $pass, $txt, ilRegistrationGUI\enableRegistration(), IL_CRS_SUBSCRIPTION_CONFIRMATION, IL_CRS_SUBSCRIPTION_DEACTIVATED, IL_CRS_SUBSCRIPTION_DIRECT, IL_CRS_SUBSCRIPTION_PASSWORD, isWaitingListActive(), ilUtil\sendFailure(), ilFormPropertyGUI\setAlert(), and ilTextAreaInputGUI\setValue().

298  {
299  global $ilUser;
300 
301  if($this->container->getSubscriptionLimitationType() == IL_CRS_SUBSCRIPTION_DEACTIVATED)
302  {
303  $reg = new ilCustomInputGUI($this->lng->txt('mem_reg_type'));
304  #$reg->setHtml($this->lng->txt('crs_info_reg_deactivated'));
305  $reg->setAlert($this->lng->txt('crs_info_reg_deactivated'));
306  #ilUtil::sendFailure($this->lng->txt('crs_info_reg_deactivated'));
307  #$reg = new ilNonEditableValueGUI($this->lng->txt('mem_reg_type'));
308  #$reg->setValue($this->lng->txt('crs_info_reg_deactivated'));
309  #$reg->setAlert($this->lng->txt('grp_reg_deactivated_alert'));
310  $this->form->addItem($reg);
311 
312  // Disable registration
313  $this->enableRegistration(false);
314  return true;
315  }
316 
317  switch($this->container->getSubscriptionType())
318  {
320 
321  // no "request" info if waiting list is active
322  if($this->isWaitingListActive())
323  {
324  return true;
325  }
326 
327  $txt = new ilNonEditableValueGUI($this->lng->txt('mem_reg_type'));
328  $txt->setValue($this->lng->txt('crs_info_reg_direct'));
329 
330  $this->form->addItem($txt);
331  break;
332 
334  $txt = new ilNonEditableValueGUI($this->lng->txt('mem_reg_type'));
335  $txt->setValue($this->lng->txt('crs_subscription_options_password'));
336 
337 
338  $pass = new ilTextInputGUI($this->lng->txt('passwd'),'grp_passw');
339  $pass->setInputType('password');
340  $pass->setSize(12);
341  $pass->setMaxLength(32);
342  #$pass->setRequired(true);
343  $pass->setInfo($this->lng->txt('crs_info_reg_password'));
344 
345  $txt->addSubItem($pass);
346  $this->form->addItem($txt);
347  break;
348 
350 
351  // no "request" info if waiting list is active
352  if($this->isWaitingListActive())
353  {
354  return true;
355  }
356 
357  $txt = new ilNonEditableValueGUI($this->lng->txt('mem_reg_type'));
358  $txt->setValue($this->lng->txt('crs_subscription_options_confirmation'));
359 
360  $sub = new ilTextAreaInputGUI($this->lng->txt('crs_reg_subject'),'subject');
361  $sub->setValue($_POST['subject']);
362  $sub->setInfo($this->lng->txt('crs_info_reg_confirmation'));
363  $sub->setCols(40);
364  $sub->setRows(5);
365  if($this->participants->isSubscriber($ilUser->getId()))
366  {
367  $sub_data = $this->participants->getSubscriberData($ilUser->getId());
368  $sub->setValue($sub_data['subject']);
369  $sub->setInfo('');
370  ilUtil::sendFailure($this->lng->txt('crs_reg_user_already_subscribed'));
371  $this->enableRegistration(false);
372  }
373  $txt->addSubItem($sub);
374  $this->form->addItem($txt);
375  break;
376 
377 
378  default:
379  return true;
380  }
381 
382  return true;
383  }
setValue($a_value)
Set Value.
const IL_CRS_SUBSCRIPTION_CONFIRMATION
setAlert($a_alert)
Set Alert Text.
const IL_CRS_SUBSCRIPTION_PASSWORD
enableRegistration($a_status)
set registration disabled
This class represents a text property in a property form.
$ilUser
Definition: imgupload.php:18
$txt
Definition: error.php:12
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
This class represents a custom property in a property form.
This class represents a non editable value in a property form.
This class represents a text area property in a property form.
const IL_CRS_SUBSCRIPTION_DIRECT
$_POST["username"]
const IL_CRS_SUBSCRIPTION_DEACTIVATED
+ Here is the call graph for this function:

◆ getFormTitle()

ilCourseRegistrationGUI::getFormTitle ( )
protected

get form title

protected

Returns
string title

Definition at line 71 of file class.ilCourseRegistrationGUI.php.

References $ilUser, and ilRegistrationGUI\getWaitingList().

72  {
73  global $ilUser;
74 
75  if($this->getWaitingList()->isOnList($ilUser->getId()))
76  {
77  return $this->lng->txt('member_status');
78  }
79  return $this->lng->txt('crs_registration');
80  }
getWaitingList()
Get waiting list object.
$ilUser
Definition: imgupload.php:18
+ Here is the call graph for this function:

◆ initParticipants()

ilCourseRegistrationGUI::initParticipants ( )
protected

Init course participants.

protected

Definition at line 573 of file class.ilCourseRegistrationGUI.php.

References ilCourseParticipants\_getInstanceByObjId().

574  {
575  include_once('./Modules/Course/classes/class.ilCourseParticipants.php');
576  $this->participants = ilCourseParticipants::_getInstanceByObjId($this->obj_id);
577  }
static _getInstanceByObjId($a_obj_id)
Get singleton instance.
+ Here is the call graph for this function:

◆ initWaitingList()

ilCourseRegistrationGUI::initWaitingList ( )
protected
See also
ilRegistrationGUI::initWaitingList() protected

Definition at line 584 of file class.ilCourseRegistrationGUI.php.

585  {
586  include_once './Modules/Course/classes/class.ilCourseWaitingList.php';
587  $this->waiting_list = new ilCourseWaitingList($this->container->getId());
588  }

◆ isWaitingListActive()

ilCourseRegistrationGUI::isWaitingListActive ( )
protected
See also
ilRegistrationGUI::isWaitingListActive()

Definition at line 593 of file class.ilCourseRegistrationGUI.php.

References $ilUser, and ilRegistrationGUI\getWaitingList().

Referenced by fillRegistrationType().

594  {
595  global $ilUser;
596  static $active = null;
597 
598  if($active !== null)
599  {
600  return $active;
601  }
602  if(!$this->container->enabledWaitingList() or !$this->container->isSubscriptionMembershipLimited())
603  {
604  return $active = false;
605  }
606  if(!$this->container->getSubscriptionMaxMembers())
607  {
608  return $active = false;
609  }
610 
611  $free = max(0,$this->container->getSubscriptionMaxMembers() - $this->participants->getCountMembers());
612  return $active = (!$free or $this->getWaitingList()->getCountUsers());
613  }
getWaitingList()
Get waiting list object.
$ilUser
Definition: imgupload.php:18
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ validate()

ilCourseRegistrationGUI::validate ( )
protected

Validate subscription request.

protected

Parameters

Definition at line 428 of file class.ilCourseRegistrationGUI.php.

References $_POST, $ilUser, $pass, IL_CRS_SUBSCRIPTION_PASSWORD, ilRegistrationGUI\isRegistrationPossible(), ilRegistrationGUI\setAccepted(), ilUtil\stripSlashes(), ilRegistrationGUI\validateAgreement(), and ilRegistrationGUI\validateCustomFields().

429  {
430  global $ilUser;
431 
432  if($ilUser->getId() == ANONYMOUS_USER_ID)
433  {
434  $this->join_error = $this->lng->txt('permission_denied');
435  return false;
436  }
437 
438  // Set aggrement to not accepted
439  $this->setAccepted(false);
440 
441  if(!$this->isRegistrationPossible())
442  {
443  $this->join_error = $this->lng->txt('mem_error_preconditions');
444  return false;
445  }
446  if($this->container->getSubscriptionType() == IL_CRS_SUBSCRIPTION_PASSWORD)
447  {
448  if(!strlen($pass = ilUtil::stripSlashes($_POST['grp_passw'])))
449  {
450  $this->join_error = $this->lng->txt('crs_password_required');
451  return false;
452  }
453  if(strcmp($pass,$this->container->getSubscriptionPassword()) !== 0)
454  {
455  $this->join_error = $this->lng->txt('crs_password_not_valid');
456  return false;
457  }
458  }
459  if(!$this->validateCustomFields())
460  {
461  $this->join_error = $this->lng->txt('fill_out_all_required_fields');
462  return false;
463  }
464  if(!$this->validateAgreement())
465  {
466  $this->join_error = $this->lng->txt('crs_agreement_required');
467  return false;
468  }
469 
470  return true;
471  }
validateAgreement()
Check Agreement.
setAccepted($a_status)
Set Agreement accepted.
const IL_CRS_SUBSCRIPTION_PASSWORD
isRegistrationPossible()
check if registration is possible
$ilUser
Definition: imgupload.php:18
validateCustomFields()
Check required course fields.
static stripSlashes($a_str, $a_strip_html=true, $a_allow="")
strip slashes if magic qoutes is enabled
$_POST["username"]
+ Here is the call graph for this function:

Field Documentation

◆ $parent_gui

ilCourseRegistrationGUI::$parent_gui = null
private

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


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