5include_once 
"./Services/Container/classes/class.ilContainerGUI.php";
 
    6include_once(
'./Modules/Group/classes/class.ilObjGroup.php');
 
   41    public function __construct($a_data, $a_id, $a_call_by_reference, $a_prepare_output = 
false)
 
   50        $this->lng->loadLanguageModule(
'grp');
 
   51        $this->lng->loadLanguageModule(
'obj');
 
   54        $this->news = 
$DIC->news();
 
   63        $ilAccess = 
$DIC[
'ilAccess'];
 
   64        $ilNavigationHistory = 
$DIC[
'ilNavigationHistory'];
 
   66        $ilToolbar = 
$DIC[
'ilToolbar'];
 
   68        $next_class = $this->ctrl->getNextClass($this);
 
   69        $cmd = $this->ctrl->getCmd();
 
   74            $ilAccess->checkAccess(
"read", 
"", 
$_GET[
"ref_id"])) {
 
   75            include_once(
"./Services/Link/classes/class.ilLink.php");
 
   76            $ilNavigationHistory->addItem(
 
   84        if ($next_class == 
"" && $cmd == 
"" && $this->object->isNewsTimelineLandingPageEffective()
 
   85            && $ilAccess->checkAccess(
"read", 
"", 
$_GET[
"ref_id"])) {
 
   86            $this->ctrl->redirectbyclass(
"ilnewstimelinegui");
 
   89        $header_action = 
true;
 
   90        switch ($next_class) {
 
   92                $ru = new \ilRepUtilGUI($this);
 
   93                $this->ctrl->setReturn($this, 
'trash');
 
   94                $this->ctrl->forwardCommand($ru);
 
   97            case 'illtiproviderobjectsettinggui':
 
   99                $this->tabs_gui->activateTab(
'settings');
 
  100                $this->tabs_gui->activateSubTab(
'lti_provider');
 
  102                $lti_gui->setCustomRolesForSelection(
$GLOBALS[
'DIC']->rbac()->review()->
getLocalRoles($this->object->getRefId()));
 
  103                $lti_gui->offerLTIRolesForSelection(
false);
 
  104                $this->ctrl->forwardCommand($lti_gui);
 
  108            case 'ilgroupmembershipgui':
 
  110                $this->tabs_gui->activateTab(
'members');
 
  112                include_once 
'./Modules/Group/classes/class.ilGroupMembershipGUI.php';
 
  114                $this->ctrl->forwardCommand($mem_gui);
 
  118            case 'ilgroupregistrationgui':
 
  119                $this->ctrl->setReturn($this, 
'');
 
  120                $this->tabs_gui->setTabActive(
'join');
 
  121                include_once(
'./Modules/Group/classes/class.ilGroupRegistrationGUI.php');
 
  123                $this->ctrl->forwardCommand($registration);
 
  126            case 'ilpermissiongui':
 
  127                $this->tabs_gui->activateTab(
'perm_settings');
 
  128                include_once(
"Services/AccessControl/classes/class.ilPermissionGUI.php");
 
  130                $ret = &$this->ctrl->forwardCommand($perm_gui);
 
  133            case "ilinfoscreengui":
 
  137            case "illearningprogressgui":
 
  138                include_once 
'./Services/Tracking/classes/class.ilLearningProgressGUI.php';
 
  142                    $this->object->getRefId(),
 
  145                $this->ctrl->forwardCommand($new_gui);
 
  146                $this->tabs_gui->setTabActive(
'learning_progress');
 
  149            case 'ilobjcoursegroupinggui':
 
  152                include_once 
'./Modules/Course/classes/class.ilObjCourseGroupingGUI.php';
 
  153                $this->ctrl->setReturn($this, 
'edit');
 
  155                $this->ctrl->forwardCommand($crs_grp_gui);
 
  157                $this->tabs_gui->setTabActive(
'settings');
 
  158                $this->tabs_gui->setSubTabActive(
'groupings');
 
  161            case 'ilcoursecontentgui':
 
  163                include_once 
'./Modules/Course/classes/class.ilCourseContentGUI.php';
 
  165                $this->ctrl->forwardCommand($course_content_obj);
 
  168            case 'ilpublicuserprofilegui':
 
  169                require_once 
'./Services/User/classes/class.ilPublicUserProfileGUI.php';
 
  171                $this->tabs_gui->setTabActive(
'group_members');
 
  172                $this->tabs_gui->setSubTabActive(
'grp_members_gallery');
 
  174                if (
$_GET[
"back_url"] == 
"") {
 
  175                    $profile_gui->setBackUrl($this->ctrl->getLinkTargetByClass([
"ilGroupMembershipGUI", 
"ilUsersGalleryGUI"], 
'view'));
 
  177                $html = $this->ctrl->forwardCommand($profile_gui);
 
  178                $this->tpl->setVariable(
"ADM_CONTENT", $html);
 
  182                $this->tabs_gui->setTabActive(
'none');
 
  184                include_once(
"./Services/Style/Content/classes/class.ilObjStyleSheet.php");
 
  185                $this->tpl->setVariable(
 
  186                    "LOCATION_CONTENT_STYLESHEET",
 
  193            case "ilcontainerpagegui":
 
  196                    $this->tpl->setContent(
$ret);
 
  198                $header_action = 
false;
 
  201            case 'ilobjectcopygui':
 
  202                include_once 
'./Services/Object/classes/class.ilObjectCopyGUI.php';
 
  205                $this->ctrl->forwardCommand($cp);
 
  208            case "ilobjstylesheetgui":
 
  212            case 'ilobjectcustomuserfieldsgui':
 
  213                include_once 
'./Services/Membership/classes/class.ilObjectCustomUserFieldsGUI.php';
 
  216                $this->tabs_gui->setTabActive(
'settings');
 
  217                $this->tabs_gui->activateSubTab(
'grp_custom_user_fields');
 
  218                $this->ctrl->forwardCommand($cdf_gui);
 
  221            case 'ilmemberagreementgui':
 
  222                include_once(
'Services/Membership/classes/class.ilMemberAgreementGUI.php');
 
  223                $this->ctrl->setReturn($this, 
'');
 
  224                $this->tabs_gui->setTabActive(
'view_content');
 
  226                $this->ctrl->forwardCommand($agreement);
 
  230                $this->tabs_gui->setTabActive(
'export');
 
  231                include_once 
'./Services/Export/classes/class.ilExportGUI.php';
 
  233                $exp->addFormat(
'xml');
 
  234                $this->ctrl->forwardCommand($exp);
 
  237            case "ilcommonactiondispatchergui":
 
  238                include_once(
"Services/Object/classes/class.ilCommonActionDispatcherGUI.php");
 
  240                $this->ctrl->forwardCommand($gui);
 
  243            case 'ilobjectservicesettingsgui':
 
  244                $this->ctrl->setReturn($this, 
'edit');
 
  246                $this->tabs_gui->activateTab(
'settings');
 
  247                $this->tabs_gui->activateSubTab(
'tool_settings');
 
  249                include_once 
'./Services/Object/classes/class.ilObjectServiceSettingsGUI.php';
 
  252                    $this->object->getId(),
 
  257                $this->ctrl->forwardCommand(
$service);
 
  260            case 'ilmailmembersearchgui':
 
  261                include_once 
'Services/Mail/classes/class.ilMail.php';
 
  264                if (!($ilAccess->checkAccess(
'manage_members', 
'', $this->object->getRefId()) ||
 
  266                    $rbacsystem->checkAccess(
'internal_mail', $mail->getMailObjectReferenceId())) {
 
  267                    $ilErr->raiseError($this->lng->txt(
"msg_no_perm_read"), 
$ilErr->MESSAGE);
 
  270                $this->tabs_gui->setTabActive(
'members');
 
  272                include_once 
'./Services/Contact/classes/class.ilMailMemberSearchGUI.php';
 
  273                include_once 
'./Services/Contact/classes/class.ilMailMemberGroupRoles.php';
 
  277                $this->ctrl->forwardCommand($mail_search);
 
  280            case 'ilbadgemanagementgui':
 
  281                $this->tabs_gui->setTabActive(
'obj_tool_setting_badges');
 
  282                include_once 
'Services/Badge/classes/class.ilBadgeManagementGUI.php';
 
  284                $this->ctrl->forwardCommand($bgui);
 
  287            case "ilcontainernewssettingsgui":
 
  289                $this->tabs_gui->setTabActive(
'settings');
 
  290                $this->tabs_gui->activateSubTab(
'obj_news_settings');
 
  291                include_once(
"./Services/Container/classes/class.ilContainerNewsSettingsGUI.php");
 
  293                $news_set_gui->setTimeline(
true);
 
  294                $news_set_gui->setCronNotifications(
true);
 
  295                $news_set_gui->setHideByDate(
true);
 
  296                $this->ctrl->forwardCommand($news_set_gui);
 
  299            case "ilnewstimelinegui":
 
  301                $this->tabs_gui->setTabActive(
'news_timeline');
 
  302                include_once(
"./Services/News/classes/class.ilNewsTimelineGUI.php");
 
  304                $t->setUserEditAll($ilAccess->checkAccess(
'write', 
'', $this->object->getRefId(), 
'grp'));
 
  306                $this->ctrl->forwardCommand($t);
 
  307                include_once 
'Services/Tracking/classes/class.ilLearningProgress.php';
 
  310                    $this->object->getId(),
 
  311                    $this->object->getRefId(),
 
  316            case "ilcontainerskillgui":
 
  317                $this->tabs_gui->activateTab(
'obj_tool_setting_skills');
 
  318                include_once(
"./Services/Container/Skills/classes/class.ilContainerSkillGUI.php");
 
  320                $this->ctrl->forwardCommand($gui);
 
  323            case 'ilcalendarpresentationgui':
 
  324                include_once(
'./Services/Calendar/classes/class.ilCalendarPresentationGUI.php');
 
  326                $ret = $this->ctrl->forwardCommand($cal);
 
  329            case 'ilobjectmetadatagui':
 
  330                if (!$ilAccess->checkAccess(
'write', 
'', $this->object->getRefId())) {
 
  331                    $ilErr->raiseError($this->lng->txt(
'permission_denied'), 
$ilErr->WARNING);
 
  333                $this->tabs_gui->activateTab(
'meta_data');
 
  338            case 'ilobjecttranslationgui':
 
  341                $this->tabs->activateTab(
"settings");
 
  342                include_once(
"./Services/Object/classes/class.ilObjectTranslationGUI.php");
 
  344                $this->ctrl->forwardCommand($transgui);
 
  351                        !$ilAccess->checkAccess(
'visible', 
'', $this->object->getRefId(), 
'grp') and
 
  352                        !$ilAccess->checkAccess(
'read', 
'', $this->object->getRefId(), 
'grp')) {
 
  353                    $ilErr->raiseError($this->lng->txt(
"msg_no_perm_read"), 
$ilErr->MESSAGE);
 
  357                if ($cmd == 
'infoScreenGoto') {
 
  358                    if ($this->object->isRegistrationEnabled()) {
 
  367                    && !
$rbacsystem->checkAccess(
'read', $this->object->getRefId()) && $cmd != 
'infoScreen')
 
  370                    if (!
$rbacsystem->checkAccess(
'join', $this->object->getRefId())) {
 
  371                        $this->ctrl->redirect($this, 
"infoScreen");
 
  373                        include_once(
'./Modules/Group/classes/class.ilGroupRegistrationGUI.php');
 
  374                        $this->ctrl->redirectByClass(
"ilGroupRegistrationGUI", 
"show");
 
  385        if ($header_action) {
 
  398        include_once 
'Services/Tracking/classes/class.ilLearningProgress.php';
 
  401            $this->object->getId(),
 
  402            $this->object->getRefId(),
 
  407            $this->object->getId(),
 
  408            $this->object->getId(),
 
  413        if (strtolower(
$_GET[
"baseClass"]) == 
"iladministrationgui") {
 
  414            parent::viewObject();
 
  419            include_once(
'Services/Membership/classes/class.ilMemberAgreementGUI.php');
 
  420            $this->tabs_gui->setTabActive(
'view_content');
 
  421            $this->ctrl->setReturn($this, 
'view');
 
  423            $this->ctrl->setCmdClass(get_class($agreement));
 
  424            $this->ctrl->forwardCommand($agreement);
 
  428        $this->tabs_gui->setTabActive(
'view_content');
 
  439        $ilTabs = 
$DIC[
'ilTabs'];
 
  441        $ilTabs->activateTab(
"view_content");
 
  442        $ret = parent::renderObject();
 
  460        if ($course_ref_id = 
$tree->checkForParentType($this->object->getRefId(), 
'crs')) {
 
  461            include_once(
"./Modules/Course/classes/class.ilObjCourse.php");
 
  462            include_once(
"./Modules/Course/classes/class.ilObjCourseGUI.php");
 
  466                'ilcoursecontentgui',
 
  472                $this->object->getRefId()
 
  494                $GLOBALS[
'DIC'][
'tree']->checkForParentType($new_object->
getRefId(), 
'crs', 
true) ||
 
  495                $GLOBALS[
'DIC'][
'tree']->checkForParentType($new_object->
getRefId(), 
'grp', 
true)
 
  501        include_once 
'./Services/Container/classes/class.ilContainerSortingSettings.php';
 
  503        $sort->setSortMode($sort_mode);
 
  508        include_once 
'./Modules/Group/classes/class.ilGroupParticipants.php';
 
  511        $members_obj->updateNotification(
$ilUser->getId(), 
$ilSetting->get(
'mail_grp_admin_notification', 
true));
 
  512        $members_obj->updateContact(
$ilUser->getId(), 
true);
 
  514        ilUtil::sendSuccess($this->lng->txt(
"object_added"), 
true);
 
  516            $this->ctrl->setParameter($this, 
"ref_id", $new_object->
getRefId());
 
  517            $this->ctrl->redirect($this, 
'edit');
 
  533        $this->tabs_gui->setTabActive(
'settings');
 
  534        $this->tabs_gui->setSubTabActive(
'grp_settings');
 
  540        $this->tpl->setVariable(
'ADM_CONTENT', $a_form->getHTML());
 
  552        include_once 
'./Services/DidacticTemplate/classes/class.ilDidacticTemplateUtils.php';
 
  554            $this->object->getRefId(),
 
  555            (
int) $_REQUEST[
'grp_type']
 
  558        ilUtil::sendSuccess($this->lng->txt(
'settings_saved'), 
true);
 
  559        $this->ctrl->redirect($this, 
'edit');
 
  575        if ($form->checkInput()) {
 
  577            include_once 
'./Services/DidacticTemplate/classes/class.ilDidacticTemplateObjSettings.php';
 
  581            $new_type_info = $form->getInput(
'didactic_type');
 
  582            if ($new_type_info) {
 
  583                $new_type = explode(
'_', $form->getInput(
'didactic_type'));
 
  584                $new_type = $new_type[1];
 
  586                $modified = ($new_type != $old_type);
 
  592                $form->getInput(
'sl') == 
"1" &&
 
  593                $form->getInput(
'list_presentation') == 
"tile") {
 
  594                $form->setValuesByPost();
 
  599            $old_autofill = $this->
object->hasWaitingListAutoFill();
 
  606            $this->
object->enableUnlimitedRegistration((
bool) !$form->getInput(
'reg_limit_time'));
 
  607            $this->
object->enableMembershipLimitation((
bool) $form->getInput(
'registration_membership_limited'));
 
  608            $this->
object->setMinMembers((
int) $form->getInput(
'registration_min_members'));
 
  609            $this->
object->setMaxMembers((
int) $form->getInput(
'registration_max_members'));
 
  610            $this->
object->enableRegistrationAccessCode((
bool) $form->getInput(
'reg_code_enabled'));
 
  611            $this->
object->setRegistrationAccessCode($form->getInput(
'reg_code'));
 
  612            $this->
object->setViewMode($form->getInput(
'view_mode'));
 
  613            $this->
object->setMailToMembersType((
int) $form->getInput(
'mail_type'));
 
  614            $this->
object->setShowMembers((
int) $form->getInput(
'show_members'));
 
  615            $this->
object->setAutoNotification((
bool) $form->getInput(
'auto_notification'));
 
  618            $this->
object->enableSessionLimit((
int) $form->getInput(
'sl'));
 
  619            $session_sp = $form->getInput(
'sp');
 
  620            $this->
object->setNumberOfPreviousSessions(is_numeric($session_sp) ? (
int) $session_sp : -1);
 
  621            $session_sn = $form->getInput(
'sn');
 
  622            $this->
object->setNumberOfnextSessions(is_numeric($session_sn) ? (
int) $session_sn : -1);
 
  625            $grp_period = $form->getItemByPostVar(
"period");
 
  628            $this->
object->setPeriod(
 
  629                $grp_period->getStart(),
 
  630                $grp_period->getEnd()
 
  633            $reg = $form->getItemByPostVar(
"reg");
 
  635                $this->
object->enableUnlimitedRegistration(
false);
 
  637                $this->
object->enableUnlimitedRegistration(
true);
 
  640            $this->
object->setRegistrationStart($reg->getStart());
 
  641            $this->
object->setRegistrationEnd($reg->getEnd());
 
  643            $cancel_end = $form->getItemByPostVar(
"cancel_end");
 
  644            $this->
object->setCancellationEnd($cancel_end->getDate());
 
  646            switch ((
int) 
$_POST[
'waiting_list']) {
 
  648                    $this->
object->enableWaitingList(
true);
 
  649                    $this->
object->setWaitingListAutoFill(
true);
 
  653                    $this->
object->enableWaitingList(
true);
 
  654                    $this->
object->setWaitingListAutoFill(
false);
 
  658                    $this->
object->enableWaitingList(
false);
 
  659                    $this->
object->setWaitingListAutoFill(
false);
 
  664            $obj_service->commonSettings()->legacyForm($form, $this->
object)->saveTitleIconVisibility();
 
  667            $obj_service->commonSettings()->legacyForm($form, $this->
object)->saveTopActionsVisibility();
 
  670            $obj_service->commonSettings()->legacyForm($form, $this->
object)->saveIcon();
 
  673            $obj_service->commonSettings()->legacyForm($form, $this->
object)->saveTileImage();
 
  679            $this->
object->update();
 
  682            include_once 
'./Services/Object/classes/class.ilObjectServiceSettingsGUI.php';
 
  684                $this->object->getId(),
 
  686                $this->getSubServices()
 
  694                $this->object->hasWaitingListAutoFill()) {
 
  695                $this->
object->handleAutoFill();
 
  699            require_once(
'Services/Tracking/classes/class.ilChangeEvent.php');
 
  704                $this->object->getId(),
 
  711            include_once 
'Modules/Group/classes/class.ilECSGroupSettings.php';
 
  713            $ecs->handleSettingsUpdate();
 
  717            $form->setValuesByPost();
 
  724            if ($new_type == 0) {
 
  725                $new_type_txt = 
$GLOBALS[
'DIC'][
'lng']->txt(
'il_grp_status_open');
 
  727                include_once 
'./Services/DidacticTemplate/classes/class.ilDidacticTemplateSetting.php';
 
  729                $new_type_txt = $dtpl->getPresentationTitle(
$GLOBALS[
'DIC'][
'lng']->getLangKey());
 
  733            include_once 
'./Services/Utilities/classes/class.ilConfirmationGUI.php';
 
  736            $confirm->setFormAction($this->ctrl->getFormAction($this));
 
  740                $this->lng->txt(
'grp_info_new_grp_type') . 
': ' . $new_type_txt
 
  742            $confirm->addButton($this->lng->txt(
'grp_change_type'), 
'updateGroupType');
 
  743            $confirm->setCancel($this->lng->txt(
'cancel'), 
'edit');
 
  745            $this->tpl->setContent($confirm->getHTML());
 
  748            ilUtil::sendSuccess($this->lng->txt(
"msg_obj_modified"), 
true);
 
  749            $this->ctrl->redirect($this, 
'edit');
 
  766        if ($this->news->isGloballyActivated()) {
 
  781        $ilCtrl = 
$DIC[
'ilCtrl'];
 
  783        $ilAccess = 
$DIC[
'ilAccess'];
 
  786        $this->tabs_gui->setTabActive(
'settings');
 
  787        $this->tabs_gui->setSubTabActive(
'grp_map_settings');
 
  789        include_once(
'./Services/Maps/classes/class.ilMapUtil.php');
 
  791            !$ilAccess->checkAccess(
"write", 
"", $this->object->getRefId())) {
 
  795        $latitude = $this->
object->getLatitude();
 
  796        $longitude = $this->
object->getLongitude();
 
  797        $zoom = $this->
object->getLocationZoom();
 
  800        if ($latitude == 0 && $longitude == 0 && $zoom == 0) {
 
  802            $latitude = $def[
"latitude"];
 
  803            $longitude = $def[
"longitude"];
 
  804            $zoom = $def[
"zoom"];
 
  808        include_once(
"./Services/Form/classes/class.ilPropertyFormGUI.php");
 
  810        $form->setFormAction($ilCtrl->getFormAction($this));
 
  812        $form->setTitle($this->lng->txt(
"grp_map_settings"));
 
  816            $this->lng->txt(
"grp_enable_map"),
 
  819        $public->setValue(
"1");
 
  820        $public->setChecked($this->object->getEnableGroupMap());
 
  821        $form->addItem($public);
 
  825            $this->lng->txt(
"grp_map_location"),
 
  828        $loc_prop->setLatitude($latitude);
 
  829        $loc_prop->setLongitude($longitude);
 
  830        $loc_prop->setZoom($zoom);
 
  831        $form->addItem($loc_prop);
 
  833        $form->addCommandButton(
"saveMapSettings", $this->lng->txt(
"save"));
 
  835        $this->tpl->setVariable(
"ADM_CONTENT", $form->getHTML());
 
  842        $ilCtrl = 
$DIC[
'ilCtrl'];
 
  849        $this->
object->update();
 
  851        $ilCtrl->redirect($this, 
"editMapSettings");
 
  866        $ilAccess = 
$DIC[
'ilAccess'];
 
  871        $this->tabs_gui->setTabActive(
'settings');
 
  872        $this->tabs_gui->setSubTabActive(
'grp_info_settings');
 
  875        $this->tpl->setContent($form->getHTML());
 
  886        include_once(
"./Services/Form/classes/class.ilPropertyFormGUI.php");
 
  888        $form->setFormAction($this->ctrl->getFormAction($this, 
'updateInfo'));
 
  889        $form->setTitle($this->lng->txt(
'grp_general_informations'));
 
  890        $form->addCommandButton(
'updateInfo', $this->lng->txt(
'save'));
 
  891        $form->addCommandButton(
'cancel', $this->lng->txt(
'cancel'));
 
  894        $area->setInfo($this->lng->txt(
'grp_information_info'));
 
  895        $area->setValue($this->object->getInformation());
 
  898        $form->addItem($area);
 
  914        $this->
object->update();
 
  916        ilUtil::sendSuccess($this->lng->txt(
"settings_saved"));
 
  924        include_once(
'./Services/PrivacySecurity/classes/class.ilPrivacySettings.php');
 
  927        include_once 
'./Services/Tracking/classes/class.ilObjUserTracking.php';
 
  928        $this->show_tracking =
 
  933        if ($this->show_tracking) {
 
  934            include_once(
'./Services/Object/classes/class.ilObjectLP.php');
 
  936            $this->show_tracking = $olp->isActive();
 
  939        if ($this->show_tracking) {
 
  940            include_once 
'Services/Tracking/classes/class.ilLPStatusWrapper.php';
 
  946        if ($privacy->enabledGroupAccessTimes()) {
 
  947            include_once(
'./Services/Tracking/classes/class.ilLearningProgress.php');
 
  951        $do_prtf = (is_array($selected_columns) &&
 
  952            in_array(
'prtf', $selected_columns) &&
 
  955            include_once 
"Modules/Portfolio/classes/class.ilObjPortfolio.php";
 
  958                $this->ctrl->getLinkTarget($this, 
"members")
 
  968        foreach ($ids as $usr_id) {
 
  969            $tmp_data[
'notification'] = $this->
object->members_obj->isNotificationEnabled($usr_id) ? 1 : 0;
 
  970            $tmp_data[
'contact'] = $this->
object->members_obj->isContact($usr_id) ? 1 : 0;
 
  972            foreach ((array) $profile_data[$usr_id] as $field => $value) {
 
  973                $tmp_data[$field] = $value;
 
  976            if ($this->show_tracking) {
 
  977                if (in_array($usr_id, $completed)) {
 
  979                } elseif (in_array($usr_id, $in_progress)) {
 
  981                } elseif (in_array($usr_id, 
$failed)) {
 
  988            if ($privacy->enabledGroupAccessTimes()) {
 
  989                if (isset($progress[$usr_id][
'ts']) and $progress[$usr_id][
'ts']) {
 
  993                    $tmp_data[
'access_time_unix'] = $tmp_date->get(
IL_CAL_UNIX);
 
  995                    $tmp_data[
'access_time'] = $this->lng->txt(
'no_date');
 
  996                    $tmp_data[
'access_time_unix'] = 0;
 
 1001                $tmp_data[
'prtf'] = $all_prtf[$usr_id];
 
 1004            $members[$usr_id] = $tmp_data;
 
 1006        return $members ? $members : array();
 
 1022        if ($part->isLastAdmin(
$ilUser->getId())) {
 
 1028        $this->tabs_gui->setTabActive(
'grp_btn_unsubscribe');
 
 1030        include_once 
"Services/Utilities/classes/class.ilConfirmationGUI.php";
 
 1032        $cgui->setHeaderText($this->lng->txt(
'grp_dismiss_myself'));
 
 1033        $cgui->setFormAction($this->ctrl->getFormAction($this));
 
 1034        $cgui->setCancel($this->lng->txt(
"cancel"), 
"cancel");
 
 1035        $cgui->setConfirm($this->lng->txt(
"grp_btn_unsubscribe"), 
"unsubscribe");
 
 1036        $this->tpl->setContent($cgui->getHTML());
 
 1051        $ilCtrl = 
$DIC[
'ilCtrl'];
 
 1055        $this->
object->members_obj->delete(
$ilUser->getId());
 
 1057        include_once 
'./Modules/Group/classes/class.ilGroupMembershipMailNotification.php';
 
 1058        $this->
object->members_obj->sendNotification(
 
 1062        $this->
object->members_obj->sendNotification(
 
 1067        ilUtil::sendSuccess($this->lng->txt(
'grp_msg_membership_annulled'), 
true);
 
 1068        $ilCtrl->setParameterByClass(
 
 1071            $tree->getParentId($this->object->getRefId())
 
 1073        $ilCtrl->redirectByClass(
"ilrepositorygui", 
"");
 
 1084        $this->tabs_gui->addTab(
 
 1086            $this->lng->txt(
"content"),
 
 1087            $this->ctrl->getLinkTarget($this, 
"view")
 
 1099        $ilAccess = 
$DIC[
'ilAccess'];
 
 1101        $ilHelp = 
$DIC[
'ilHelp'];
 
 1103        $ilHelp->setScreenIdComponent(
"grp");
 
 1105        if ($ilAccess->checkAccess(
'read', 
'', $this->ref_id)) {
 
 1106            if ($this->object->isNewsTimelineEffective()) {
 
 1107                if (!$this->object->isNewsTimelineLandingPageEffective()) {
 
 1110                $this->tabs_gui->addTab(
 
 1112                    $lng->txt(
"cont_news_timeline_tab"),
 
 1113                    $this->ctrl->getLinkTargetByClass(
"ilnewstimelinegui", 
"show")
 
 1115                if ($this->object->isNewsTimelineLandingPageEffective()) {
 
 1123            $ilAccess->checkAccess(
'visible', 
'', $this->ref_id) ||
 
 1124            $ilAccess->checkAccess(
'join', 
'', $this->ref_id) ||
 
 1125            $ilAccess->checkAccess(
'read', 
'', $this->ref_id)
 
 1127            $this->tabs_gui->addTarget(
 
 1129                $this->ctrl->getLinkTargetByClass(
 
 1130                    array(
"ilobjgroupgui", 
"ilinfoscreengui"),
 
 1141        if ($ilAccess->checkAccess(
'write', 
'', $this->object->getRefId())) {
 
 1142            $this->tabs_gui->addTarget(
 
 1144                $this->ctrl->getLinkTarget($this, 
"edit"),
 
 1145                array(
"edit", 
"editMapSettings"),
 
 1151        include_once 
'./Modules/Group/classes/class.ilGroupParticipants.php';
 
 1155        include_once 
'./Modules/Group/classes/class.ilGroupMembershipGUI.php';
 
 1157        $membership_gui->addMemberTab($this->tabs_gui, $is_participant);
 
 1161        if ($ilAccess->checkAccess(
'write', 
'', $this->ref_id)) {
 
 1162            include_once 
'Services/Badge/classes/class.ilBadgeHandler.php';
 
 1164                $this->tabs_gui->addTarget(
 
 1165                    "obj_tool_setting_badges",
 
 1166                    $this->ctrl->getLinkTargetByClass(
"ilbadgemanagementgui", 
""),
 
 1168                    "ilbadgemanagementgui" 
 1174        include_once(
"./Services/Object/classes/class.ilObjectServiceSettingsGUI.php");
 
 1176            $this->object->getId(),
 
 1180            $this->tabs_gui->addTarget(
 
 1181                "obj_tool_setting_skills",
 
 1182                $this->ctrl->getLinkTargetByClass(array(
"ilcontainerskillgui", 
"ilcontskillpresentationgui"), 
""),
 
 1184                array(
"ilcontainerskillgui", 
"ilcontskillpresentationgui", 
"ilcontskilladmingui")
 
 1189        include_once 
'./Services/Tracking/classes/class.ilLearningProgressAccess.php';
 
 1191            $this->tabs_gui->addTarget(
 
 1192                'learning_progress',
 
 1193                $this->ctrl->getLinkTargetByClass(array(
'ilobjgroupgui',
'illearningprogressgui'), 
''),
 
 1195                array(
'illplistofobjectsgui',
'illplistofsettingsgui',
'illearningprogressgui',
'illplistofprogressgui')
 
 1200        if ($ilAccess->checkAccess(
'write', 
'', $this->ref_id)) {
 
 1202            $tab_link = $md_gui->getTab();
 
 1203            if ($tab_link !== 
null) {
 
 1204                $this->tabs_gui->addTab(
 
 1206                    $this->lng->txt(
'meta_data'),
 
 1209                    'ilObjectMetaDataGUI' 
 1215        if ($ilAccess->checkAccess(
'write', 
'', $this->object->getRefId())) {
 
 1216            $this->tabs_gui->addTarget(
 
 1218                $this->ctrl->getLinkTargetByClass(
'ilexportgui', 
''),
 
 1227        if ($ilAccess->checkAccess(
'join', 
'', $this->object->getRefId()) and
 
 1228            !$this->object->members_obj->isAssigned(
$ilUser->getId())) {
 
 1229            include_once 
'./Modules/Group/classes/class.ilGroupWaitingList.php';
 
 1231                $this->tabs_gui->addTab(
 
 1233                    $this->lng->txt(
'membership_leave'),
 
 1234                    $this->ctrl->getLinkTargetByClass(
'ilgroupregistrationgui', 
'show', 
'')
 
 1237                $this->tabs_gui->addTarget(
 
 1239                    $this->ctrl->getLinkTargetByClass(
'ilgroupregistrationgui', 
"show"),
 
 1245        if ($ilAccess->checkAccess(
'leave', 
'', $this->object->getRefId()) and
 
 1246            $this->object->members_obj->isMember(
$ilUser->getId())) {
 
 1247            $this->tabs_gui->addTarget(
 
 1248                "grp_btn_unsubscribe",
 
 1249                $this->ctrl->getLinkTarget($this, 
"leave"),
 
 1263        $this->ctrl->setCmd(
"showSummary");
 
 1264        $this->ctrl->setCmdClass(
"ilinfoscreengui");
 
 1279        $this->tabs_gui->setTabActive(
'info_short');
 
 1286            $this->object->getId(),
 
 1287            $this->object->getId(),
 
 1291        include_once(
"./Services/InfoScreen/classes/class.ilInfoScreenGUI.php");
 
 1294        if (strlen($this->object->getInformation())) {
 
 1295            $info->addSection($this->lng->txt(
'grp_general_informations'));
 
 1296            $info->addProperty($this->lng->txt(
'grp_information'), nl2br(
 
 1301        $info->enablePrivateNotes();
 
 1302        $info->enableLearningProgress(
true);
 
 1305        $record_gui->setInfoObject($info);
 
 1306        $record_gui->parse();
 
 1309        $info->addMetaDataSections($this->object->getId(), 0, $this->object->getType());
 
 1314        $contacts = $parts->getContacts();
 
 1315        if (count($contacts) > 0) {
 
 1316            $info->addSection($this->lng->txt(
"grp_mem_contacts"));
 
 1317            foreach ($contacts as 
$c) {
 
 1319                $pgui->setBackUrl($this->ctrl->getLinkTargetByClass(
"ilinfoscreengui"));
 
 1320                $pgui->setEmbedded(
true);
 
 1321                $info->addProperty(
"", $pgui->getHTML());
 
 1326        $info->addSection($this->lng->txt(
'group_registration'));
 
 1327        $info->showLDAPRoleGroupMappingInfo();
 
 1329        if (!$this->object->isRegistrationEnabled()) {
 
 1331                $this->lng->txt(
'group_registration_mode'),
 
 1332                $this->lng->txt(
'grp_reg_deac_info_screen')
 
 1335            switch ($this->object->getRegistrationType()) {
 
 1338                        $this->lng->txt(
'group_registration_mode'),
 
 1339                        $this->lng->txt(
'grp_reg_direct_info_screen')
 
 1345                        $this->lng->txt(
'group_registration_mode'),
 
 1346                        $this->lng->txt(
'grp_reg_req_info_screen')
 
 1352                        $this->lng->txt(
'group_registration_mode'),
 
 1353                        $this->lng->txt(
'grp_reg_passwd_info_screen')
 
 1364            if ($this->object->isRegistrationUnlimited()) {
 
 1366                    $this->lng->txt(
'group_registration_time'),
 
 1367                    $this->lng->txt(
'grp_registration_unlimited')
 
 1369            } elseif ($this->object->getRegistrationStart()->getUnixTime() < time()) {
 
 1371                    $this->lng->txt(
"group_registration_time"),
 
 1372                    $this->lng->txt(
'cal_until') . 
' ' .
 
 1375            } elseif ($this->object->getRegistrationStart()->getUnixTime() >= time()) {
 
 1377                    $this->lng->txt(
"group_registration_time"),
 
 1378                    $this->lng->txt(
'cal_from') . 
' ' .
 
 1382            if ($this->object->isMembershipLimited()) {
 
 1383                if ($this->object->getMinMembers()) {
 
 1385                        $this->lng->txt(
"mem_min_users"),
 
 1386                        $this->object->getMinMembers()
 
 1389                if ($this->object->getMaxMembers()) {
 
 1390                    include_once 
'./Modules/Group/classes/class.ilObjGroupAccess.php';
 
 1394                        $this->lng->txt(
'mem_free_places'),
 
 1395                        $reg_info[
'reg_info_free_places']
 
 1400            if ($this->object->getCancellationEnd()) {
 
 1402                    $this->lng->txt(
'grp_cancellation_end'),
 
 1408        if ($this->object->getStart() instanceof 
ilDateTime &&
 
 1409            !$this->object->getStart()->
isNull()
 
 1412                $this->lng->txt(
'grp_period'),
 
 1414                    $this->object->getStart(),
 
 1415                    $this->object->getEnd()
 
 1421        include_once(
'Services/PrivacySecurity/classes/class.ilPrivacySettings.php');
 
 1424        include_once(
'Modules/Course/classes/Export/class.ilCourseDefinedFieldDefinition.php');
 
 1426            include_once(
'Services/PrivacySecurity/classes/class.ilExportFieldsInfo.php');
 
 1430            $this->lng->loadLanguageModule(
'ps');
 
 1431            $info->addSection($this->lng->txt(
'grp_user_agreement_info'));
 
 1432            $info->addProperty($this->lng->txt(
'ps_export_data'), $field_info->exportableFieldsToInfoString());
 
 1435                $info->addProperty($this->lng->txt(
'ps_grp_user_fields'), $fields);
 
 1441        $this->ctrl->forwardCommand($info);
 
 1449        include_once 
"Services/Membership/classes/class.ilMembershipNotifications.php";
 
 1451        if ($noti->canCurrentUserEdit()) {
 
 1452            if ((
bool) $_REQUEST[
"grp_ntf"]) {
 
 1453                $noti->activateUser();
 
 1455                $noti->deactivateUser();
 
 1458        ilUtil::sendSuccess($this->lng->txt(
"settings_saved"), 
true);
 
 1459        $this->ctrl->redirect($this, 
"");
 
 1467        $GLOBALS[
'DIC'][
'ilCtrl']->redirectByClass(
'ilgroupmembershipgui');
 
 1474    public static function _goto($a_target, $a_add = 
"")
 
 1478        $ilAccess = 
$DIC[
'ilAccess'];
 
 1483        include_once 
'./Services/Membership/classes/class.ilMembershipRegistrationCodeUtils.php';
 
 1484        if (substr($a_add, 0, 5) == 
'rcode') {
 
 1488                    "login.php?target=" . 
$_GET[
"target"] . 
"&cmd=force_login&lang=" .
 
 1501        if ($a_add == 
"mem" && $ilAccess->checkAccess(
"manage_members", 
"", $a_target)) {
 
 1509        if ($ilAccess->checkAccess(
"read", 
"", $a_target)) {
 
 1513            if ($ilAccess->checkAccess(
"visible", 
"", $a_target)) {
 
 1518                        $lng->txt(
"msg_no_perm_read_item"),
 
 1536    public function initForm($a_mode = 
'edit', $a_omit_form_action = 
false)
 
 1542        $tree = $DIC[
'tree'];
 
 1544        include_once(
"./Services/Form/classes/class.ilPropertyFormGUI.php");
 
 1548        if (!$a_omit_form_action) {
 
 1551                    $form->setFormAction($this->ctrl->getFormAction($this, 
'update'));
 
 1555                    $form->setTableWidth(
'600px');
 
 1556                    $form->setFormAction($this->ctrl->getFormAction($this, 
'save'));
 
 1562        $this->initFormTitleDescription($form);
 
 1566        if ($a_mode == 
'edit') {
 
 1569            $this->lng->loadLanguageModule(
'mem');
 
 1570            $cdur->enableToggleFullTime(
 
 1571                $this->lng->txt(
'mem_period_without_time'),
 
 1572                !$this->object->getStartTimeIndication()
 
 1574            $cdur->setShowTime(
true);
 
 1575            $cdur->setInfo($this->lng->txt(
'grp_period_info'));
 
 1576            $cdur->setStart($this->object->getStart());
 
 1577            $cdur->setEnd($this->object->getEnd());
 
 1578            $form->addItem($cdur);
 
 1582            $pres->setTitle($this->lng->txt(
'grp_setting_header_registration'));
 
 1583            $form->addItem($pres);
 
 1586            $reg_type = 
new ilRadioGroupInputGUI($this->lng->txt(
'group_registration_mode'), 
'registration_type');
 
 1587            $reg_type->setValue($this->object->getRegistrationType());
 
 1590            $reg_type->addOption($opt_dir);
 
 1594            $pass->setRequired(
true);
 
 1595            $pass->setInfo($this->lng->txt(
'grp_reg_password_info'));
 
 1596            $pass->setValue($this->object->getPassword());
 
 1598            $pass->setMaxLength(32);
 
 1599            $opt_pass->addSubItem(
$pass);
 
 1600            $reg_type->addOption($opt_pass);
 
 1603            $reg_type->addOption($opt_req);
 
 1606            $reg_type->addOption($opt_deact);
 
 1609            $reg_code = 
new ilCheckboxInputGUI($this->lng->txt(
'grp_reg_code'), 
'reg_code_enabled');
 
 1610            $reg_code->setChecked($this->object->isRegistrationAccessCodeEnabled());
 
 1611            $reg_code->setValue(1);
 
 1612            $reg_code->setInfo($this->lng->txt(
'grp_reg_code_enabled_info'));
 
 1613            $form->addItem($reg_type);
 
 1616            if (!$this->object->getRegistrationAccessCode()) {
 
 1617                include_once 
'./Services/Membership/classes/class.ilMembershipRegistrationCodeUtils.php';
 
 1621            $reg_link->setValue($this->object->getRegistrationAccessCode());
 
 1622            $form->addItem($reg_link);
 
 1625            include_once 
'./Services/Link/classes/class.ilLink.php';
 
 1626            $val = 
ilLink::_getLink($this->object->getRefId(), $this->object->getType(), array(), 
'_rcode' . $this->object->getRegistrationAccessCode());
 
 1627            $link->setHTML(
'<span class="small">' . $val . 
'</span>');
 
 1628            $reg_code->addSubItem($link);
 
 1629            $form->addItem($reg_code);
 
 1632            $this->lng->loadLanguageModule(
'dateplaner');
 
 1633            include_once 
'./Services/Form/classes/class.ilDateDurationInputGUI.php';
 
 1635            $dur->setShowTime(
true);
 
 1636            $dur->setStart($this->object->getRegistrationStart());
 
 1637            $dur->setEnd($this->object->getRegistrationEnd());
 
 1638            $form->addItem($dur);
 
 1641            $cancel = 
new ilDateTimeInputGUI($this->lng->txt(
'grp_cancellation_end'), 
'cancel_end');
 
 1642            $cancel->setInfo($this->lng->txt(
'grp_cancellation_end_info'));
 
 1643            $cancel->setDate($this->object->getCancellationEnd());
 
 1644            $form->addItem($cancel);
 
 1647            $lim = 
new ilCheckboxInputGUI($this->lng->txt(
'reg_grp_max_members_short'), 
'registration_membership_limited');
 
 1650            $lim->setChecked($this->object->isMembershipLimited());
 
 1652            $min = 
new ilTextInputGUI($this->lng->txt(
'reg_grp_min_members'), 
'registration_min_members');
 
 1654            $min->setMaxLength(4);
 
 1655            $min->setValue($this->object->getMinMembers() ? $this->object->getMinMembers() : 
'');
 
 1656            $min->setInfo($this->lng->txt(
'grp_subscription_min_members_info'));
 
 1657            $lim->addSubItem($min);
 
 1659            $max = 
new ilTextInputGUI($this->lng->txt(
'reg_grp_max_members'), 
'registration_max_members');
 
 1660            $max->setValue($this->object->getMaxMembers() ? $this->object->getMaxMembers() : 
'');
 
 1663            $max->setMaxLength(4);
 
 1664            $max->setInfo($this->lng->txt(
'grp_reg_max_members_info'));
 
 1665            $lim->addSubItem($max);
 
 1680            $wait->addOption($option);
 
 1682            $option = 
new ilRadioOption($this->lng->txt(
'grp_waiting_list_no_autofill'), 1);
 
 1683            $option->setInfo($this->lng->txt(
'grp_waiting_list_info'));
 
 1684            $wait->addOption($option);
 
 1686            $option = 
new ilRadioOption($this->lng->txt(
'grp_waiting_list_autofill'), 2);
 
 1687            $option->setInfo($this->lng->txt(
'grp_waiting_list_autofill_info'));
 
 1688            $wait->addOption($option);
 
 1690            if ($this->object->hasWaitingListAutoFill()) {
 
 1692            } elseif ($this->object->isWaitingListEnabled()) {
 
 1696            $lim->addSubItem($wait);
 
 1698            $form->addItem($lim);
 
 1702            $parent_membership_ref_id = 0;
 
 1703            $hasParentMembership =
 
 1705                    $parent_membership_ref_id = 
$tree->checkForParentType($this->object->getRefId(), 
'crs', 
true)
 
 1709            $pres->setTitle($this->lng->txt(
'grp_setting_header_presentation'));
 
 1710            $form->addItem($pres);
 
 1713            $form = $obj_service->commonSettings()->legacyForm($form, $this->
object)->addTitleIconVisibility();
 
 1716            $form = $obj_service->commonSettings()->legacyForm($form, $this->
object)->addTopActionsVisibility();
 
 1719            $form = $obj_service->commonSettings()->legacyForm($form, $this->
object)->addIcon();
 
 1722            $form = $obj_service->commonSettings()->legacyForm($form, $this->
object)->addTileImage();
 
 1730            if ($hasParentMembership) {
 
 1732                $course_view_mode = 
'';
 
 1733                switch ($parent_view_mode) {
 
 1735                        $course_view_mode = 
': ' . $this->lng->txt(
'cntr_view_sessions');
 
 1739                        $course_view_mode = 
': ' . $this->lng->txt(
'cntr_view_simple');
 
 1743                        $course_view_mode = 
': ' . $this->lng->txt(
'cntr_view_by_type');
 
 1746                if ($course_view_mode) {
 
 1748                    $opt->setInfo($this->lng->txt(
'grp_view_inherit_info'));
 
 1749                    $view_type->addOption($opt);
 
 1760            $opt->setInfo($this->lng->txt(
'cntr_view_info_sessions'));
 
 1761            $view_type->addOption($opt);
 
 1764            $this->lng->loadLanguageModule(
'crs');
 
 1767            $sess->setChecked($this->object->isSessionLimitEnabled());
 
 1768            $sess->setInfo($this->lng->txt(
'sess_limit_info'));
 
 1771            $prev->setMinValue(0);
 
 1773                $this->object->getNumberOfPreviousSessions() == -1 ?
 
 1775                    $this->object->getNumberOfPreviousSessions()
 
 1778            $prev->setMaxLength(3);
 
 1779            $sess->addSubItem($prev);
 
 1782            $next->setMinValue(0);
 
 1784                $this->object->getNumberOfNextSessions() == -1 ?
 
 1786                    $this->object->getNumberOfNextSessions()
 
 1789            $next->setMaxLength(3);
 
 1790            $sess->addSubItem($next);
 
 1791            $opt->addSubItem($sess);
 
 1794            $opt->setInfo($this->lng->txt(
'grp_view_info_simple'));
 
 1795            $view_type->addOption($opt);
 
 1798            $opt->setInfo($this->lng->txt(
'grp_view_info_by_type'));
 
 1799            $view_type->addOption($opt);
 
 1800            $form->addItem($view_type);
 
 1804            $sorting_settings = array();
 
 1805            if ($hasParentMembership) {
 
 1815            $feat->setTitle($this->lng->txt(
'obj_features'));
 
 1816            $form->addItem($feat);
 
 1818            include_once 
'./Services/Object/classes/class.ilObjectServiceSettingsGUI.php';
 
 1820                $this->object->getId(),
 
 1822                $this->getSubServices()
 
 1827            $mem->setChecked($this->object->getShowMembers());
 
 1828            $mem->setInfo($this->lng->txt(
'grp_show_members_info'));
 
 1829            $form->addItem($mem);
 
 1833            $mail_type->setValue($this->object->getMailToMembersType());
 
 1836                $this->lng->txt(
'grp_mail_tutors_only'),
 
 1838                $this->lng->txt(
'grp_mail_tutors_only_info')
 
 1840            $mail_type->addOption($mail_tutors);
 
 1843                $this->lng->txt(
'grp_mail_all'),
 
 1845                $this->lng->txt(
'grp_mail_all_info')
 
 1847            $mail_type->addOption($mail_all);
 
 1848            $form->addItem($mail_type);
 
 1851            $not = 
new ilCheckboxInputGUI($this->lng->txt(
'grp_auto_notification'), 
'auto_notification');
 
 1853            $not->setInfo($this->lng->txt(
'grp_auto_notification_info'));
 
 1854            $not->setChecked($this->object->getAutoNotification());
 
 1855            $form->addItem($not);
 
 1860                $form->setTitle($this->lng->txt(
'grp_new'));
 
 1863                $form->addCommandButton(
'save', $this->lng->txt(
'grp_new'));
 
 1864                $form->addCommandButton(
'cancel', $this->lng->txt(
'cancel'));
 
 1868                $form->setTitle($this->lng->txt(
'grp_edit'));
 
 1872                include_once 
'Modules/Group/classes/class.ilECSGroupSettings.php';
 
 1874                $ecs->addSettingsToForm($form, 
'grp');
 
 1876                $form->addCommandButton(
'update', $this->lng->txt(
'save'));
 
 1877                $form->addCommandButton(
'cancel', $this->lng->txt(
'cancel'));
 
 1896        $ilAccess = 
$DIC[
'ilAccess'];
 
 1901                $this->tabs_gui->addSubTabTarget(
 
 1903                    $this->ctrl->getLinkTarget($this, 
'edit'),
 
 1908                $this->tabs_gui->addSubTabTarget(
 
 1909                    "grp_info_settings",
 
 1910                    $this->ctrl->getLinkTarget($this, 
'editInfo'),
 
 1915                include_once(
"./Services/Maps/classes/class.ilMapUtil.php");
 
 1917                    $this->tabs_gui->addSubTabTarget(
 
 1919                        $this->ctrl->getLinkTarget($this, 
'editMapSettings'),
 
 1925                $this->tabs_gui->addSubTabTarget(
 
 1927                    $this->ctrl->getLinkTargetByClass(
'ilobjcoursegroupinggui', 
'listGroupings'),
 
 1932                include_once(
'Services/PrivacySecurity/classes/class.ilPrivacySettings.php');
 
 1933                include_once(
'Modules/Course/classes/Export/class.ilCourseDefinedFieldDefinition.php');
 
 1936                    $this->tabs_gui->addSubTabTarget(
 
 1937                        'grp_custom_user_fields',
 
 1938                        $this->ctrl->getLinkTargetByClass(
'ilobjectcustomuserfieldsgui'),
 
 1940                        'ilobjectcustomuserfieldsgui' 
 1945                if ($this->object->getUseNews()) {
 
 1946                    $this->tabs_gui->addSubTab(
 
 1947                        'obj_news_settings',
 
 1948                        $this->lng->txt(
"cont_news_settings"),
 
 1949                        $this->ctrl->getLinkTargetByClass(
'ilcontainernewssettingsgui')
 
 1954                if ($lti_settings->hasSettingsAccess()) {
 
 1955                    $this->tabs_gui->addSubTabTarget(
 
 1957                        $this->ctrl->getLinkTargetByClass(ilLTIProviderObjectSettingGUI::class)
 
 1961                $this->tabs_gui->addSubTabTarget(
 
 1962                    "obj_multilinguality",
 
 1963                    $this->ctrl->getLinkTargetByClass(
"ilobjecttranslationgui", 
""),
 
 1965                    "ilobjecttranslationgui" 
 1986        $ilAccess = 
$DIC[
'ilAccess'];
 
 1988        if ($ilAccess->checkAccess(
'write', 
'', $this->object->getRefId())) {
 
 1993        if (!$this->object->members_obj->isAssigned(
$ilUser->getId())) {
 
 1997        include_once 
'./Services/Container/classes/class.ilMemberViewSettings.php';
 
 2002        include_once(
'Services/PrivacySecurity/classes/class.ilPrivacySettings.php');
 
 2003        include_once(
'Services/Membership/classes/class.ilMemberAgreement.php');
 
 2012        include_once(
'Modules/Course/classes/Export/class.ilCourseUserData.php');
 
 2040        parent::prepareOutput($a_show_subobjects);
 
 2049        $link = chr(13) . chr(10) . chr(13) . chr(10);
 
 2050        $link .= $this->lng->txt(
'grp_mail_permanent_link');
 
 2051        $link .= chr(13) . chr(10) . chr(13) . chr(10);
 
 2052        include_once 
'Services/Link/classes/class.ilLink.php';
 
 2054        return rawurlencode(base64_encode($link));
 
 2064        $lg = parent::initHeaderAction($a_sub_type, $a_sub_id);
 
 2066        include_once(
'./Modules/Group/classes/class.ilGroupParticipants.php');
 
 2068            include_once 
"Services/Membership/classes/class.ilMembershipNotifications.php";
 
 2071                if (!$noti->isCurrentUserActive()) {
 
 2075                        $this->lng->txt(
"grp_notification_deactivated")
 
 2078                    $this->ctrl->setParameter($this, 
"grp_ntf", 1);
 
 2079                    $caption = 
"grp_activate_notification";
 
 2084                        $this->lng->txt(
"grp_notification_activated")
 
 2087                    $this->ctrl->setParameter($this, 
"grp_ntf", 0);
 
 2088                    $caption = 
"grp_deactivate_notification";
 
 2091                if ($noti->canCurrentUserEdit()) {
 
 2092                    $lg->addCustomCommand(
 
 2093                        $this->ctrl->getLinkTarget($this, 
"saveNotification"),
 
 2098                $this->ctrl->setParameter($this, 
"grp_ntf", 
"");
 
 2113        include_once(
'Modules/Course/classes/Export/class.ilCourseUserData.php');
 
 2116        $res_data = array();
 
 2117        foreach ($a_data as $usr_id => $user_data) {
 
 2118            $res_data[$usr_id] = $user_data;
 
 2121            include_once 
'./Services/User/classes/class.ilUserDefinedData.php';
 
 2123            foreach ($udf_data->getAll() as $field => $value) {
 
 2124                list(
$f, $field_id) = explode(
'_', $field);
 
 2125                $res_data[$usr_id][
'udf_' . $field_id] = (string) $value;
 
 2128            foreach ((array) $odfs[$usr_id] as $cdf_field => $cdf_value) {
 
 2129                $res_data[$usr_id][
'cdf_' . $cdf_field] = (string) $cdf_value;
 
 2142        $local_roles = $this->
object->getLocalGroupRoles(
false);
 
 2143        $grp_member = $this->
object->getDefaultMemberRole();
 
 2144        $grp_roles = array();
 
 2147        if (in_array($grp_member, $local_roles)) {
 
 2149            unset($local_roles[$grp_roles[$grp_member]]);
 
 2152        foreach ($local_roles as $title => $role_id) {
 
 2163        $this->ctrl->redirectByClass(
'ilUsersGalleryGUI');
 
 2171        $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.
static isAccessible($ref_id)
Is container skill presentation accessible.
& 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
isNull()
Check if a date is null (Datetime == '0000-00-00 00:00:00', unixtime == 0,...)
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 _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 CALENDAR_CONFIGURATION
const EXTERNAL_MAIL_PREFIX
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.
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