5include_once 
"./Services/Container/classes/class.ilContainerGUI.php";
 
    6include_once(
'./Modules/Group/classes/class.ilObjGroup.php');
 
   36    public function __construct($a_data, $a_id, $a_call_by_reference, $a_prepare_output = 
false)
 
   45        $this->lng->loadLanguageModule(
'grp');
 
   46        $this->lng->loadLanguageModule(
'obj');
 
   57        $ilAccess = 
$DIC[
'ilAccess'];
 
   58        $ilNavigationHistory = 
$DIC[
'ilNavigationHistory'];
 
   60        $ilToolbar = 
$DIC[
'ilToolbar'];
 
   62        $next_class = $this->ctrl->getNextClass($this);
 
   63        $cmd = $this->ctrl->getCmd();
 
   68            $ilAccess->checkAccess(
"read", 
"", 
$_GET[
"ref_id"])) {
 
   69            include_once(
"./Services/Link/classes/class.ilLink.php");
 
   70            $ilNavigationHistory->addItem(
 
   78        if ($next_class == 
"" && $cmd == 
"" && $this->object->isNewsTimelineLandingPageEffective()
 
   79            && $ilAccess->checkAccess(
"read", 
"", 
$_GET[
"ref_id"])) {
 
   80            $this->ctrl->redirectbyclass(
"ilnewstimelinegui");
 
   83        switch ($next_class) {
 
   85                $ru = new \ilRepUtilGUI($this);
 
   86                $this->ctrl->setReturn($this, 
'trash');
 
   87                $this->ctrl->forwardCommand($ru);
 
   90            case 'illtiproviderobjectsettinggui':
 
   92                $this->tabs_gui->activateTab(
'settings');
 
   93                $this->tabs_gui->activateSubTab(
'lti_provider');
 
   95                $lti_gui->setCustomRolesForSelection(
$GLOBALS[
'DIC']->rbac()->review()->
getLocalRoles($this->object->getRefId()));
 
   96                $lti_gui->offerLTIRolesForSelection(
false);
 
   97                $this->ctrl->forwardCommand($lti_gui);
 
  101            case 'ilgroupmembershipgui':
 
  103                $this->tabs_gui->activateTab(
'members');
 
  105                include_once 
'./Modules/Group/classes/class.ilGroupMembershipGUI.php';
 
  107                $this->ctrl->forwardCommand($mem_gui);
 
  111            case 'ilgroupregistrationgui':
 
  112                $this->ctrl->setReturn($this, 
'');
 
  113                $this->tabs_gui->setTabActive(
'join');
 
  114                include_once(
'./Modules/Group/classes/class.ilGroupRegistrationGUI.php');
 
  116                $this->ctrl->forwardCommand($registration);
 
  119            case 'ilpermissiongui':
 
  120                $this->tabs_gui->activateTab(
'perm_settings');
 
  121                include_once(
"Services/AccessControl/classes/class.ilPermissionGUI.php");
 
  123                $ret = &$this->ctrl->forwardCommand($perm_gui);
 
  126            case "ilinfoscreengui":
 
  130            case "illearningprogressgui":
 
  131                include_once 
'./Services/Tracking/classes/class.ilLearningProgressGUI.php';
 
  135                    $this->object->getRefId(),
 
  138                $this->ctrl->forwardCommand($new_gui);
 
  139                $this->tabs_gui->setTabActive(
'learning_progress');
 
  142            case 'ilobjcoursegroupinggui':
 
  145                include_once 
'./Modules/Course/classes/class.ilObjCourseGroupingGUI.php';
 
  146                $this->ctrl->setReturn($this, 
'edit');
 
  148                $this->ctrl->forwardCommand($crs_grp_gui);
 
  150                $this->tabs_gui->setTabActive(
'settings');
 
  151                $this->tabs_gui->setSubTabActive(
'groupings');
 
  154            case 'ilcoursecontentgui':
 
  156                include_once 
'./Modules/Course/classes/class.ilCourseContentGUI.php';
 
  158                $this->ctrl->forwardCommand($course_content_obj);
 
  161            case 'ilpublicuserprofilegui':
 
  162                require_once 
'./Services/User/classes/class.ilPublicUserProfileGUI.php';
 
  164                $this->tabs_gui->setTabActive(
'group_members');
 
  165                $this->tabs_gui->setSubTabActive(
'grp_members_gallery');
 
  167                if (
$_GET[
"back_url"] == 
"") {
 
  168                    $profile_gui->setBackUrl($this->ctrl->getLinkTargetByClass([
"ilGroupMembershipGUI", 
"ilUsersGalleryGUI"], 
'view'));
 
  170                $html = $this->ctrl->forwardCommand($profile_gui);
 
  171                $this->tpl->setVariable(
"ADM_CONTENT", $html);
 
  175                $this->tabs_gui->setTabActive(
'none');
 
  177                include_once(
"./Services/Style/Content/classes/class.ilObjStyleSheet.php");
 
  178                $this->tpl->setVariable(
 
  179                    "LOCATION_CONTENT_STYLESHEET",
 
  186            case "ilcontainerpagegui":
 
  189                    $this->tpl->setContent(
$ret);
 
  193            case 'ilobjectcopygui':
 
  194                include_once 
'./Services/Object/classes/class.ilObjectCopyGUI.php';
 
  197                $this->ctrl->forwardCommand($cp);
 
  200            case "ilobjstylesheetgui":
 
  204            case 'ilobjectcustomuserfieldsgui':
 
  205                include_once 
'./Services/Membership/classes/class.ilObjectCustomUserFieldsGUI.php';
 
  208                $this->tabs_gui->setTabActive(
'settings');
 
  209                $this->tabs_gui->activateSubTab(
'grp_custom_user_fields');
 
  210                $this->ctrl->forwardCommand($cdf_gui);
 
  213            case 'ilmemberagreementgui':
 
  214                include_once(
'Services/Membership/classes/class.ilMemberAgreementGUI.php');
 
  215                $this->ctrl->setReturn($this, 
'');
 
  216                $this->tabs_gui->setTabActive(
'view_content');
 
  218                $this->ctrl->forwardCommand($agreement);
 
  222                $this->tabs_gui->setTabActive(
'export');
 
  223                include_once 
'./Services/Export/classes/class.ilExportGUI.php';
 
  225                $exp->addFormat(
'xml');
 
  226                $this->ctrl->forwardCommand($exp);
 
  229            case "ilcommonactiondispatchergui":
 
  230                include_once(
"Services/Object/classes/class.ilCommonActionDispatcherGUI.php");
 
  232                $this->ctrl->forwardCommand($gui);
 
  235            case 'ilobjectservicesettingsgui':
 
  236                $this->ctrl->setReturn($this, 
'edit');
 
  238                $this->tabs_gui->activateTab(
'settings');
 
  239                $this->tabs_gui->activateSubTab(
'tool_settings');
 
  241                include_once 
'./Services/Object/classes/class.ilObjectServiceSettingsGUI.php';
 
  244                    $this->object->getId(),
 
  249                $this->ctrl->forwardCommand(
$service);
 
  252            case 'ilmailmembersearchgui':
 
  253                include_once 
'Services/Mail/classes/class.ilMail.php';
 
  256                if (!($ilAccess->checkAccess(
'manage_members', 
'', $this->object->getRefId()) ||
 
  258                    $rbacsystem->checkAccess(
'internal_mail', $mail->getMailObjectReferenceId())) {
 
  259                    $ilErr->raiseError($this->lng->txt(
"msg_no_perm_read"), 
$ilErr->MESSAGE);
 
  262                $this->tabs_gui->setTabActive(
'members');
 
  264                include_once 
'./Services/Contact/classes/class.ilMailMemberSearchGUI.php';
 
  265                include_once 
'./Services/Contact/classes/class.ilMailMemberGroupRoles.php';
 
  269                $this->ctrl->forwardCommand($mail_search);
 
  272            case 'ilbadgemanagementgui':
 
  273                $this->tabs_gui->setTabActive(
'obj_tool_setting_badges');
 
  274                include_once 
'Services/Badge/classes/class.ilBadgeManagementGUI.php';
 
  276                $this->ctrl->forwardCommand($bgui);
 
  279            case "ilcontainernewssettingsgui":
 
  281                $this->tabs_gui->setTabActive(
'settings');
 
  282                $this->tabs_gui->activateSubTab(
'obj_news_settings');
 
  283                include_once(
"./Services/Container/classes/class.ilContainerNewsSettingsGUI.php");
 
  285                $news_set_gui->setTimeline(
true);
 
  286                $news_set_gui->setCronNotifications(
true);
 
  287                $news_set_gui->setHideByDate(
true);
 
  288                $this->ctrl->forwardCommand($news_set_gui);
 
  291            case "ilnewstimelinegui":
 
  293                $this->tabs_gui->setTabActive(
'news_timeline');
 
  294                include_once(
"./Services/News/classes/class.ilNewsTimelineGUI.php");
 
  296                $t->setUserEditAll($ilAccess->checkAccess(
'write', 
'', $this->object->getRefId(), 
'grp'));
 
  298                $this->ctrl->forwardCommand($t);
 
  299                include_once 
'Services/Tracking/classes/class.ilLearningProgress.php';
 
  302                    $this->object->getId(),
 
  303                    $this->object->getRefId(),
 
  308            case "ilcontainerskillgui":
 
  309                $this->tabs_gui->activateTab(
'obj_tool_setting_skills');
 
  310                include_once(
"./Services/Container/Skills/classes/class.ilContainerSkillGUI.php");
 
  312                $this->ctrl->forwardCommand($gui);
 
  315            case 'ilcalendarpresentationgui':
 
  316                include_once(
'./Services/Calendar/classes/class.ilCalendarPresentationGUI.php');
 
  318                $ret = $this->ctrl->forwardCommand($cal);
 
  321            case 'ilobjectmetadatagui':
 
  322                if (!$ilAccess->checkAccess(
'write', 
'', $this->object->getRefId())) {
 
  323                    $ilErr->raiseError($this->lng->txt(
'permission_denied'), 
$ilErr->WARNING);
 
  325                $this->tabs_gui->activateTab(
'meta_data');
 
  330            case 'ilobjecttranslationgui':
 
  333                $this->tabs->activateTab(
"settings");
 
  334                include_once(
"./Services/Object/classes/class.ilObjectTranslationGUI.php");
 
  336                $this->ctrl->forwardCommand($transgui);
 
  343                        !$ilAccess->checkAccess(
'visible', 
'', $this->object->getRefId(), 
'grp') and
 
  344                        !$ilAccess->checkAccess(
'read', 
'', $this->object->getRefId(), 
'grp')) {
 
  345                    $ilErr->raiseError($this->lng->txt(
"msg_no_perm_read"), 
$ilErr->MESSAGE);
 
  349                if ($cmd == 
'infoScreenGoto') {
 
  350                    if ($this->object->isRegistrationEnabled()) {
 
  359                    && !
$rbacsystem->checkAccess(
'read', $this->object->getRefId()) && $cmd != 
'infoScreen')
 
  362                    if (!
$rbacsystem->checkAccess(
'join', $this->object->getRefId())) {
 
  363                        $this->ctrl->redirect($this, 
"infoScreen");
 
  365                        include_once(
'./Modules/Group/classes/class.ilGroupRegistrationGUI.php');
 
  366                        $this->ctrl->redirectByClass(
"ilGroupRegistrationGUI", 
"show");
 
  388        include_once 
'Services/Tracking/classes/class.ilLearningProgress.php';
 
  391            $this->object->getId(),
 
  392            $this->object->getRefId(),
 
  397            $this->object->getId(),
 
  398            $this->object->getId(),
 
  403        if (strtolower(
$_GET[
"baseClass"]) == 
"iladministrationgui") {
 
  404            parent::viewObject();
 
  409            include_once(
'Services/Membership/classes/class.ilMemberAgreementGUI.php');
 
  410            $this->tabs_gui->setTabActive(
'view_content');
 
  411            $this->ctrl->setReturn($this, 
'view');
 
  413            $this->ctrl->setCmdClass(get_class($agreement));
 
  414            $this->ctrl->forwardCommand($agreement);
 
  418        $this->tabs_gui->setTabActive(
'view_content');
 
  429        $ilTabs = 
$DIC[
'ilTabs'];
 
  431        $ilTabs->activateTab(
"view_content");
 
  432        $ret = parent::renderObject();
 
  450        if ($course_ref_id = 
$tree->checkForParentType($this->object->getRefId(), 
'crs')) {
 
  451            include_once(
"./Modules/Course/classes/class.ilObjCourse.php");
 
  452            include_once(
"./Modules/Course/classes/class.ilObjCourseGUI.php");
 
  456                'ilcoursecontentgui',
 
  462                $this->object->getRefId()
 
  484                $GLOBALS[
'DIC'][
'tree']->checkForParentType($new_object->
getRefId(), 
'crs', 
true) ||
 
  485                $GLOBALS[
'DIC'][
'tree']->checkForParentType($new_object->
getRefId(), 
'grp', 
true)
 
  491        include_once 
'./Services/Container/classes/class.ilContainerSortingSettings.php';
 
  493        $sort->setSortMode($sort_mode);
 
  498        include_once 
'./Modules/Group/classes/class.ilGroupParticipants.php';
 
  501        $members_obj->updateNotification(
$ilUser->getId(), 
$ilSetting->get(
'mail_grp_admin_notification', 
true));
 
  502        $members_obj->updateContact(
$ilUser->getId(), 
true);
 
  504        ilUtil::sendSuccess($this->lng->txt(
"object_added"), 
true);
 
  506            $this->ctrl->setParameter($this, 
"ref_id", $new_object->
getRefId());
 
  507            $this->ctrl->redirect($this, 
'edit');
 
  523        $this->tabs_gui->setTabActive(
'settings');
 
  524        $this->tabs_gui->setSubTabActive(
'grp_settings');
 
  530        $this->tpl->setVariable(
'ADM_CONTENT', $a_form->getHTML());
 
  542        include_once 
'./Services/DidacticTemplate/classes/class.ilDidacticTemplateUtils.php';
 
  544            $this->object->getRefId(),
 
  545            (
int) $_REQUEST[
'grp_type']
 
  548        ilUtil::sendSuccess($this->lng->txt(
'settings_saved'), 
true);
 
  549        $this->ctrl->redirect($this, 
'edit');
 
  565        if ($form->checkInput()) {
 
  567            include_once 
'./Services/DidacticTemplate/classes/class.ilDidacticTemplateObjSettings.php';
 
  571            $new_type_info = $form->getInput(
'didactic_type');
 
  572            if ($new_type_info) {
 
  573                $new_type = explode(
'_', $form->getInput(
'didactic_type'));
 
  574                $new_type = $new_type[1];
 
  576                $modified = ($new_type != $old_type);
 
  580            $old_autofill = $this->
object->hasWaitingListAutoFill();
 
  587            $this->
object->enableUnlimitedRegistration((
bool) !$form->getInput(
'reg_limit_time'));
 
  588            $this->
object->enableMembershipLimitation((
bool) $form->getInput(
'registration_membership_limited'));
 
  589            $this->
object->setMinMembers((
int) $form->getInput(
'registration_min_members'));
 
  590            $this->
object->setMaxMembers((
int) $form->getInput(
'registration_max_members'));
 
  591            $this->
object->enableRegistrationAccessCode((
bool) $form->getInput(
'reg_code_enabled'));
 
  592            $this->
object->setRegistrationAccessCode($form->getInput(
'reg_code'));
 
  593            $this->
object->setViewMode($form->getInput(
'view_mode'));
 
  594            $this->
object->setMailToMembersType((
int) $form->getInput(
'mail_type'));
 
  595            $this->
object->setShowMembers((
int) $form->getInput(
'show_members'));
 
  596            $this->
object->setAutoNotification((
bool) $form->getInput(
'auto_notification'));
 
  599            $grp_period = $form->getItemByPostVar(
"period");
 
  602            $this->
object->setPeriod(
 
  603                $grp_period->getStart(),
 
  604                $grp_period->getEnd()
 
  607            $reg = $form->getItemByPostVar(
"reg");
 
  609                $this->
object->enableUnlimitedRegistration(
false);
 
  611                $this->
object->enableUnlimitedRegistration(
true);
 
  614            $this->
object->setRegistrationStart($reg->getStart());
 
  615            $this->
object->setRegistrationEnd($reg->getEnd());
 
  617            $cancel_end = $form->getItemByPostVar(
"cancel_end");
 
  618            $this->
object->setCancellationEnd($cancel_end->getDate());
 
  620            switch ((
int) 
$_POST[
'waiting_list']) {
 
  622                    $this->
object->enableWaitingList(
true);
 
  623                    $this->
object->setWaitingListAutoFill(
true);
 
  627                    $this->
object->enableWaitingList(
true);
 
  628                    $this->
object->setWaitingListAutoFill(
false);
 
  632                    $this->
object->enableWaitingList(
false);
 
  633                    $this->
object->setWaitingListAutoFill(
false);
 
  638            $obj_service->commonSettings()->legacyForm($form, $this->
object)->saveTitleIconVisibility();
 
  641            $obj_service->commonSettings()->legacyForm($form, $this->
object)->saveTopActionsVisibility();
 
  644            $obj_service->commonSettings()->legacyForm($form, $this->
object)->saveIcon();
 
  647            $obj_service->commonSettings()->legacyForm($form, $this->
object)->saveTileImage();
 
  653            $this->
object->update();
 
  656            include_once 
'./Services/Object/classes/class.ilObjectServiceSettingsGUI.php';
 
  658                $this->object->getId(),
 
  677                $this->object->hasWaitingListAutoFill()) {
 
  678                $this->
object->handleAutoFill();
 
  682            require_once(
'Services/Tracking/classes/class.ilChangeEvent.php');
 
  687                $this->object->getId(),
 
  694            include_once 
'Modules/Group/classes/class.ilECSGroupSettings.php';
 
  696            $ecs->handleSettingsUpdate();
 
  700            $form->setValuesByPost();
 
  707            if ($new_type == 0) {
 
  708                $new_type_txt = 
$GLOBALS[
'DIC'][
'lng']->txt(
'il_grp_status_open');
 
  710                include_once 
'./Services/DidacticTemplate/classes/class.ilDidacticTemplateSetting.php';
 
  712                $new_type_txt = $dtpl->getPresentationTitle(
$GLOBALS[
'DIC'][
'lng']->getLangKey());
 
  716            include_once 
'./Services/Utilities/classes/class.ilConfirmationGUI.php';
 
  719            $confirm->setFormAction($this->ctrl->getFormAction($this));
 
  723                $this->lng->txt(
'grp_info_new_grp_type') . 
': ' . $new_type_txt
 
  725            $confirm->addButton($this->lng->txt(
'grp_change_type'), 
'updateGroupType');
 
  726            $confirm->setCancel($this->lng->txt(
'cancel'), 
'edit');
 
  728            $this->tpl->setContent($confirm->getHTML());
 
  731            ilUtil::sendSuccess($this->lng->txt(
"msg_obj_modified"), 
true);
 
  732            $this->ctrl->redirect($this, 
'edit');
 
  747        $ilAccess = 
$DIC[
'ilAccess'];
 
  750        $this->tabs_gui->setTabActive(
'settings');
 
  751        $this->tabs_gui->setSubTabActive(
'grp_map_settings');
 
  753        include_once(
'./Services/Maps/classes/class.ilMapUtil.php');
 
  755            !$ilAccess->checkAccess(
"write", 
"", $this->object->getRefId())) {
 
  759        $latitude = $this->
object->getLatitude();
 
  760        $longitude = $this->
object->getLongitude();
 
  761        $zoom = $this->
object->getLocationZoom();
 
  764        if ($latitude == 0 && $longitude == 0 && $zoom == 0) {
 
  766            $latitude = $def[
"latitude"];
 
  767            $longitude = $def[
"longitude"];
 
  768            $zoom = $def[
"zoom"];
 
  772        include_once(
"./Services/Form/classes/class.ilPropertyFormGUI.php");
 
  774        $form->setFormAction(
$ilCtrl->getFormAction($this));
 
  776        $form->setTitle($this->lng->txt(
"grp_map_settings"));
 
  780            $this->lng->txt(
"grp_enable_map"),
 
  783        $public->setValue(
"1");
 
  784        $public->setChecked($this->object->getEnableGroupMap());
 
  785        $form->addItem($public);
 
  789            $this->lng->txt(
"grp_map_location"),
 
  792        $loc_prop->setLatitude($latitude);
 
  793        $loc_prop->setLongitude($longitude);
 
  794        $loc_prop->setZoom($zoom);
 
  795        $form->addItem($loc_prop);
 
  797        $form->addCommandButton(
"saveMapSettings", $this->lng->txt(
"save"));
 
  799        $this->tpl->setVariable(
"ADM_CONTENT", $form->getHTML());
 
  813        $this->
object->update();
 
  815        $ilCtrl->redirect($this, 
"editMapSettings");
 
  830        $ilAccess = 
$DIC[
'ilAccess'];
 
  835        $this->tabs_gui->setTabActive(
'settings');
 
  836        $this->tabs_gui->setSubTabActive(
'grp_info_settings');
 
  839        $this->tpl->setContent($form->getHTML());
 
  850        include_once(
"./Services/Form/classes/class.ilPropertyFormGUI.php");
 
  852        $form->setFormAction($this->ctrl->getFormAction($this, 
'updateInfo'));
 
  853        $form->setTitle($this->lng->txt(
'grp_general_informations'));
 
  854        $form->addCommandButton(
'updateInfo', $this->lng->txt(
'save'));
 
  855        $form->addCommandButton(
'cancel', $this->lng->txt(
'cancel'));
 
  858        $area->setInfo($this->lng->txt(
'grp_information_info'));
 
  859        $area->setValue($this->object->getInformation());
 
  862        $form->addItem($area);
 
  878        $this->
object->update();
 
  880        ilUtil::sendSuccess($this->lng->txt(
"settings_saved"));
 
  888        include_once(
'./Services/PrivacySecurity/classes/class.ilPrivacySettings.php');
 
  891        include_once 
'./Services/Tracking/classes/class.ilObjUserTracking.php';
 
  892        $this->show_tracking =
 
  897        if ($this->show_tracking) {
 
  898            include_once(
'./Services/Object/classes/class.ilObjectLP.php');
 
  900            $this->show_tracking = $olp->isActive();
 
  903        if ($this->show_tracking) {
 
  904            include_once 
'Services/Tracking/classes/class.ilLPStatusWrapper.php';
 
  910        if ($privacy->enabledGroupAccessTimes()) {
 
  911            include_once(
'./Services/Tracking/classes/class.ilLearningProgress.php');
 
  915        $do_prtf = (is_array($selected_columns) &&
 
  916            in_array(
'prtf', $selected_columns) &&
 
  919            include_once 
"Modules/Portfolio/classes/class.ilObjPortfolio.php";
 
  922                $this->ctrl->getLinkTarget($this, 
"members")
 
  927        foreach ($ids as $usr_id) {
 
  929            $tmp_data[
'firstname'] = 
$name[
'firstname'];
 
  930            $tmp_data[
'lastname'] = 
$name[
'lastname'];
 
  932            $tmp_data[
'notification'] = $this->
object->members_obj->isNotificationEnabled($usr_id) ? 1 : 0;
 
  933            $tmp_data[
'contact'] = $this->
object->members_obj->isContact($usr_id) ? 1 : 0;
 
  934            $tmp_data[
'usr_id'] = $usr_id;
 
  937            foreach ((array) $profile_data[$usr_id] as $field => $value) {
 
  938                $tmp_data[$field] = $value;
 
  941            if ($this->show_tracking) {
 
  942                if (in_array($usr_id, $completed)) {
 
  944                } elseif (in_array($usr_id, $in_progress)) {
 
  946                } elseif (in_array($usr_id, 
$failed)) {
 
  953            if ($privacy->enabledGroupAccessTimes()) {
 
  954                if (isset($progress[$usr_id][
'ts']) and $progress[$usr_id][
'ts']) {
 
  958                    $tmp_data[
'access_time_unix'] = $tmp_date->get(
IL_CAL_UNIX);
 
  960                    $tmp_data[
'access_time'] = $this->lng->txt(
'no_date');
 
  961                    $tmp_data[
'access_time_unix'] = 0;
 
  966                $tmp_data[
'prtf'] = $all_prtf[$usr_id];
 
  969            $members[$usr_id] = $tmp_data;
 
  971        return $members ? $members : array();
 
  987        if ($part->isLastAdmin(
$ilUser->getId())) {
 
  993        $this->tabs_gui->setTabActive(
'grp_btn_unsubscribe');
 
  995        include_once 
"Services/Utilities/classes/class.ilConfirmationGUI.php";
 
  997        $cgui->setHeaderText($this->lng->txt(
'grp_dismiss_myself'));
 
  998        $cgui->setFormAction($this->ctrl->getFormAction($this));
 
  999        $cgui->setCancel($this->lng->txt(
"cancel"), 
"cancel");
 
 1000        $cgui->setConfirm($this->lng->txt(
"grp_btn_unsubscribe"), 
"unsubscribe");
 
 1001        $this->tpl->setContent($cgui->getHTML());
 
 1020        $this->
object->members_obj->delete(
$ilUser->getId());
 
 1022        include_once 
'./Modules/Group/classes/class.ilGroupMembershipMailNotification.php';
 
 1023        $this->
object->members_obj->sendNotification(
 
 1027        $this->
object->members_obj->sendNotification(
 
 1032        ilUtil::sendSuccess($this->lng->txt(
'grp_msg_membership_annulled'), 
true);
 
 1036            $tree->getParentId($this->object->getRefId())
 
 1038        $ilCtrl->redirectByClass(
"ilrepositorygui", 
"");
 
 1049        $this->tabs_gui->addTab(
 
 1051            $this->lng->txt(
"content"),
 
 1052            $this->ctrl->getLinkTarget($this, 
"view")
 
 1064        $ilAccess = 
$DIC[
'ilAccess'];
 
 1066        $ilHelp = 
$DIC[
'ilHelp'];
 
 1068        $ilHelp->setScreenIdComponent(
"grp");
 
 1070        if ($ilAccess->checkAccess(
'read', 
'', $this->ref_id)) {
 
 1071            if ($this->object->isNewsTimelineEffective()) {
 
 1072                if (!$this->object->isNewsTimelineLandingPageEffective()) {
 
 1075                $this->tabs_gui->addTab(
 
 1077                    $lng->txt(
"cont_news_timeline_tab"),
 
 1078                    $this->ctrl->getLinkTargetByClass(
"ilnewstimelinegui", 
"show")
 
 1080                if ($this->object->isNewsTimelineLandingPageEffective()) {
 
 1088            $ilAccess->checkAccess(
'visible', 
'', $this->ref_id) ||
 
 1089            $ilAccess->checkAccess(
'join', 
'', $this->ref_id) ||
 
 1090            $ilAccess->checkAccess(
'read', 
'', $this->ref_id)
 
 1092            $this->tabs_gui->addTarget(
 
 1094                $this->ctrl->getLinkTargetByClass(
 
 1095                    array(
"ilobjgroupgui", 
"ilinfoscreengui"),
 
 1106        if ($ilAccess->checkAccess(
'write', 
'', $this->object->getRefId())) {
 
 1107            $this->tabs_gui->addTarget(
 
 1109                $this->ctrl->getLinkTarget($this, 
"edit"),
 
 1110                array(
"edit", 
"editMapSettings"),
 
 1116        include_once 
'./Modules/Group/classes/class.ilGroupParticipants.php';
 
 1120        include_once 
'./Modules/Group/classes/class.ilGroupMembershipGUI.php';
 
 1122        $membership_gui->addMemberTab($this->tabs_gui, $is_participant);
 
 1126        if ($ilAccess->checkAccess(
'write', 
'', $this->ref_id)) {
 
 1127            include_once 
'Services/Badge/classes/class.ilBadgeHandler.php';
 
 1129                $this->tabs_gui->addTarget(
 
 1130                    "obj_tool_setting_badges",
 
 1131                    $this->ctrl->getLinkTargetByClass(
"ilbadgemanagementgui", 
""),
 
 1133                    "ilbadgemanagementgui" 
 1139        include_once(
"./Services/Object/classes/class.ilObjectServiceSettingsGUI.php");
 
 1141            $this->object->getId(),
 
 1145            $this->tabs_gui->addTarget(
 
 1146                "obj_tool_setting_skills",
 
 1147                $this->ctrl->getLinkTargetByClass(array(
"ilcontainerskillgui", 
"ilcontskillpresentationgui"), 
""),
 
 1149                array(
"ilcontainerskillgui", 
"ilcontskillpresentationgui", 
"ilcontskilladmingui")
 
 1154        include_once 
'./Services/Tracking/classes/class.ilLearningProgressAccess.php';
 
 1156            $this->tabs_gui->addTarget(
 
 1157                'learning_progress',
 
 1158                $this->ctrl->getLinkTargetByClass(array(
'ilobjgroupgui',
'illearningprogressgui'), 
''),
 
 1160                array(
'illplistofobjectsgui',
'illplistofsettingsgui',
'illearningprogressgui',
'illplistofprogressgui')
 
 1165        if ($ilAccess->checkAccess(
'write', 
'', $this->ref_id)) {
 
 1167            $tab_link = $md_gui->getTab();
 
 1168            if ($tab_link !== 
null) {
 
 1169                $this->tabs_gui->addTab(
 
 1171                    $this->lng->txt(
'meta_data'),
 
 1174                    'ilObjectMetaDataGUI' 
 1180        if ($ilAccess->checkAccess(
'write', 
'', $this->object->getRefId())) {
 
 1181            $this->tabs_gui->addTarget(
 
 1183                $this->ctrl->getLinkTargetByClass(
'ilexportgui', 
''),
 
 1192        if ($ilAccess->checkAccess(
'join', 
'', $this->object->getRefId()) and
 
 1193            !$this->object->members_obj->isAssigned(
$ilUser->getId())) {
 
 1194            include_once 
'./Modules/Group/classes/class.ilGroupWaitingList.php';
 
 1196                $this->tabs_gui->addTab(
 
 1198                    $this->lng->txt(
'membership_leave'),
 
 1199                    $this->ctrl->getLinkTargetByClass(
'ilgroupregistrationgui', 
'show', 
'')
 
 1202                $this->tabs_gui->addTarget(
 
 1204                    $this->ctrl->getLinkTargetByClass(
'ilgroupregistrationgui', 
"show"),
 
 1210        if ($ilAccess->checkAccess(
'leave', 
'', $this->object->getRefId()) and
 
 1211            $this->object->members_obj->isMember(
$ilUser->getId())) {
 
 1212            $this->tabs_gui->addTarget(
 
 1213                "grp_btn_unsubscribe",
 
 1214                $this->ctrl->getLinkTarget($this, 
"leave"),
 
 1228        $this->ctrl->setCmd(
"showSummary");
 
 1229        $this->ctrl->setCmdClass(
"ilinfoscreengui");
 
 1244        $this->tabs_gui->setTabActive(
'info_short');
 
 1251            $this->object->getId(),
 
 1252            $this->object->getId(),
 
 1256        include_once(
"./Services/InfoScreen/classes/class.ilInfoScreenGUI.php");
 
 1259        if (strlen($this->object->getInformation())) {
 
 1260            $info->addSection($this->lng->txt(
'grp_general_informations'));
 
 1261            $info->addProperty($this->lng->txt(
'grp_information'), nl2br(
 
 1266        $info->enablePrivateNotes();
 
 1267        $info->enableLearningProgress(
true);
 
 1270        $record_gui->setInfoObject($info);
 
 1271        $record_gui->parse();
 
 1274        $info->addMetaDataSections($this->object->getId(), 0, $this->object->getType());
 
 1279        $contacts = $parts->getContacts();
 
 1280        if (count($contacts) > 0) {
 
 1281            $info->addSection($this->lng->txt(
"grp_mem_contacts"));
 
 1282            foreach ($contacts as 
$c) {
 
 1284                $pgui->setBackUrl($this->ctrl->getLinkTargetByClass(
"ilinfoscreengui"));
 
 1285                $pgui->setEmbedded(
true);
 
 1286                $info->addProperty(
"", $pgui->getHTML());
 
 1291        $info->addSection($this->lng->txt(
'group_registration'));
 
 1292        $info->showLDAPRoleGroupMappingInfo();
 
 1294        if (!$this->object->isRegistrationEnabled()) {
 
 1296                $this->lng->txt(
'group_registration_mode'),
 
 1297                $this->lng->txt(
'grp_reg_deac_info_screen')
 
 1300            switch ($this->object->getRegistrationType()) {
 
 1303                        $this->lng->txt(
'group_registration_mode'),
 
 1304                        $this->lng->txt(
'grp_reg_direct_info_screen')
 
 1310                        $this->lng->txt(
'group_registration_mode'),
 
 1311                        $this->lng->txt(
'grp_reg_req_info_screen')
 
 1317                        $this->lng->txt(
'group_registration_mode'),
 
 1318                        $this->lng->txt(
'grp_reg_passwd_info_screen')
 
 1329            if ($this->object->isRegistrationUnlimited()) {
 
 1331                    $this->lng->txt(
'group_registration_time'),
 
 1332                    $this->lng->txt(
'grp_registration_unlimited')
 
 1334            } elseif ($this->object->getRegistrationStart()->getUnixTime() < time()) {
 
 1336                    $this->lng->txt(
"group_registration_time"),
 
 1337                    $this->lng->txt(
'cal_until') . 
' ' .
 
 1340            } elseif ($this->object->getRegistrationStart()->getUnixTime() >= time()) {
 
 1342                    $this->lng->txt(
"group_registration_time"),
 
 1343                    $this->lng->txt(
'cal_from') . 
' ' .
 
 1347            if ($this->object->isMembershipLimited()) {
 
 1348                if ($this->object->getMinMembers()) {
 
 1350                        $this->lng->txt(
"mem_min_users"),
 
 1351                        $this->object->getMinMembers()
 
 1354                if ($this->object->getMaxMembers()) {
 
 1355                    include_once 
'./Modules/Group/classes/class.ilObjGroupAccess.php';
 
 1359                        $this->lng->txt(
'mem_free_places'),
 
 1360                        $reg_info[
'reg_info_free_places']
 
 1365            if ($this->object->getCancellationEnd()) {
 
 1367                    $this->lng->txt(
'grp_cancellation_end'),
 
 1373        if ($this->object->getStart()) {
 
 1375                $this->lng->txt(
'grp_period'),
 
 1377                    $this->object->getStart(),
 
 1378                    $this->object->getEnd()
 
 1385        include_once(
'Services/PrivacySecurity/classes/class.ilPrivacySettings.php');
 
 1388        include_once(
'Modules/Course/classes/Export/class.ilCourseDefinedFieldDefinition.php');
 
 1390            include_once(
'Services/PrivacySecurity/classes/class.ilExportFieldsInfo.php');
 
 1394            $this->lng->loadLanguageModule(
'ps');
 
 1395            $info->addSection($this->lng->txt(
'grp_user_agreement_info'));
 
 1396            $info->addProperty($this->lng->txt(
'ps_export_data'), $field_info->exportableFieldsToInfoString());
 
 1399                $info->addProperty($this->lng->txt(
'ps_grp_user_fields'), $fields);
 
 1405        $this->ctrl->forwardCommand($info);
 
 1413        include_once 
"Services/Membership/classes/class.ilMembershipNotifications.php";
 
 1415        if ($noti->canCurrentUserEdit()) {
 
 1416            if ((
bool) $_REQUEST[
"grp_ntf"]) {
 
 1417                $noti->activateUser();
 
 1419                $noti->deactivateUser();
 
 1422        ilUtil::sendSuccess($this->lng->txt(
"settings_saved"), 
true);
 
 1423        $this->ctrl->redirect($this, 
"");
 
 1431        $GLOBALS[
'DIC'][
'ilCtrl']->redirectByClass(
'ilgroupmembershipgui');
 
 1438    public static function _goto($a_target, $a_add = 
"")
 
 1442        $ilAccess = 
$DIC[
'ilAccess'];
 
 1447        include_once 
'./Services/Membership/classes/class.ilMembershipRegistrationCodeUtils.php';
 
 1448        if (substr($a_add, 0, 5) == 
'rcode') {
 
 1449            if (
$ilUser->getId() == ANONYMOUS_USER_ID) {
 
 1452                    "login.php?target=" . 
$_GET[
"target"] . 
"&cmd=force_login&lang=" .
 
 1465        if ($a_add == 
"mem" && $ilAccess->checkAccess(
"manage_members", 
"", $a_target)) {
 
 1469        if ($ilAccess->checkAccess(
"read", 
"", $a_target)) {
 
 1473            if ($ilAccess->checkAccess(
"visible", 
"", $a_target)) {
 
 1476                if ($ilAccess->checkAccess(
"read", 
"", ROOT_FOLDER_ID)) {
 
 1478                        $lng->txt(
"msg_no_perm_read_item"),
 
 1496    public function initForm($a_mode = 
'edit', $a_omit_form_action = 
false)
 
 1502        $tree = $DIC[
'tree'];
 
 1504        include_once(
"./Services/Form/classes/class.ilPropertyFormGUI.php");
 
 1508        if (!$a_omit_form_action) {
 
 1511                    $form->setFormAction($this->ctrl->getFormAction($this, 
'update'));
 
 1515                    $form->setTableWidth(
'600px');
 
 1516                    $form->setFormAction($this->ctrl->getFormAction($this, 
'save'));
 
 1522        $this->initFormTitleDescription($form);
 
 1526        if ($a_mode == 
'edit') {
 
 1529            $this->lng->loadLanguageModule(
'mem');
 
 1530            $cdur->enableToggleFullTime(
 
 1531                $this->lng->txt(
'mem_period_without_time'),
 
 1532                !$this->object->getStartTimeIndication()
 
 1534            $cdur->setShowTime(
true);
 
 1535            $cdur->setInfo($this->lng->txt(
'grp_period_info'));
 
 1536            $cdur->setStart($this->object->getStart());
 
 1537            $cdur->setEnd($this->object->getEnd());
 
 1538            $form->addItem($cdur);
 
 1542            $pres->setTitle($this->lng->txt(
'grp_setting_header_registration'));
 
 1543            $form->addItem($pres);
 
 1546            $reg_type = 
new ilRadioGroupInputGUI($this->lng->txt(
'group_registration_mode'), 
'registration_type');
 
 1547            $reg_type->setValue($this->object->getRegistrationType());
 
 1550            $reg_type->addOption($opt_dir);
 
 1554            $pass->setRequired(
true);
 
 1555            $pass->setInfo($this->lng->txt(
'grp_reg_password_info'));
 
 1556            $pass->setValue($this->object->getPassword());
 
 1558            $pass->setMaxLength(32);
 
 1559            $opt_pass->addSubItem(
$pass);
 
 1560            $reg_type->addOption($opt_pass);
 
 1563            $reg_type->addOption($opt_req);
 
 1566            $reg_type->addOption($opt_deact);
 
 1569            $reg_code = 
new ilCheckboxInputGUI($this->lng->txt(
'grp_reg_code'), 
'reg_code_enabled');
 
 1570            $reg_code->setChecked($this->object->isRegistrationAccessCodeEnabled());
 
 1571            $reg_code->setValue(1);
 
 1572            $reg_code->setInfo($this->lng->txt(
'grp_reg_code_enabled_info'));
 
 1573            $form->addItem($reg_type);
 
 1576            if (!$this->object->getRegistrationAccessCode()) {
 
 1577                include_once 
'./Services/Membership/classes/class.ilMembershipRegistrationCodeUtils.php';
 
 1581            $reg_link->setValue($this->object->getRegistrationAccessCode());
 
 1582            $form->addItem($reg_link);
 
 1585            include_once 
'./Services/Link/classes/class.ilLink.php';
 
 1586            $val = 
ilLink::_getLink($this->object->getRefId(), $this->object->getType(), array(), 
'_rcode' . $this->object->getRegistrationAccessCode());
 
 1587            $link->setHTML(
'<span class="small">' . $val . 
'</span>');
 
 1588            $reg_code->addSubItem($link);
 
 1589            $form->addItem($reg_code);
 
 1592            $this->lng->loadLanguageModule(
'dateplaner');
 
 1593            include_once 
'./Services/Form/classes/class.ilDateDurationInputGUI.php';
 
 1595            $dur->setShowTime(
true);
 
 1596            $dur->setStart($this->object->getRegistrationStart());
 
 1597            $dur->setEnd($this->object->getRegistrationEnd());
 
 1598            $form->addItem($dur);
 
 1601            $cancel = 
new ilDateTimeInputGUI($this->lng->txt(
'grp_cancellation_end'), 
'cancel_end');
 
 1602            $cancel->setInfo($this->lng->txt(
'grp_cancellation_end_info'));
 
 1603            $cancel->setDate($this->object->getCancellationEnd());
 
 1604            $form->addItem($cancel);
 
 1607            $lim = 
new ilCheckboxInputGUI($this->lng->txt(
'reg_grp_max_members_short'), 
'registration_membership_limited');
 
 1610            $lim->setChecked($this->object->isMembershipLimited());
 
 1612            $min = 
new ilTextInputGUI($this->lng->txt(
'reg_grp_min_members'), 
'registration_min_members');
 
 1614            $min->setMaxLength(4);
 
 1615            $min->setValue($this->object->getMinMembers() ? $this->object->getMinMembers() : 
'');
 
 1616            $min->setInfo($this->lng->txt(
'grp_subscription_min_members_info'));
 
 1617            $lim->addSubItem($min);
 
 1619            $max = 
new ilTextInputGUI($this->lng->txt(
'reg_grp_max_members'), 
'registration_max_members');
 
 1620            $max->setValue($this->object->getMaxMembers() ? $this->object->getMaxMembers() : 
'');
 
 1623            $max->setMaxLength(4);
 
 1624            $max->setInfo($this->lng->txt(
'grp_reg_max_members_info'));
 
 1625            $lim->addSubItem($max);
 
 1640            $wait->addOption($option);
 
 1642            $option = 
new ilRadioOption($this->lng->txt(
'grp_waiting_list_no_autofill'), 1);
 
 1643            $option->setInfo($this->lng->txt(
'grp_waiting_list_info'));
 
 1644            $wait->addOption($option);
 
 1646            $option = 
new ilRadioOption($this->lng->txt(
'grp_waiting_list_autofill'), 2);
 
 1647            $option->setInfo($this->lng->txt(
'grp_waiting_list_autofill_info'));
 
 1648            $wait->addOption($option);
 
 1650            if ($this->object->hasWaitingListAutoFill()) {
 
 1652            } elseif ($this->object->isWaitingListEnabled()) {
 
 1656            $lim->addSubItem($wait);
 
 1658            $form->addItem($lim);
 
 1662            $parent_membership_ref_id = 0;
 
 1663            $hasParentMembership =
 
 1665                    $parent_membership_ref_id = 
$tree->checkForParentType($this->object->getRefId(), 
'crs', 
true)
 
 1669            $pres->setTitle($this->lng->txt(
'grp_setting_header_presentation'));
 
 1670            $form->addItem($pres);
 
 1673            $form = $obj_service->commonSettings()->legacyForm($form, $this->
object)->addTitleIconVisibility();
 
 1676            $form = $obj_service->commonSettings()->legacyForm($form, $this->
object)->addTopActionsVisibility();
 
 1679            $form = $obj_service->commonSettings()->legacyForm($form, $this->
object)->addIcon();
 
 1682            $form = $obj_service->commonSettings()->legacyForm($form, $this->
object)->addTileImage();
 
 1690            if ($hasParentMembership) {
 
 1692                $course_view_mode = 
'';
 
 1693                switch ($parent_view_mode) {
 
 1695                        $course_view_mode = 
': ' . $this->lng->txt(
'cntr_view_sessions');
 
 1699                        $course_view_mode = 
': ' . $this->lng->txt(
'cntr_view_simple');
 
 1703                        $course_view_mode = 
': ' . $this->lng->txt(
'cntr_view_by_type');
 
 1706                if ($course_view_mode) {
 
 1708                    $opt->setInfo($this->lng->txt(
'grp_view_inherit_info'));
 
 1709                    $view_type->addOption($opt);
 
 1720            $opt->setInfo($this->lng->txt(
'cntr_view_info_sessions'));
 
 1721            $view_type->addOption($opt);
 
 1724            $opt->setInfo($this->lng->txt(
'grp_view_info_simple'));
 
 1725            $view_type->addOption($opt);
 
 1728            $opt->setInfo($this->lng->txt(
'grp_view_info_by_type'));
 
 1729            $view_type->addOption($opt);
 
 1730            $form->addItem($view_type);
 
 1734            $sorting_settings = array();
 
 1735            if ($hasParentMembership) {
 
 1745            $feat->setTitle($this->lng->txt(
'obj_features'));
 
 1746            $form->addItem($feat);
 
 1748            include_once 
'./Services/Object/classes/class.ilObjectServiceSettingsGUI.php';
 
 1750                $this->object->getId(),
 
 1766            $mem->setChecked($this->object->getShowMembers());
 
 1767            $mem->setInfo($this->lng->txt(
'grp_show_members_info'));
 
 1768            $form->addItem($mem);
 
 1772            $mail_type->setValue($this->object->getMailToMembersType());
 
 1775                $this->lng->txt(
'grp_mail_tutors_only'),
 
 1777                $this->lng->txt(
'grp_mail_tutors_only_info')
 
 1779            $mail_type->addOption($mail_tutors);
 
 1782                $this->lng->txt(
'grp_mail_all'),
 
 1784                $this->lng->txt(
'grp_mail_all_info')
 
 1786            $mail_type->addOption($mail_all);
 
 1787            $form->addItem($mail_type);
 
 1790            $not = 
new ilCheckboxInputGUI($this->lng->txt(
'grp_auto_notification'), 
'auto_notification');
 
 1792            $not->setInfo($this->lng->txt(
'grp_auto_notification_info'));
 
 1793            $not->setChecked($this->object->getAutoNotification());
 
 1794            $form->addItem($not);
 
 1799                $form->setTitle($this->lng->txt(
'grp_new'));
 
 1802                $form->addCommandButton(
'save', $this->lng->txt(
'grp_new'));
 
 1803                $form->addCommandButton(
'cancel', $this->lng->txt(
'cancel'));
 
 1807                $form->setTitle($this->lng->txt(
'grp_edit'));
 
 1811                include_once 
'Modules/Group/classes/class.ilECSGroupSettings.php';
 
 1813                $ecs->addSettingsToForm($form, 
'grp');
 
 1815                $form->addCommandButton(
'update', $this->lng->txt(
'save'));
 
 1816                $form->addCommandButton(
'cancel', $this->lng->txt(
'cancel'));
 
 1835        $ilAccess = 
$DIC[
'ilAccess'];
 
 1840                $this->tabs_gui->addSubTabTarget(
 
 1842                    $this->ctrl->getLinkTarget($this, 
'edit'),
 
 1847                $this->tabs_gui->addSubTabTarget(
 
 1848                    "grp_info_settings",
 
 1849                    $this->ctrl->getLinkTarget($this, 
'editInfo'),
 
 1854                include_once(
"./Services/Maps/classes/class.ilMapUtil.php");
 
 1856                    $this->tabs_gui->addSubTabTarget(
 
 1858                        $this->ctrl->getLinkTarget($this, 
'editMapSettings'),
 
 1864                $this->tabs_gui->addSubTabTarget(
 
 1866                    $this->ctrl->getLinkTargetByClass(
'ilobjcoursegroupinggui', 
'listGroupings'),
 
 1871                include_once(
'Services/PrivacySecurity/classes/class.ilPrivacySettings.php');
 
 1872                include_once(
'Modules/Course/classes/Export/class.ilCourseDefinedFieldDefinition.php');
 
 1875                    $this->tabs_gui->addSubTabTarget(
 
 1876                        'grp_custom_user_fields',
 
 1877                        $this->ctrl->getLinkTargetByClass(
'ilobjectcustomuserfieldsgui'),
 
 1879                        'ilobjectcustomuserfieldsgui' 
 1884                if ($this->object->getUseNews()) {
 
 1885                    $this->tabs_gui->addSubTab(
 
 1886                        'obj_news_settings',
 
 1887                        $this->lng->txt(
"cont_news_settings"),
 
 1888                        $this->ctrl->getLinkTargetByClass(
'ilcontainernewssettingsgui')
 
 1893                if ($lti_settings->hasSettingsAccess()) {
 
 1894                    $this->tabs_gui->addSubTabTarget(
 
 1896                        $this->ctrl->getLinkTargetByClass(ilLTIProviderObjectSettingGUI::class)
 
 1900                $this->tabs_gui->addSubTabTarget(
 
 1901                    "obj_multilinguality",
 
 1902                    $this->ctrl->getLinkTargetByClass(
"ilobjecttranslationgui", 
""),
 
 1904                    "ilobjecttranslationgui" 
 1925        $ilAccess = 
$DIC[
'ilAccess'];
 
 1927        if ($ilAccess->checkAccess(
'write', 
'', $this->object->getRefId())) {
 
 1932        if (!$this->object->members_obj->isAssigned(
$ilUser->getId())) {
 
 1936        include_once 
'./Services/Container/classes/class.ilMemberViewSettings.php';
 
 1941        include_once(
'Services/PrivacySecurity/classes/class.ilPrivacySettings.php');
 
 1942        include_once(
'Services/Membership/classes/class.ilMemberAgreement.php');
 
 1951        include_once(
'Modules/Course/classes/Export/class.ilCourseUserData.php');
 
 1979        parent::prepareOutput($a_show_subobjects);
 
 1988        $link = chr(13) . chr(10) . chr(13) . chr(10);
 
 1989        $link .= $this->lng->txt(
'grp_mail_permanent_link');
 
 1990        $link .= chr(13) . chr(10) . chr(13) . chr(10);
 
 1991        include_once 
'Services/Link/classes/class.ilLink.php';
 
 1993        return rawurlencode(base64_encode($link));
 
 2003        $lg = parent::initHeaderAction($a_sub_type, $a_sub_id);
 
 2005        include_once(
'./Modules/Group/classes/class.ilGroupParticipants.php');
 
 2007            include_once 
"Services/Membership/classes/class.ilMembershipNotifications.php";
 
 2010                if (!$noti->isCurrentUserActive()) {
 
 2014                        $this->lng->txt(
"grp_notification_deactivated")
 
 2017                    $this->ctrl->setParameter($this, 
"grp_ntf", 1);
 
 2018                    $caption = 
"grp_activate_notification";
 
 2023                        $this->lng->txt(
"grp_notification_activated")
 
 2026                    $this->ctrl->setParameter($this, 
"grp_ntf", 0);
 
 2027                    $caption = 
"grp_deactivate_notification";
 
 2030                if ($noti->canCurrentUserEdit()) {
 
 2031                    $lg->addCustomCommand(
 
 2032                        $this->ctrl->getLinkTarget($this, 
"saveNotification"),
 
 2037                $this->ctrl->setParameter($this, 
"grp_ntf", 
"");
 
 2052        include_once(
'Modules/Course/classes/Export/class.ilCourseUserData.php');
 
 2055        $res_data = array();
 
 2056        foreach ($a_data as $usr_id => $user_data) {
 
 2057            $res_data[$usr_id] = $user_data;
 
 2060            include_once 
'./Services/User/classes/class.ilUserDefinedData.php';
 
 2062            foreach ($udf_data->getAll() as $field => $value) {
 
 2063                list(
$f, $field_id) = explode(
'_', $field);
 
 2064                $res_data[$usr_id][
'udf_' . $field_id] = (string) $value;
 
 2067            foreach ((array) $odfs[$usr_id] as $cdf_field => $cdf_value) {
 
 2068                $res_data[$usr_id][
'cdf_' . $cdf_field] = (string) $cdf_value;
 
 2081        $local_roles = $this->
object->getLocalGroupRoles(
false);
 
 2082        $grp_member = $this->
object->getDefaultMemberRole();
 
 2083        $grp_roles = array();
 
 2086        if (in_array($grp_member, $local_roles)) {
 
 2088            unset($local_roles[$grp_roles[$grp_member]]);
 
 2091        foreach ($local_roles as $title => $role_id) {
 
 2102        $this->ctrl->redirectByClass(
'ilUsersGalleryGUI');
 
 2110        $this->ctrl->setReturn($this, 
"view");
 
if(!defined('PATH_SEPARATOR')) $GLOBALS['_PEAR_default_error_mode']
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.
Class ilBadgeManagementGUI.
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()
show permanent link
saveListPresentation(ilPropertyFormGUI $form)
Save list presentation setting.
forwardToStyleSheet()
Forward to style object.
initListPresentationForm(ilPropertyFormGUI $form)
Add list presentation settings to form.
saveSortingSettings(ilPropertyFormGUI $form)
Save sorting settings.
News settings for containers.
Skills for container (course/group) (top gui class)
static _lookupContainerSetting($a_id, $a_keyword, $a_default_value=null)
Lookup a container setting.
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, $a_skip_day=false, $a_include_wd=false, $include_seconds=false)
Format a date @access public.
static formatPeriod(ilDateTime $start, ilDateTime $end, $a_skip_starting_day=false)
Format a period of two date Shows: 14.
@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
GUI class for LTI provider object settings.
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.
static _fillHTMLMetaTags($a_rbac_id, $a_obj_id, $a_type)
Fill html meta tags.
Class ilMailMemberCourseRoles.
Class ilMailMemberSearchGUI.
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.
Membership notification settings.
static isActiveForRefId(int $ref_id)
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 _lookupViewMode($a_id)
Lookup view mode.
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
initForm($a_mode='edit', $a_omit_form_action=false)
init create/edit form
membersObject()
Called from goto?
jump2UsersGalleryObject()
prepareOutput($a_show_subobjects=true)
Handle member view.
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.
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
afterSave(\ilObject $new_object, $a_redirect=true)
After object creation.
unsubscribeObject()
unsubscribe from group
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()
viewObject container presentation for "administration -> repository, trash, permissions"
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.
executeCommand()
execute command note: this method is overwritten in all container objects
updateInfoObject()
update info
static lookupViewMode($a_obj_id)
lookup view mode @global $ilDB
const MAIL_ALLOWED_TUTORS
static getAvailablePortfolioLinksForUserIds(array $a_owner_ids, $a_back_url=null)
static _getTranslation($a_role_title)
static getContentStylePath($a_style_id, $add_random=true, $add_token=true)
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
checkPermissionBool($a_perm, $a_cmd="", $a_type="", $a_ref_id=null)
Check permission.
initDidacticTemplate(ilPropertyFormGUI $form)
Show didactic template types.
addHeaderAction()
Add header action menu.
getObjectService()
Get object service.
static getInstance($a_obj_id)
GUI class for service settings (calendar, notes, comments)
const AUTO_RATING_NEW_OBJECTS
const ORGU_POSITION_ACCESS
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
GUI class for object translation handling.
Class ilObject Basic functions for all objects.
static _lookupObjId($a_id)
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
static getInstance($a_ref_id)
Get instance by ref_id.
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.
static sendQuestion($a_info="", $a_keep=false)
Send Question to Screen.
static redirect($a_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.
__construct(Container $dic, ilPlugin $plugin)
@inheritDoc