5include_once
"./Services/Container/classes/class.ilContainerGUI.php";
6include_once(
'./Modules/Group/classes/class.ilObjGroup.php');
32 public function __construct($a_data,$a_id,$a_call_by_reference,$a_prepare_output =
false)
37 parent::__construct($a_data,$a_id,$a_call_by_reference,$a_prepare_output);
39 $this->lng->loadLanguageModule(
'grp');
46 global
$ilUser,$rbacsystem,$ilAccess, $ilNavigationHistory,
$ilErr, $ilToolbar;
48 $next_class = $this->ctrl->getNextClass($this);
49 $cmd = $this->ctrl->getCmd();
56 $ilAccess->checkAccess(
"read",
"",
$_GET[
"ref_id"]))
58 include_once(
"./Services/Link/classes/class.ilLink.php");
59 $ilNavigationHistory->addItem(
$_GET[
"ref_id"],
64 if ($next_class ==
"" &&
$cmd ==
"" && $this->object->isNewsTimelineLandingPageEffective()
65 && $ilAccess->checkAccess(
"read",
"",
$_GET[
"ref_id"]))
67 $this->ctrl->redirectbyclass(
"ilnewstimelinegui");
72 case 'ilgroupmembershipgui':
74 $this->tabs_gui->activateTab(
'members');
76 include_once
'./Modules/Group/classes/class.ilGroupMembershipGUI.php';
78 $this->ctrl->forwardCommand($mem_gui);
82 case 'ilgroupregistrationgui':
83 $this->ctrl->setReturn($this,
'');
84 $this->tabs_gui->setTabActive(
'join');
85 include_once(
'./Modules/Group/classes/class.ilGroupRegistrationGUI.php');
87 $this->ctrl->forwardCommand($registration);
90 case 'ilusersgallerygui':
92 if(!$ilAccess->checkAccess(
'manage_members',
'', $this->ref_id) &&
94 $this->
object->getShowMembers() == $this->
object->SHOW_MEMBERS_DISABLED ||
98 $ilErr->raiseError($this->lng->txt(
'msg_no_perm_read'),
$ilErr->MESSAGE);
101 $this->addMailToMemberButton($ilToolbar,
'jump2UsersGallery');
103 require_once
'Services/User/classes/class.ilUsersGalleryParticipants.php';
104 require_once
'Services/User/classes/class.ilUsersGalleryGUI.php';
106 $this->tabs_gui->setTabActive(
'members');
107 $this->tabs_gui->setSubTabActive(
'grp_members_gallery');
111 $this->ctrl->forwardCommand($gallery_gui);
114 case 'ilpermissiongui':
115 $this->tabs_gui->setTabActive(
'perm_settings');
116 include_once(
"Services/AccessControl/classes/class.ilPermissionGUI.php");
118 $ret =& $this->ctrl->forwardCommand($perm_gui);
121 case "ilinfoscreengui":
125 case "illearningprogressgui":
126 include_once
'./Services/Tracking/classes/class.ilLearningProgressGUI.php';
129 $this->object->getRefId(),
131 $this->ctrl->forwardCommand($new_gui);
132 $this->tabs_gui->setTabActive(
'learning_progress');
135 case 'ilobjcoursegroupinggui':
138 include_once
'./Modules/Course/classes/class.ilObjCourseGroupingGUI.php';
139 $this->ctrl->setReturn($this,
'edit');
141 $this->ctrl->forwardCommand($crs_grp_gui);
143 $this->tabs_gui->setTabActive(
'settings');
144 $this->tabs_gui->setSubTabActive(
'groupings');
147 case 'ilcoursecontentgui':
149 include_once
'./Modules/Course/classes/class.ilCourseContentGUI.php';
151 $this->ctrl->forwardCommand($course_content_obj);
154 case 'ilpublicuserprofilegui':
155 require_once
'./Services/User/classes/class.ilPublicUserProfileGUI.php';
157 $this->tabs_gui->setTabActive(
'group_members');
158 $this->tabs_gui->setSubTabActive(
'grp_members_gallery');
160 if (
$_GET[
"back_url"] ==
"")
162 $profile_gui->setBackUrl($this->ctrl->getLinkTargetByClass([
"ilGroupMembershipGUI",
"ilUsersGalleryGUI"],
'view'));
164 $html = $this->ctrl->forwardCommand($profile_gui);
165 $this->tpl->setVariable(
"ADM_CONTENT",
$html);
169 $this->tabs_gui->setTabActive(
'none');
171 include_once(
"./Services/Style/Content/classes/class.ilObjStyleSheet.php");
172 $this->tpl->setVariable(
"LOCATION_CONTENT_STYLESHEET",
178 case "ilcontainerpagegui":
182 $this->tpl->setContent(
$ret);
186 case 'ilobjectcopygui':
187 include_once
'./Services/Object/classes/class.ilObjectCopyGUI.php';
190 $this->ctrl->forwardCommand($cp);
193 case "ilobjstylesheetgui":
197 case 'ilobjectcustomuserfieldsgui':
198 include_once
'./Services/Membership/classes/class.ilObjectCustomUserFieldsGUI.php';
201 $this->tabs_gui->setTabActive(
'settings');
202 $this->ctrl->forwardCommand($cdf_gui);
205 case 'ilmemberagreementgui':
206 include_once(
'Services/Membership/classes/class.ilMemberAgreementGUI.php');
207 $this->ctrl->setReturn($this,
'');
208 $this->tabs_gui->setTabActive(
'view_content');
210 $this->ctrl->forwardCommand($agreement);
214 $this->tabs_gui->setTabActive(
'export');
215 include_once
'./Services/Export/classes/class.ilExportGUI.php';
217 $exp->addFormat(
'xml');
218 $this->ctrl->forwardCommand($exp);
221 case "ilcommonactiondispatchergui":
222 include_once(
"Services/Object/classes/class.ilCommonActionDispatcherGUI.php");
224 $this->ctrl->forwardCommand($gui);
227 case 'ilobjectservicesettingsgui':
228 $this->ctrl->setReturn($this,
'edit');
230 $this->tabs_gui->activateTab(
'settings');
231 $this->tabs_gui->activateSubTab(
'tool_settings');
233 include_once
'./Services/Object/classes/class.ilObjectServiceSettingsGUI.php';
236 $this->object->getId(),
240 $this->ctrl->forwardCommand($service);
243 case 'ilmailmembersearchgui':
244 include_once
'Services/Mail/classes/class.ilMail.php';
247 if(!($ilAccess->checkAccess(
'manage_members',
'',$this->object->getRefId()) ||
249 $rbacsystem->checkAccess(
'internal_mail',$mail->getMailObjectReferenceId()))
251 $ilErr->raiseError($this->lng->txt(
"msg_no_perm_read"),
$ilErr->MESSAGE);
254 $this->tabs_gui->setTabActive(
'members');
256 include_once
'./Services/Contact/classes/class.ilMailMemberSearchGUI.php';
257 include_once
'./Services/Contact/classes/class.ilMailMemberGroupRoles.php';
261 $this->ctrl->forwardCommand($mail_search);
264 case 'ilbadgemanagementgui':
265 $this->tabs_gui->setTabActive(
'obj_tool_setting_badges');
266 include_once
'Services/Badge/classes/class.ilBadgeManagementGUI.php';
268 $this->ctrl->forwardCommand($bgui);
271 case "ilcontainernewssettingsgui":
273 $this->tabs_gui->setTabActive(
'settings');
274 include_once(
"./Services/Container/classes/class.ilContainerNewsSettingsGUI.php");
276 $this->ctrl->forwardCommand($news_set_gui);
279 case "ilnewstimelinegui":
281 $this->tabs_gui->setTabActive(
'news_timeline');
282 include_once(
"./Services/News/classes/class.ilNewsTimelineGUI.php");
284 $t->setUserEditAll($ilAccess->checkAccess(
'write',
'',$this->object->getRefId(),
'grp'));
286 $this->ctrl->forwardCommand(
$t);
293 !$ilAccess->checkAccess(
'visible',
'',$this->object->getRefId(),
'grp') and
294 !$ilAccess->checkAccess(
'read',
'',$this->object->getRefId(),
'grp') )
296 $ilErr->raiseError($this->lng->txt(
"msg_no_perm_read"),
$ilErr->MESSAGE);
300 if(
$cmd ==
'infoScreenGoto')
302 if($this->object->isRegistrationEnabled())
314 && !$rbacsystem->checkAccess(
'read',$this->object->getRefId()) &&
$cmd !=
'infoScreen')
318 if (!$rbacsystem->checkAccess(
'join',$this->object->getRefId()))
320 $this->ctrl->redirect($this,
"infoScreen");
324 include_once(
'./Modules/Group/classes/class.ilGroupRegistrationGUI.php');
325 $this->ctrl->redirectByClass(
"ilGroupRegistrationGUI",
"show");
344 include_once
'Services/Tracking/classes/class.ilLearningProgress.php';
346 $this->object->getRefId(),
'grp');
348 if (strtolower(
$_GET[
"baseClass"]) ==
"iladministrationgui")
350 parent::viewObject();
356 include_once(
'Services/Membership/classes/class.ilMemberAgreementGUI.php');
357 $this->tabs_gui->setTabActive(
'view_content');
358 $this->ctrl->setReturn($this,
'view');
360 $this->ctrl->setCmdClass(get_class($agreement));
361 $this->ctrl->forwardCommand($agreement);
365 $this->tabs_gui->setTabActive(
'view_content');
376 $ilTabs->activateTab(
"view_content");
377 $ret = parent::renderObject();
394 if ($course_ref_id =
$tree->checkForParentType($this->object->getRefId(),
'crs'))
396 include_once(
"./Modules/Course/classes/class.ilObjCourse.php");
397 include_once(
"./Modules/Course/classes/class.ilObjCourseGUI.php");
401 'ilcoursecontentgui',
407 $this->object->getRefId()
434 include_once
'./Services/Container/classes/class.ilContainerSortingSettings.php';
436 $sort->setSortMode($sort_mode);
441 include_once
'./Modules/Group/classes/class.ilGroupParticipants.php';
444 $members_obj->updateNotification(
$ilUser->getId(),
$ilSetting->get(
'mail_grp_admin_notification',
true));
447 $this->ctrl->setParameter($this,
"ref_id", $new_object->
getRefId());
448 $this->ctrl->redirect($this,
'edit');
463 $this->tabs_gui->setTabActive(
'settings');
464 $this->tabs_gui->setSubTabActive(
'grp_settings');
471 $this->tpl->setVariable(
'ADM_CONTENT', $a_form->getHTML());
483 include_once
'./Services/DidacticTemplate/classes/class.ilDidacticTemplateUtils.php';
485 $this->object->getRefId(),
486 (
int) $_REQUEST[
'grp_type']
490 $this->ctrl->redirect($this,
'edit');
506 if($form->checkInput())
509 include_once
'./Services/DidacticTemplate/classes/class.ilDidacticTemplateObjSettings.php';
513 $new_type_info = $form->getInput(
'didactic_type');
516 $new_type = explode(
'_',$form->getInput(
'didactic_type'));
517 $new_type = $new_type[1];
519 $modified = ($new_type != $old_type);
523 $old_autofill = $this->
object->hasWaitingListAutoFill();
530 $this->
object->enableUnlimitedRegistration((
bool) !$form->getInput(
'reg_limit_time'));
531 $this->
object->enableMembershipLimitation((
bool) $form->getInput(
'registration_membership_limited'));
532 $this->
object->setMinMembers((
int) $form->getInput(
'registration_min_members'));
533 $this->
object->setMaxMembers((
int) $form->getInput(
'registration_max_members'));
534 $this->
object->enableRegistrationAccessCode((
bool) $form->getInput(
'reg_code_enabled'));
535 $this->
object->setRegistrationAccessCode($form->getInput(
'reg_code'));
536 $this->
object->setViewMode($form->getInput(
'view_mode'));
537 $this->
object->setMailToMembersType((
int) $form->getInput(
'mail_type'));
538 $this->
object->setShowMembers((
int) $form->getInput(
'show_members'));
540 $reg = $form->getItemByPostVar(
"reg");
543 $this->
object->enableUnlimitedRegistration(
false);
547 $this->
object->enableUnlimitedRegistration(
true);
550 $this->
object->setRegistrationStart($reg->getStart());
551 $this->
object->setRegistrationEnd($reg->getEnd());
553 $cancel_end = $form->getItemByPostVar(
"cancel_end");
554 $this->
object->setCancellationEnd($cancel_end->getDate());
556 switch((
int)
$_POST[
'waiting_list'])
559 $this->
object->enableWaitingList(
true);
560 $this->
object->setWaitingListAutoFill(
true);
564 $this->
object->enableWaitingList(
true);
565 $this->
object->setWaitingListAutoFill(
false);
569 $this->
object->enableWaitingList(
false);
570 $this->
object->setWaitingListAutoFill(
false);
575 $this->
object->update();
578 include_once
'./Services/Object/classes/class.ilObjectServiceSettingsGUI.php';
580 $this->object->getId(), $form,
595 $this->object->hasWaitingListAutoFill())
597 $this->
object->handleAutoFill();
601 require_once(
'Services/Tracking/classes/class.ilChangeEvent.php');
608 include_once
'Modules/Group/classes/class.ilECSGroupSettings.php';
610 $ecs->handleSettingsUpdate();
616 $form->setValuesByPost();
626 $new_type_txt =
$GLOBALS[
'lng']->txt(
'il_grp_status_open');
630 include_once
'./Services/DidacticTemplate/classes/class.ilDidacticTemplateSetting.php';
632 $new_type_txt = $dtpl->getPresentationTitle(
$GLOBALS[
'lng']->getLangKey());
636 include_once
'./Services/Utilities/classes/class.ilConfirmationGUI.php';
639 $confirm->setFormAction($this->ctrl->getFormAction($this));
643 $this->lng->txt(
'grp_info_new_grp_type').
': '. $new_type_txt
645 $confirm->addButton($this->lng->txt(
'grp_change_type'),
'updateGroupType');
646 $confirm->setCancel($this->lng->txt(
'cancel'),
'edit');
648 $this->tpl->setContent($confirm->getHTML());
654 $this->ctrl->redirect($this,
'edit');
669 $this->tabs_gui->setTabActive(
'settings');
670 $this->tabs_gui->setSubTabActive(
'grp_icon_settings');
677 $tpl->setContent($a_form->getHTML());
682 include_once
"Services/Form/classes/class.ilPropertyFormGUI.php";
684 $form->setFormAction($this->ctrl->getFormAction($this));
689 $form->addCommandButton(
'updateGroupIcons', $this->lng->txt(
'save'));
707 if($form->checkInput())
712 if(
$_POST[
"cont_icon_delete"])
714 $this->
object->removeCustomIcon();
716 $this->
object->saveIcons($_FILES[
"cont_icon"][
'tmp_name']);
719 $this->ctrl->redirect($this,
"editGroupIcons");
722 $form->setValuesByPost();
734 $this->tabs_gui->setTabActive(
'settings');
735 $this->tabs_gui->setSubTabActive(
'grp_map_settings');
737 include_once(
'./Services/Maps/classes/class.ilMapUtil.php');
739 !$ilAccess->checkAccess(
"write",
"", $this->object->getRefId()))
744 $latitude = $this->
object->getLatitude();
745 $longitude = $this->
object->getLongitude();
746 $zoom = $this->
object->getLocationZoom();
749 if ($latitude == 0 && $longitude == 0 && $zoom == 0)
752 $latitude = $def[
"latitude"];
753 $longitude = $def[
"longitude"];
754 $zoom = $def[
"zoom"];
758 include_once(
"./Services/Form/classes/class.ilPropertyFormGUI.php");
760 $form->setFormAction(
$ilCtrl->getFormAction($this));
762 $form->setTitle($this->lng->txt(
"grp_map_settings"));
767 $public->setValue(
"1");
768 $public->setChecked($this->object->getEnableGroupMap());
769 $form->addItem($public);
774 $loc_prop->setLatitude($latitude);
775 $loc_prop->setLongitude($longitude);
776 $loc_prop->setZoom($zoom);
777 $form->addItem($loc_prop);
779 $form->addCommandButton(
"saveMapSettings", $this->lng->txt(
"save"));
781 $this->tpl->setVariable(
"ADM_CONTENT", $form->getHTML());
792 $this->
object->update();
794 $ilCtrl->redirect($this,
"editMapSettings");
811 $this->tabs_gui->setTabActive(
'settings');
812 $this->tabs_gui->setSubTabActive(
'grp_info_settings');
815 $this->tpl->setContent($form->getHTML());
826 include_once(
"./Services/Form/classes/class.ilPropertyFormGUI.php");
828 $form->setFormAction($this->ctrl->getFormAction($this,
'updateInfo'));
829 $form->setTitle($this->lng->txt(
'grp_general_informations'));
830 $form->addCommandButton(
'updateInfo',$this->lng->txt(
'save'));
831 $form->addCommandButton(
'cancel',$this->lng->txt(
'cancel'));
834 $area->setInfo($this->lng->txt(
'grp_information_info'));
835 $area->setValue($this->object->getInformation());
838 $form->addItem($area);
854 $this->
object->update();
864 include_once(
'./Services/PrivacySecurity/classes/class.ilPrivacySettings.php');
867 include_once
'./Services/Tracking/classes/class.ilObjUserTracking.php';
868 $this->show_tracking =
872 if($this->show_tracking)
874 include_once(
'./Services/Object/classes/class.ilObjectLP.php');
876 $this->show_tracking = $olp->isActive();
879 if($this->show_tracking)
881 include_once
'Services/Tracking/classes/class.ilLPStatusWrapper.php';
887 if($privacy->enabledGroupAccessTimes())
889 include_once(
'./Services/Tracking/classes/class.ilLearningProgress.php');
893 $do_prtf = (is_array($selected_columns) &&
894 in_array(
'prtf', $selected_columns) &&
898 include_once
"Modules/Portfolio/classes/class.ilObjPortfolio.php";
900 $this->ctrl->getLinkTarget($this,
"members"));
904 foreach($ids as $usr_id)
907 $tmp_data[
'firstname'] = $name[
'firstname'];
908 $tmp_data[
'lastname'] = $name[
'lastname'];
910 $tmp_data[
'notification'] = $this->
object->members_obj->isNotificationEnabled($usr_id) ? 1 : 0;
911 $tmp_data[
'usr_id'] = $usr_id;
914 foreach((array) $profile_data[$usr_id] as $field => $value)
916 $tmp_data[$field] = $value;
919 if($this->show_tracking)
921 if(in_array($usr_id,$completed))
925 elseif(in_array($usr_id,$in_progress))
929 elseif(in_array($usr_id,
$failed))
939 if($privacy->enabledGroupAccessTimes())
941 if(isset($progress[$usr_id][
'ts']) and $progress[$usr_id][
'ts'])
945 $tmp_data[
'access_time_unix'] = $tmp_date->get(
IL_CAL_UNIX);
949 $tmp_data[
'access_time'] = $this->lng->txt(
'no_date');
950 $tmp_data[
'access_time_unix'] = 0;
956 $tmp_data[
'prtf'] = $all_prtf[$usr_id];
959 $members[$usr_id] = $tmp_data;
961 return $members ? $members : array();
975 if($part->isLastAdmin(
$ilUser->getId()))
982 $this->tabs_gui->setTabActive(
'grp_btn_unsubscribe');
984 include_once
"Services/Utilities/classes/class.ilConfirmationGUI.php";
986 $cgui->setHeaderText($this->lng->txt(
'grp_dismiss_myself'));
987 $cgui->setFormAction($this->ctrl->getFormAction($this));
988 $cgui->setCancel($this->lng->txt(
"cancel"),
"cancel");
989 $cgui->setConfirm($this->lng->txt(
"grp_btn_unsubscribe"),
"unsubscribe");
990 $this->tpl->setContent($cgui->getHTML());
1005 $this->
object->members_obj->delete($ilUser->getId());
1007 include_once
'./Modules/Group/classes/class.ilGroupMembershipMailNotification.php';
1008 $this->
object->members_obj->sendNotification(
1012 $this->
object->members_obj->sendNotification(
1018 $ilCtrl->setParameterByClass(
"ilrepositorygui",
"ref_id",
1019 $tree->getParentId($this->object->getRefId()));
1020 $ilCtrl->redirectByClass(
"ilrepositorygui",
"");
1031 $this->tabs_gui->addTab(
"view_content", $this->lng->txt(
"content"),
1032 $this->ctrl->getLinkTarget($this,
"view"));
1039 global $rbacsystem,
$ilUser, $ilAccess,
$lng, $ilHelp;
1041 $ilHelp->setScreenIdComponent(
"grp");
1043 if ($rbacsystem->checkAccess(
'read',$this->ref_id))
1045 if ($this->object->isNewsTimelineEffective())
1047 if (!$this->object->isNewsTimelineLandingPageEffective())
1051 $this->tabs_gui->addTab(
"news_timeline",
$lng->txt(
"cont_news_timeline_tab"),
1052 $this->ctrl->getLinkTargetByClass(
"ilnewstimelinegui",
"show"));
1053 if ($this->object->isNewsTimelineLandingPageEffective())
1063 if ($rbacsystem->checkAccess(
'visible',$this->ref_id))
1065 $this->tabs_gui->addTarget(
"info_short",
1066 $this->ctrl->getLinkTargetByClass(
1067 array(
"ilobjgroupgui",
"ilinfoscreengui"),
"showSummary"),
1073 if ($ilAccess->checkAccess(
'write',
'',$this->object->getRefId()))
1075 $this->tabs_gui->addTarget(
"settings",
1076 $this->ctrl->getLinkTarget($this,
"edit"), array(
"edit",
"editMapSettings"), get_class($this),
1080 include_once
'./Modules/Group/classes/class.ilGroupParticipants.php';
1084 include_once
'./Modules/Group/classes/class.ilGroupMembershipGUI.php';
1086 $membership_gui->addMemberTab($this->tabs_gui, $is_participant);
1090 if($ilAccess->checkAccess(
'write',
'',$this->ref_id))
1092 include_once
'Services/Badge/classes/class.ilBadgeHandler.php';
1095 $this->tabs_gui->addTarget(
"obj_tool_setting_badges",
1096 $this->ctrl->getLinkTargetByClass(
"ilbadgemanagementgui",
""),
1098 "ilbadgemanagementgui");
1103 include_once
'./Services/Tracking/classes/class.ilLearningProgressAccess.php';
1106 $this->tabs_gui->addTarget(
'learning_progress',
1107 $this->ctrl->getLinkTargetByClass(array(
'ilobjgroupgui',
'illearningprogressgui'),
''),
1109 array(
'illplistofobjectsgui',
'illplistofsettingsgui',
'illearningprogressgui',
'illplistofprogressgui'));
1113 if($ilAccess->checkAccess(
'write',
'',$this->object->getRefId()))
1115 $this->tabs_gui->addTarget(
1117 $this->ctrl->getLinkTargetByClass(
'ilexportgui',
''),
1126 if($ilAccess->checkAccess(
'join',
'',$this->object->getRefId()) and
1127 !$this->object->members_obj->isAssigned(
$ilUser->getId()))
1129 include_once
'./Modules/Group/classes/class.ilGroupWaitingList.php';
1132 $this->tabs_gui->addTab(
1134 $this->lng->txt(
'membership_leave'),
1135 $this->ctrl->getLinkTargetByClass(
'ilgroupregistrationgui',
'show',
'')
1142 $this->tabs_gui->addTarget(
"join",
1143 $this->ctrl->getLinkTargetByClass(
'ilgroupregistrationgui',
"show"),
1148 if($ilAccess->checkAccess(
'leave',
'',$this->object->getRefId()) and
1149 $this->object->members_obj->isMember(
$ilUser->getId()))
1151 $this->tabs_gui->addTarget(
"grp_btn_unsubscribe",
1152 $this->ctrl->getLinkTarget($this,
"leave"),
1165 $this->ctrl->setCmd(
"showSummary");
1166 $this->ctrl->setCmdClass(
"ilinfoscreengui");
1177 $this->tabs_gui->setTabActive(
'info_short');
1179 if(!$rbacsystem->checkAccess(
"visible", $this->ref_id))
1181 $this->
ilias->raiseError($this->lng->txt(
"msg_no_perm_read"),$this->ilias->error_obj->MESSAGE);
1184 include_once(
"./Services/InfoScreen/classes/class.ilInfoScreenGUI.php");
1187 if(strlen($this->object->getInformation()))
1189 $info->addSection($this->lng->txt(
'grp_general_informations'));
1190 $info->addProperty($this->lng->txt(
'grp_information'), nl2br(
1194 $info->enablePrivateNotes();
1195 $info->enableLearningProgress(
true);
1197 $info->addSection($this->lng->txt(
'group_registration'));
1198 $info->showLDAPRoleGroupMappingInfo();
1200 if(!$this->object->isRegistrationEnabled())
1202 $info->addProperty($this->lng->txt(
'group_registration_mode'),
1203 $this->lng->txt(
'grp_reg_deac_info_screen'));
1208 switch($this->object->getRegistrationType())
1211 $info->addProperty($this->lng->txt(
'group_registration_mode'),
1212 $this->lng->txt(
'grp_reg_direct_info_screen'));
1216 $info->addProperty($this->lng->txt(
'group_registration_mode'),
1217 $this->lng->txt(
'grp_reg_req_info_screen'));
1221 $info->addProperty($this->lng->txt(
'group_registration_mode'),
1222 $this->lng->txt(
'grp_reg_passwd_info_screen'));
1232 if($this->object->isRegistrationUnlimited())
1234 $info->addProperty($this->lng->txt(
'group_registration_time'),
1235 $this->lng->txt(
'grp_registration_unlimited'));
1237 elseif($this->object->getRegistrationStart()->getUnixTime() < time())
1239 $info->addProperty($this->lng->txt(
"group_registration_time"),
1240 $this->lng->txt(
'cal_until').
' '.
1243 elseif($this->object->getRegistrationStart()->getUnixTime() >= time())
1245 $info->addProperty($this->lng->txt(
"group_registration_time"),
1246 $this->lng->txt(
'cal_from').
' '.
1249 if ($this->object->isMembershipLimited())
1251 if($this->object->getMinMembers())
1253 $info->addProperty($this->lng->txt(
"mem_min_users"),
1254 $this->object->getMinMembers());
1256 if($this->object->getMaxMembers())
1258 include_once
'./Modules/Group/classes/class.ilObjGroupAccess.php';
1262 $this->lng->txt(
'mem_free_places'),
1263 $reg_info[
'reg_info_free_places']
1268 if($this->object->getCancellationEnd())
1270 $info->addProperty($this->lng->txt(
'grp_cancellation_end'),
1276 include_once(
'Services/PrivacySecurity/classes/class.ilPrivacySettings.php');
1279 include_once(
'Modules/Course/classes/Export/class.ilCourseDefinedFieldDefinition.php');
1282 include_once(
'Services/PrivacySecurity/classes/class.ilExportFieldsInfo.php');
1286 $this->lng->loadLanguageModule(
'ps');
1287 $info->addSection($this->lng->txt(
'grp_user_agreement_info'));
1288 $info->addProperty($this->lng->txt(
'ps_export_data'),$field_info->exportableFieldsToInfoString());
1292 $info->addProperty($this->lng->txt(
'ps_grp_user_fields'),$fields);
1298 $this->ctrl->forwardCommand(
$info);
1306 include_once
"Services/Membership/classes/class.ilMembershipNotifications.php";
1308 if($noti->canCurrentUserEdit())
1310 if((
bool)$_REQUEST[
"grp_ntf"])
1312 $noti->activateUser();
1316 $noti->deactivateUser();
1320 $this->ctrl->redirect($this,
"infoScreen");
1328 $GLOBALS[
'ilCtrl']->redirectByClass(
'ilgroupmembershipgui');
1335 public static function _goto($a_target, $a_add =
"")
1339 include_once
'./Services/Membership/classes/class.ilMembershipRegistrationCodeUtils.php';
1340 if(substr($a_add,0,5) ==
'rcode')
1342 if(
$ilUser->getId() == ANONYMOUS_USER_ID)
1346 "login.php?target=".
$_GET[
"target"].
"&cmd=force_login&lang=".
1359 if ($a_add ==
"mem" && $ilAccess->checkAccess(
"manage_members",
"", $a_target))
1364 if ($ilAccess->checkAccess(
"read",
"", $a_target))
1371 if ($ilAccess->checkAccess(
"visible",
"", $a_target))
1377 if ($ilAccess->checkAccess(
"read",
"", ROOT_FOLDER_ID))
1400 include_once(
"./Services/Form/classes/class.ilPropertyFormGUI.php");
1406 $form->setFormAction($this->ctrl->getFormAction($this,
'update'));
1410 $form->setTableWidth(
'600px');
1411 $form->setFormAction($this->ctrl->getFormAction($this,
'save'));
1417 $title->setSubmitFormOnEnter(
true);
1418 $title->setValue($this->object->getTitle());
1421 $title->setRequired(
true);
1426 $desc->setValue($this->object->getLongDescription());
1429 $form->addItem($desc);
1433 if($a_mode ==
'edit')
1437 $pres->setTitle($this->lng->txt(
'grp_setting_header_registration'));
1438 $form->addItem($pres);
1441 $reg_type =
new ilRadioGroupInputGUI($this->lng->txt(
'group_registration_mode'),
'registration_type');
1442 $reg_type->setValue($this->object->getRegistrationType());
1445 $reg_type->addOption($opt_dir);
1449 $pass->setInfo($this->lng->txt(
'grp_reg_password_info'));
1450 $pass->setValue($this->object->getPassword());
1452 $pass->setMaxLength(32);
1453 $opt_pass->addSubItem(
$pass);
1454 $reg_type->addOption($opt_pass);
1457 $reg_type->addOption($opt_req);
1460 $reg_type->addOption($opt_deact);
1463 $reg_code =
new ilCheckboxInputGUI($this->lng->txt(
'grp_reg_code'),
'reg_code_enabled');
1464 $reg_code->setChecked($this->object->isRegistrationAccessCodeEnabled());
1465 $reg_code->setValue(1);
1466 $reg_code->setInfo($this->lng->txt(
'grp_reg_code_enabled_info'));
1467 $form->addItem($reg_type);
1470 if(!$this->object->getRegistrationAccessCode())
1472 include_once
'./Services/Membership/classes/class.ilMembershipRegistrationCodeUtils.php';
1476 $reg_link->setValue($this->object->getRegistrationAccessCode());
1477 $form->addItem($reg_link);
1480 include_once
'./Services/Link/classes/class.ilLink.php';
1481 $val =
ilLink::_getLink($this->object->getRefId(),$this->object->getType(),array(),
'_rcode'.$this->object->getRegistrationAccessCode());
1482 $link->setHTML(
'<font class="small">'.$val.
'</font>');
1483 $reg_code->addSubItem($link);
1484 $form->addItem($reg_code);
1487 $this->lng->loadLanguageModule(
'dateplaner');
1488 include_once
'./Services/Form/classes/class.ilDateDurationInputGUI.php';
1490 $dur->setShowTime(
true);
1491 $dur->setStart($this->object->getRegistrationStart());
1492 $dur->setEnd($this->object->getRegistrationEnd());
1493 $form->addItem($dur);
1496 $cancel =
new ilDateTimeInputGUI($this->lng->txt(
'grp_cancellation_end'),
'cancel_end');
1497 $cancel->setInfo($this->lng->txt(
'grp_cancellation_end_info'));
1498 $cancel->setDate($this->object->getCancellationEnd());
1499 $form->addItem($cancel);
1502 $lim =
new ilCheckboxInputGUI($this->lng->txt(
'reg_grp_max_members_short'),
'registration_membership_limited');
1505 $lim->setChecked($this->object->isMembershipLimited());
1507 $min =
new ilTextInputGUI($this->lng->txt(
'reg_grp_min_members'),
'registration_min_members');
1509 $min->setMaxLength(4);
1510 $min->setValue($this->object->getMinMembers() ? $this->object->getMinMembers() :
'');
1511 $min->setInfo($this->lng->txt(
'grp_subscription_min_members_info'));
1512 $lim->addSubItem($min);
1514 $max =
new ilTextInputGUI($this->lng->txt(
'reg_grp_max_members'),
'registration_max_members');
1515 $max->setValue($this->object->getMaxMembers() ? $this->object->getMaxMembers() :
'');
1518 $max->setMaxLength(4);
1519 $max->setInfo($this->lng->txt(
'grp_reg_max_members_info'));
1520 $lim->addSubItem($max);
1535 $wait->addOption($option);
1537 $option =
new ilRadioOption($this->lng->txt(
'grp_waiting_list_no_autofill'), 1);
1538 $option->setInfo($this->lng->txt(
'grp_waiting_list_info'));
1539 $wait->addOption($option);
1541 $option =
new ilRadioOption($this->lng->txt(
'grp_waiting_list_autofill'), 2);
1542 $option->setInfo($this->lng->txt(
'grp_waiting_list_autofill_info'));
1543 $wait->addOption($option);
1545 if($this->object->hasWaitingListAutoFill())
1549 else if($this->object->isWaitingListEnabled())
1554 $lim->addSubItem($wait);
1556 $form->addItem($lim);
1560 $hasParentMembership =
1562 $tree->checkForParentType($this->object->getRefId(),
'crs',
true) ||
1563 $tree->checkForParentType($this->object->getRefId(),
'grp',
true)
1567 $pres->setTitle($this->lng->txt(
'grp_setting_header_presentation'));
1568 $form->addItem($pres);
1572 if($hasParentMembership)
1574 switch($this->object->getViewMode())
1577 $course_view_mode =
': '.$this->lng->txt(
'cntr_view_sessions');
1581 $course_view_mode =
': '.$this->lng->txt(
'cntr_view_simple');
1585 $course_view_mode =
': '.$this->lng->txt(
'cntr_view_by_type');
1590 $opt->setInfo($this->lng->txt(
'grp_view_inherit_info'));
1591 $view_type->addOption($opt);
1594 if($hasParentMembership &&
1601 $view_type->setValue(
1603 $this->object->getId(),
1604 $this->object->getViewMode(),
1605 $this->object->getRefId()
1611 $opt->setInfo($this->lng->txt(
'grp_view_info_simple'));
1612 $view_type->addOption($opt);
1615 $opt->setInfo($this->lng->txt(
'grp_view_info_by_type'));
1616 $view_type->addOption($opt);
1617 $form->addItem($view_type);
1621 $sorting_settings = array();
1622 if($hasParentMembership)
1633 $feat->setTitle($this->lng->txt(
'obj_features'));
1634 $form->addItem($feat);
1636 include_once
'./Services/Object/classes/class.ilObjectServiceSettingsGUI.php';
1638 $this->object->getId(),
1655 $mem->setChecked($this->object->getShowMembers());
1656 $mem->setInfo($this->lng->txt(
'grp_show_members_info'));
1657 $form->addItem($mem);
1661 $mail_type->setValue($this->object->getMailToMembersType());
1664 $this->lng->txt(
'grp_mail_tutors_only_info'));
1665 $mail_type->addOption($mail_tutors);
1668 $this->lng->txt(
'grp_mail_all_info'));
1669 $mail_type->addOption($mail_all);
1670 $form->addItem($mail_type);
1676 $form->setTitle($this->lng->txt(
'grp_new'));
1679 $form->addCommandButton(
'save',$this->lng->txt(
'grp_new'));
1680 $form->addCommandButton(
'cancel',$this->lng->txt(
'cancel'));
1684 $form->setTitle($this->lng->txt(
'grp_edit'));
1688 include_once
'Modules/Group/classes/class.ilECSGroupSettings.php';
1690 $ecs->addSettingsToForm($form,
'grp');
1692 $form->addCommandButton(
'update',$this->lng->txt(
'save'));
1693 $form->addCommandButton(
'cancel',$this->lng->txt(
'cancel'));
1708 global $rbacsystem,
$ilUser,$ilAccess;
1714 $this->tabs_gui->addSubTabTarget(
"grp_settings",
1715 $this->ctrl->getLinkTarget($this,
'edit'),
1716 "edit", get_class($this));
1718 $this->tabs_gui->addSubTabTarget(
"grp_info_settings",
1719 $this->ctrl->getLinkTarget($this,
'editInfo'),
1720 "editInfo", get_class($this));
1723 if ($this->
ilias->getSetting(
"custom_icons"))
1725 $this->tabs_gui->addSubTabTarget(
"grp_icon_settings",
1726 $this->ctrl->getLinkTarget($this,
'editGroupIcons'),
1727 "editGroupIcons", get_class($this));
1730 include_once(
"./Services/Maps/classes/class.ilMapUtil.php");
1733 $this->tabs_gui->addSubTabTarget(
"grp_map_settings",
1734 $this->ctrl->getLinkTarget($this,
'editMapSettings'),
1735 "editMapSettings", get_class($this));
1738 $this->tabs_gui->addSubTabTarget(
'groupings',
1739 $this->ctrl->getLinkTargetByClass(
'ilobjcoursegroupinggui',
'listGroupings'),
1743 include_once(
'Services/PrivacySecurity/classes/class.ilPrivacySettings.php');
1744 include_once(
'Modules/Course/classes/Export/class.ilCourseDefinedFieldDefinition.php');
1748 $this->tabs_gui->addSubTabTarget(
'grp_custom_user_fields',
1749 $this->ctrl->getLinkTargetByClass(
'ilobjectcustomuserfieldsgui'),
1751 'ilobjectcustomuserfieldsgui');
1755 if ($this->object->getUseNews())
1757 $this->tabs_gui->addSubTab(
'obj_news_settings',
1758 $this->lng->txt(
"cont_news_settings"),
1759 $this->ctrl->getLinkTargetByClass(
'ilcontainernewssettingsgui'));
1778 if($ilAccess->checkAccess(
'write',
'',$this->object->getRefId()))
1784 if(!$this->object->members_obj->isAssigned(
$ilUser->getId()))
1789 include_once
'./Services/Container/classes/class.ilMemberViewSettings.php';
1795 include_once(
'Services/PrivacySecurity/classes/class.ilPrivacySettings.php');
1796 include_once(
'Services/Membership/classes/class.ilMemberAgreement.php');
1806 include_once(
'Modules/Course/classes/Export/class.ilCourseUserData.php');
1834 parent::prepareOutput($a_show_subobjects);
1843 $link = chr(13).chr(10).chr(13).chr(10);
1844 $link .= $this->lng->txt(
'grp_mail_permanent_link');
1845 $link .= chr(13).chr(10).chr(13).chr(10);
1846 include_once
'Services/Link/classes/class.ilLink.php';
1848 return rawurlencode(base64_encode($link));
1855 $lg = parent::initHeaderAction($a_sub_type, $a_sub_id);
1857 include_once(
'./Modules/Group/classes/class.ilGroupParticipants.php');
1860 include_once
"Services/Membership/classes/class.ilMembershipNotifications.php";
1864 if(!$noti->isCurrentUserActive())
1866 $lg->addHeaderIcon(
"not_icon",
1868 $this->lng->txt(
"grp_notification_deactivated"));
1870 $this->ctrl->setParameter($this,
"grp_ntf", 1);
1871 $caption =
"grp_activate_notification";
1875 $lg->addHeaderIcon(
"not_icon",
1877 $this->lng->txt(
"grp_notification_activated"));
1879 $this->ctrl->setParameter($this,
"grp_ntf", 0);
1880 $caption =
"grp_deactivate_notification";
1883 if($noti->canCurrentUserEdit())
1885 $lg->addCustomCommand($this->ctrl->getLinkTarget($this,
"saveNotification"),
1889 $this->ctrl->setParameter($this,
"grp_ntf",
"");
1904 include_once(
'Modules/Course/classes/Export/class.ilCourseUserData.php');
1907 $res_data = array();
1908 foreach($a_data as $usr_id => $user_data)
1910 $res_data[$usr_id] = $user_data;
1913 include_once
'./Services/User/classes/class.ilUserDefinedData.php';
1915 foreach($udf_data->getAll() as $field => $value)
1917 list($f,$field_id) = explode(
'_', $field);
1918 $res_data[$usr_id][
'udf_'.$field_id] = (string) $value;
1921 foreach((array) $odfs[$usr_id] as $cdf_field => $cdf_value)
1923 $res_data[$usr_id][
'cdf_'.$cdf_field] = (string) $cdf_value;
1936 $local_roles = $this->
object->getLocalGroupRoles(
false);
1937 $grp_member = $this->
object->getDefaultMemberRole();
1938 $grp_roles = array();
1941 if(in_array($grp_member, $local_roles))
1944 unset($local_roles[$grp_roles[$grp_member]]);
1947 foreach($local_roles as
$title => $role_id)
1959 $this->ctrl->redirectByClass(
'ilUsersGalleryGUI');
1967 $this->ctrl->setReturn($this,
"view");
sprintf('%.4f', $callTime)
An exception for terminatinating execution or to throw for unit testing.
const GRP_REGISTRATION_DIRECT
const GRP_REGISTRATION_PASSWORD
const GRP_REGISTRATION_DEACTIVATED
const GRP_REGISTRATION_REQUEST
static getInstance()
Constructor.
static _catchupWriteEvents($obj_id, $usr_id, $timestamp=null)
Catches up with all write events which occured before the specified timestamp.
static _recordWriteEvent($obj_id, $usr_id, $action, $parent_obj_id=null)
Records a write event.
static getInstanceFromAjaxCall()
(Re-)Build instance from ajax call
Confirmation screen class.
& forwardToPageObject()
forward command to page object
initSortingForm(ilPropertyFormGUI $form, array $a_sorting_settings)
Append sorting settings to property form.
showPermanentLink(&$tpl)
show permanent link
forwardToStyleSheet()
Forward to style object.
showCustomIconsEditing($a_input_colspan=1, ilPropertyFormGUI $a_form=null, $a_as_section=true)
show edit section of custom icons for container
saveSortingSettings(ilPropertyFormGUI $form)
Save sorting settings.
News settings for containers.
Class ilCourseContentGUI.
static _getFields($a_container_id, $a_sort=IL_CDF_SORT_NAME)
Get all fields of a container.
static _hasFields($a_container_id)
Check if there are any define fields.
static _fieldsToInfoString($a_obj_id)
Fields to info string.
static _getInstanceByObjId($a_obj_id)
Get singleton instance.
static _getValuesByObjId($a_obj_id)
Get values by obj_id (for all users)
static _checkRequired($a_usr_id, $a_obj_id)
Check required fields.
static formatDate(ilDateTime $date)
Format a date @access public.
@classDescription Date and time handling
static lookupTemplateId($a_ref_id)
Lookup template id @global ilDB $ilDB.
static switchTemplate($a_ref_id, $a_new_tpl_id)
Class ilECSGroupSettings.
static _getInstanceByType($a_type)
Get Singleton Instance.
Export User Interface Class.
GUI class for membership features.
const TYPE_UNSUBSCRIBE_MEMBER
const TYPE_NOTIFICATION_UNSUBSCRIBE
static _getInstanceByObjId($a_obj_id)
Get singleton instance.
static _isParticipant($a_ref_id, $a_usr_id)
Static function to check if a user is a participant of the container object.
GUI class for group registrations.
static _lookupCompletedForObject($a_obj_id, $a_user_ids=null)
Get completed users for object.
static _lookupFailedForObject($a_obj_id, $a_user_ids=null)
Get failed users for object.
static _lookupInProgressForObject($a_obj_id, $a_user_ids=null)
Get in progress users for object.
const LP_STATUS_COMPLETED
const LP_STATUS_NOT_ATTEMPTED
const LP_STATUS_IN_PROGRESS
static checkAccess($a_ref_id, $a_allow_only_read=true)
check access to learning progress
const LP_CONTEXT_REPOSITORY
Class ilObjUserTrackingGUI.
static _tracProgress($a_user_id, $a_obj_id, $a_ref_id, $a_obj_type='')
static _lookupProgressByObjId($a_obj_id)
lookup progress for a specific object
static _getLink($a_ref_id, $a_type='', $a_params=array(), $append="")
static getLogger($a_component_id)
Get component logger.
Class ilMailMemberCourseRoles.
Class ilMailMemberSearchGUI.
This class handles base functions for mail handling.
static isActivated()
Checks whether Map feature is activated.
static getDefaultSettings()
Get default longitude, latitude and zoom.
static _hasAccepted($a_usr_id, $a_obj_id)
Check if user has accepted agreement.
static getInstance()
Get instance.
Membership notification settings.
static isActive()
Is feature active?
static handleCode($a_ref_id, $a_type, $a_code)
Handle target parameter.
static generateCode()
Generate new registration key.
static getInstance($a_ref_id, $a_include_auto_entries)
Get instance.
static _modifyItemGUI($a_item_list_gui, $a_cmd_class, $a_item_data, $a_show_path, $a_abo_status, $a_course_ref_id, $a_course_obj_id, $a_parent_ref_id=0)
We need a static version of this, e.g.
Class ilObjCourseGroupingGUI.
static _lookupAboStatus($a_id)
static lookupRegistrationInfo($a_obj_id)
Lookup registration info @global ilDB $ilDB @global ilObjUser $ilUser @global ilLanguage $lng.
saveNotificationObject()
:TEMP: Save notification setting (from infoscreen)
initInfoEditor()
init info editor
membersObject()
Called from goto?
jump2UsersGalleryObject()
prepareOutput($a_show_subobjects=true)
Handle member view.
afterSave(\ilObject $new_object)
After object creation.
renderObject()
Render group.
infoScreen()
show information screen
updateObject()
update group settings
getTabs()
common tabs for all container objects (should be called at the end of child getTabs() method
checkAgreement()
Check agreement and redirect if it is not accepted.
editInfoObject()
edit info
__construct($a_data, $a_id, $a_call_by_reference, $a_prepare_output=false)
Constructor @access public.
editGroupIconsObject($a_form=null)
edit container icons
infoScreenObject()
this one is called from the info button in the repository not very nice to set cmdClass/Cmd manually,...
editMapSettingsObject()
Edit Map Settings.
modifyItemGUI($a_item_list_gui, $a_item_data, $a_show_path)
Modify Item ListGUI for presentation in container @global type $tree.
createMailSignature()
Create a course mail signature.
addContentTab()
Add content tab.
setSubTabs($a_tab)
set sub tabs
unsubscribeObject()
unsubscribe from group
updateGroupIconsObject()
update group icons
readMemberData($ids, $selected_columns=null)
updateGroupTypeObject()
change group type
static _goto($a_target, $a_add="")
goto target group
editObject(ilPropertyFormGUI $a_form=null)
Edit object.
viewObject()
list childs of current object
setSideColumnReturn()
Set return point for side column actions.
getLocalRoles()
returns all local roles [role_id] => title
leaveObject()
leave Group @access public
initHeaderAction($a_sub_type=null, $a_sub_id=null)
Add file manager link.
initForm($a_mode='edit')
init create/edit form
executeCommand()
execute command note: this method is overwritten in all container objects
updateInfoObject()
update info
const MAIL_ALLOWED_TUTORS
static translateViewMode($a_obj_id, $a_view_mode, $a_ref_id=null)
translate view mode
static getAvailablePortfolioLinksForUserIds(array $a_owner_ids, $a_back_url=null)
static _getTranslation($a_role_title)
static getContentStylePath($a_style_id)
get content style path
static _enabledLearningProgress()
check wether learing progress is enabled or not
static _enabledUserRelatedData()
check wether user related tracking is enabled or not
static _lookupLogin($a_user_id)
lookup login
static _lookupName($a_user_id)
lookup user name
static _readUsersProfileData($a_user_ids)
STATIC METHOD get user data of selected users.
GUI class for the workflow of copying objects.
checkPermission($a_perm, $a_cmd="", $a_type="", $a_ref_id=null)
Check permission and redirect on error.
static _gotoRepositoryNode($a_ref_id, $a_cmd="frameset")
Goto repository root.
static _gotoRepositoryRoot($a_raise_error=false)
Goto repository root.
getCreationMode()
get creation mode
initDidacticTemplate(ilPropertyFormGUI $form)
Show didactic template types.
addHeaderAction()
Add header action menu.
static getInstance($a_obj_id)
GUI class for service settings (calendar, notes, comments)
const AUTO_RATING_NEW_OBJECTS
static initServiceSettingsForm($a_obj_id, ilPropertyFormGUI $form, $services)
Init service settings form.
static updateServiceSettingsForm($a_obj_id, ilPropertyFormGUI $form, $services)
Update service settings.
const CALENDAR_VISIBILITY
Class ilObject Basic functions for all objects.
static _lookupObjId($a_id)
const TITLE_LENGTH
max length of object title
update()
update object in db
static _lookupTitle($a_id)
lookup object title
getRefId()
get reference id @access public
getId()
get object id @access public
static _lookupType($a_id, $a_reference=false)
lookup object type
New PermissionGUI (extends from old ilPermission2GUI) RBAC related output.
static _getInstance()
Get instance of ilPrivacySettings.
GUI class for public user profile presentation.
This class represents an option in a radio group.
This class represents a text area property in a property form.
This class represents a text property in a property form.
@ilCtrl_Calls ilUsersGalleryGUI: ilPublicUserProfileGUI @ilCtrl_isCalledBy ilUsersGalleryGUI: ilCours...
Class ilUsersGalleryParticipants.
static sendQuestion($a_info="", $a_keep=false)
Send Question to Screen.
static sendSuccess($a_info="", $a_keep=false)
Send Success Message to Screen.
static redirect($a_script)
http redirect to other script
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
static makeClickable($a_text, $detectGotoLinks=false)
makeClickable In Texten enthaltene URLs und Mail-Adressen klickbar machen
static stripSlashes($a_str, $a_strip_html=true, $a_allow="")
strip slashes if magic qoutes is enabled
static getImagePath($img, $module_path="", $mode="output", $offline=false)
get image path (for images located in a template directory)
static _isOnList($a_usr_id, $a_obj_id)
Check if a user on the waiting list.
$GLOBALS['loaded']
Global hash that tracks already loaded includes.
redirection script todo: (a better solution should control the processing via a xml file)