4 include_once(
'./Services/Membership/classes/class.ilRegistrationGUI.php');
28 parent::__construct($a_container);
30 $this->parent_gui = $a_parent_gui;
44 $ilTabs->activateTab(
'leave');
49 $this->ctrl->setReturn($this->parent_gui,
'infoScreen');
50 $this->ctrl->returnToParent($this);
54 $next_class = $this->ctrl->getNextClass($this);
58 $cmd = $this->ctrl->getCmd(
"show");
77 return $this->lng->txt(
'member_status');
79 return $this->lng->txt(
'crs_registration');
91 if($this->container->getImportantInformation())
95 $imp->setValue($value);
96 $this->form->addItem($imp);
99 if($this->container->getSyllabus())
103 $syl->setValue($value);
104 $this->form->addItem($syl);
115 include_once(
'./Services/Calendar/classes/class.ilDateTime.php');
118 if($this->container->getSubscriptionUnlimitedStatus())
121 $reg->
setValue($this->lng->txt(
'mem_unlimited'));
122 $this->form->addItem($reg);
135 $tpl =
new ilTemplate(
'tpl.registration_period_form.html',
true,
true,
'Services/Membership');
136 $tpl->setVariable(
'TXT_FIRST',$this->lng->txt(
'mem_start'));
139 $tpl->setVariable(
'TXT_END',$this->lng->txt(
'mem_end'));
142 $warning = $this->lng->txt(
'mem_reg_not_started');
146 $tpl =
new ilTemplate(
'tpl.registration_period_form.html',
true,
true,
'Services/Membership');
147 $tpl->setVariable(
'TXT_FIRST',$this->lng->txt(
'mem_start'));
150 $tpl->setVariable(
'TXT_END',$this->lng->txt(
'mem_end'));
154 $warning = $this->lng->txt(
'mem_reg_expired');
158 $tpl =
new ilTemplate(
'tpl.registration_period_form.html',
true,
true,
'Services/Membership');
159 $tpl->setVariable(
'TXT_FIRST',$this->lng->txt(
'mem_end'));
170 #$reg->setAlert($warning); 172 $this->form->addItem($reg);
188 if(!$this->container->isSubscriptionMembershipLimited())
192 $tpl =
new ilTemplate(
'tpl.max_members_form.html',
true,
true,
'Services/Membership');
194 if($this->container->getSubscriptionMinMembers())
196 $tpl->setVariable(
'TXT_MIN',$this->lng->txt(
'mem_min_users').
':');
197 $tpl->setVariable(
'NUM_MIN',$this->container->getSubscriptionMinMembers());
200 if($this->container->getSubscriptionMaxMembers())
202 $tpl->setVariable(
'TXT_MAX',$this->lng->txt(
'mem_max_users'));
203 $tpl->setVariable(
'NUM_MAX',$this->container->getSubscriptionMaxMembers());
205 $tpl->setVariable(
'TXT_FREE',$this->lng->txt(
'mem_free_places').
":");
206 include_once
'./Modules/Course/classes/class.ilObjCourseAccess.php';
208 $free = $reg_info[
'reg_info_free_places'];
212 $tpl->setVariable(
'NUM_FREE',$free);
216 $tpl->setVariable(
'WARN_FREE',$free);
219 include_once(
'./Modules/Course/classes/class.ilCourseWaitingList.php');
222 $this->container->isSubscriptionMembershipLimited()
and 223 $this->container->enabledWaitingList()
and 228 $tpl->setVariable(
'TXT_WAIT',$this->lng->txt(
'mem_waiting_list_position'));
234 $tpl->setVariable(
'TXT_WAIT',$this->lng->txt(
'mem_waiting_list'));
245 !$this->container->enabledWaitingList())
250 #$alert = $this->lng->txt('mem_alert_no_places'); 253 $this->container->enabledWaitingList()
and 254 $this->container->isSubscriptionMembershipLimited()
and 263 $this->container->enabledWaitingList()
and 264 $this->container->isSubscriptionMembershipLimited())
268 #$alert = $this->lng->txt('crs_warn_no_max_set_on_waiting_list'); 272 $this->container->enabledWaitingList()
and 273 $this->container->isSubscriptionMembershipLimited()
and 277 #$alert = $this->lng->txt('crs_warn_wl_set_on_waiting_list'); 285 $max->setAlert($alert);
287 $this->form->addItem($max);
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);
317 switch($this->container->getSubscriptionType())
328 $txt->setValue($this->lng->txt(
'crs_info_reg_direct'));
330 $this->form->addItem(
$txt);
335 $txt->setValue($this->lng->txt(
'crs_subscription_options_password'));
339 $pass->setInputType(
'password');
341 $pass->setMaxLength(32);
342 #$pass->setRequired(true); 343 $pass->setInfo($this->lng->txt(
'crs_info_reg_password'));
346 $this->form->addItem(
$txt);
358 $txt->setValue($this->lng->txt(
'crs_subscription_options_confirmation'));
362 $sub->setInfo($this->lng->txt(
'crs_info_reg_confirmation'));
365 if($this->participants->isSubscriber($ilUser->getId()))
367 $sub_data = $this->participants->getSubscriberData($ilUser->getId());
368 $sub->setValue($sub_data[
'subject']);
373 $txt->addSubItem($sub);
374 $this->form->addItem(
$txt);
393 parent::addCommandButtons();
396 switch($this->container->getSubscriptionType())
399 if($this->participants->isSubscriber($ilUser->getId()))
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'));
407 $this->form->clearCommandButtons();
408 $this->form->addCommandButton(
'join', $this->lng->txt(
'crs_join_request'));
409 $this->form->addCommandButton(
'cancel',$this->lng->txt(
'cancel'));
432 if($ilUser->getId() == ANONYMOUS_USER_ID)
434 $this->join_error = $this->lng->txt(
'permission_denied');
443 $this->join_error = $this->lng->txt(
'mem_error_preconditions');
450 $this->join_error = $this->lng->txt(
'crs_password_required');
453 if(strcmp(
$pass,$this->container->getSubscriptionPassword()) !== 0)
455 $this->join_error = $this->lng->txt(
'crs_password_not_valid');
461 $this->join_error = $this->lng->txt(
'fill_out_all_required_fields');
466 $this->join_error = $this->lng->txt(
'crs_agreement_required');
489 include_once(
'./Modules/Course/classes/class.ilCourseWaitingList.php');
490 $free = max(0,$this->container->getSubscriptionMaxMembers() - $this->participants->getCountMembers());
492 if($this->container->isSubscriptionMembershipLimited()
and $this->container->enabledWaitingList()
and (!$free
or $waiting_list->getCountUsers()))
494 $waiting_list->
addToList($ilUser->getId());
495 $info = sprintf($this->lng->txt(
'crs_added_to_list'),
496 $waiting_list->getPosition($ilUser->getId()));
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",
"");
506 switch($this->container->getSubscriptionType())
509 $this->participants->addSubscriber($ilUser->getId());
510 $this->participants->updateSubscriptionTime($ilUser->getId(),
time());
512 $this->participants->sendNotification($this->participants->NOTIFY_SUBSCRIPTION_REQUEST,$ilUser->getId());
515 $ilCtrl->setParameterByClass(
"ilrepositorygui",
"ref_id",
516 $tree->getParentId($this->container->getRefId()));
517 $ilCtrl->redirectByClass(
"ilrepositorygui",
"");
522 if($this->container->isSubscriptionMembershipLimited() && $this->container->getSubscriptionMaxMembers())
527 $this->container->getSubscriptionMaxMembers(),
539 $this->participants->sendNotification($this->participants->NOTIFY_ADMINS,$ilUser->getId());
540 $this->participants->sendNotification($this->participants->NOTIFY_REGISTERED,$ilUser->getId());
542 include_once
'./Modules/Forum/classes/class.ilForumNotification.php';
545 if($this->container->getType() ==
"crs")
547 $this->container->checkLPStatusSync($ilUser->getId());
553 $this->ctrl->returnToParent($this);
575 include_once(
'./Modules/Course/classes/class.ilCourseParticipants.php');
586 include_once
'./Modules/Course/classes/class.ilCourseWaitingList.php';
596 static $active = null;
602 if(!$this->container->enabledWaitingList()
or !$this->container->isSubscriptionMembershipLimited())
604 return $active =
false;
606 if(!$this->container->getSubscriptionMaxMembers())
608 return $active =
false;
611 $free = max(0,$this->container->getSubscriptionMaxMembers() - $this->participants->getCountMembers());
show(ilPropertyFormGUI $form=null)
show registration form
static sendSuccess($a_info="", $a_keep=false)
Send Success Message to Screen.
setValue($a_value)
Set Value.
getFormTitle()
get form title
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.
getWaitingList()
Get waiting list object.
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.
$GLOBALS['loaded']
Global hash that tracks already loaded includes.
static _getInstanceByObjId($a_obj_id)
Get singleton instance.
setValue($a_value)
Set Value.
__construct($a_container, $a_parent_gui)
Constructor.
static getDefaultMemberRole($a_ref_id)
const IL_CRS_SUBSCRIPTION_CONFIRMATION
Base class for Course and Group registration.
fillRegistrationType()
fill registration type
addToList($a_usr_id)
Add to waiting list and raise event.
validateAgreement()
Check Agreement.
setAccepted($a_status)
Set Agreement accepted.
const IL_CRS_SUBSCRIPTION_PASSWORD
fillRegistrationPeriod()
show informations about the registration period
enableRegistration($a_status)
set registration disabled
executeCommand()
Execute command.
static makeClickable($a_text, $detectGotoLinks=false)
makeClickable In Texten enthaltene URLs und Mail-Adressen klickbar machen
special template class to simplify handling of ITX/PEAR
isRegistrationPossible()
check if registration is possible
This class represents a text property in a property form.
static formatDate(ilDateTime $date)
Format a date public.
static lookupRegistrationInfo($a_obj_id)
Lookup registration info ilDB $ilDB ilObjUser $ilUser ilLanguage $lng.
validateCustomFields()
Check required course fields.
static stripSlashes($a_str, $a_strip_html=true, $a_allow="")
strip slashes if magic qoutes is enabled
validate()
Validate subscription request.
Create styles array
The data for the language used.
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
GUI class for course registrations.
This class represents a non editable value in a property form.
This class represents a text area property in a property form.
fillInformations()
fill informations
const IL_CRS_SUBSCRIPTION_DIRECT
Add data(end) time
Method that wraps PHPs time in order to allow simulations with the workflow.
addCommandButtons()
Add group specific command buttons.
static checkForumsExistsInsert($ref_id, $user_id=0)
getContainer()
Parent object.
static redirect($a_script)
http redirect to other script
const IL_CRS_SUBSCRIPTION_DEACTIVATED
fillMaxMembers()
fill max members
initParticipants()
Init course participants.