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)
 
   43        parent::__construct($a_data, $a_id, $a_call_by_reference, $a_prepare_output);
 
   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();
 
   70            $ilAccess->checkAccess(
"read", 
"", 
$_GET[
"ref_id"])) {
 
   71            include_once(
"./Services/Link/classes/class.ilLink.php");
 
   72            $ilNavigationHistory->addItem(
 
   80        if ($next_class == 
"" && $cmd == 
"" && $this->object->isNewsTimelineLandingPageEffective()
 
   81            && $ilAccess->checkAccess(
"read", 
"", 
$_GET[
"ref_id"])) {
 
   82            $this->ctrl->redirectbyclass(
"ilnewstimelinegui");
 
   85        switch ($next_class) {
 
   86            case 'illtiproviderobjectsettinggui':
 
   88                $this->tabs_gui->activateTab(
'settings');
 
   89                $this->tabs_gui->activateSubTab(
'lti_provider');
 
   91                $lti_gui->setCustomRolesForSelection(
$GLOBALS[
'DIC']->rbac()->review()->
getLocalRoles($this->object->getRefId()));
 
   92                $lti_gui->offerLTIRolesForSelection(
false);
 
   93                $this->ctrl->forwardCommand($lti_gui);
 
   97            case 'ilgroupmembershipgui':
 
   99                $this->tabs_gui->activateTab(
'members');
 
  101                include_once 
'./Modules/Group/classes/class.ilGroupMembershipGUI.php';
 
  103                $this->ctrl->forwardCommand($mem_gui);
 
  107            case 'ilgroupregistrationgui':
 
  108                $this->ctrl->setReturn($this, 
'');
 
  109                $this->tabs_gui->setTabActive(
'join');
 
  110                include_once(
'./Modules/Group/classes/class.ilGroupRegistrationGUI.php');
 
  112                $this->ctrl->forwardCommand($registration);
 
  115            case 'ilpermissiongui':
 
  116                $this->tabs_gui->setTabActive(
'perm_settings');
 
  117                include_once(
"Services/AccessControl/classes/class.ilPermissionGUI.php");
 
  119                $ret = &$this->ctrl->forwardCommand($perm_gui);
 
  122            case "ilinfoscreengui":
 
  126            case "illearningprogressgui":
 
  127                include_once 
'./Services/Tracking/classes/class.ilLearningProgressGUI.php';
 
  131                    $this->object->getRefId(),
 
  134                $this->ctrl->forwardCommand($new_gui);
 
  135                $this->tabs_gui->setTabActive(
'learning_progress');
 
  138            case 'ilobjcoursegroupinggui':
 
  141                include_once 
'./Modules/Course/classes/class.ilObjCourseGroupingGUI.php';
 
  142                $this->ctrl->setReturn($this, 
'edit');
 
  144                $this->ctrl->forwardCommand($crs_grp_gui);
 
  146                $this->tabs_gui->setTabActive(
'settings');
 
  147                $this->tabs_gui->setSubTabActive(
'groupings');
 
  150            case 'ilcoursecontentgui':
 
  152                include_once 
'./Modules/Course/classes/class.ilCourseContentGUI.php';
 
  154                $this->ctrl->forwardCommand($course_content_obj);
 
  157            case 'ilpublicuserprofilegui':
 
  158                require_once 
'./Services/User/classes/class.ilPublicUserProfileGUI.php';
 
  160                $this->tabs_gui->setTabActive(
'group_members');
 
  161                $this->tabs_gui->setSubTabActive(
'grp_members_gallery');
 
  163                if (
$_GET[
"back_url"] == 
"") {
 
  164                    $profile_gui->setBackUrl($this->ctrl->getLinkTargetByClass([
"ilGroupMembershipGUI", 
"ilUsersGalleryGUI"], 
'view'));
 
  166                $html = $this->ctrl->forwardCommand($profile_gui);
 
  167                $this->tpl->setVariable(
"ADM_CONTENT", 
$html);
 
  171                $this->tabs_gui->setTabActive(
'none');
 
  173                include_once(
"./Services/Style/Content/classes/class.ilObjStyleSheet.php");
 
  174                $this->tpl->setVariable(
 
  175                    "LOCATION_CONTENT_STYLESHEET",
 
  182            case "ilcontainerpagegui":
 
  185                    $this->tpl->setContent(
$ret);
 
  189            case 'ilobjectcopygui':
 
  190                include_once 
'./Services/Object/classes/class.ilObjectCopyGUI.php';
 
  193                $this->ctrl->forwardCommand($cp);
 
  196            case "ilobjstylesheetgui":
 
  200            case 'ilobjectcustomuserfieldsgui':
 
  201                include_once 
'./Services/Membership/classes/class.ilObjectCustomUserFieldsGUI.php';
 
  204                $this->tabs_gui->setTabActive(
'settings');
 
  205                $this->ctrl->forwardCommand($cdf_gui);
 
  208            case 'ilmemberagreementgui':
 
  209                include_once(
'Services/Membership/classes/class.ilMemberAgreementGUI.php');
 
  210                $this->ctrl->setReturn($this, 
'');
 
  211                $this->tabs_gui->setTabActive(
'view_content');
 
  213                $this->ctrl->forwardCommand($agreement);
 
  217                $this->tabs_gui->setTabActive(
'export');
 
  218                include_once 
'./Services/Export/classes/class.ilExportGUI.php';
 
  220                $exp->addFormat(
'xml');
 
  221                $this->ctrl->forwardCommand($exp);
 
  224            case "ilcommonactiondispatchergui":
 
  225                include_once(
"Services/Object/classes/class.ilCommonActionDispatcherGUI.php");
 
  227                $this->ctrl->forwardCommand($gui);
 
  230            case 'ilobjectservicesettingsgui':
 
  231                $this->ctrl->setReturn($this, 
'edit');
 
  233                $this->tabs_gui->activateTab(
'settings');
 
  234                $this->tabs_gui->activateSubTab(
'tool_settings');
 
  236                include_once 
'./Services/Object/classes/class.ilObjectServiceSettingsGUI.php';
 
  239                    $this->object->getId(),
 
  244                $this->ctrl->forwardCommand($service);
 
  247            case 'ilmailmembersearchgui':
 
  248                include_once 
'Services/Mail/classes/class.ilMail.php';
 
  251                if (!($ilAccess->checkAccess(
'manage_members', 
'', $this->object->getRefId()) ||
 
  253                    $rbacsystem->checkAccess(
'internal_mail', $mail->getMailObjectReferenceId())) {
 
  254                    $ilErr->raiseError($this->lng->txt(
"msg_no_perm_read"), 
$ilErr->MESSAGE);
 
  257                $this->tabs_gui->setTabActive(
'members');
 
  259                include_once 
'./Services/Contact/classes/class.ilMailMemberSearchGUI.php';
 
  260                include_once 
'./Services/Contact/classes/class.ilMailMemberGroupRoles.php';
 
  264                $this->ctrl->forwardCommand($mail_search);
 
  267            case 'ilbadgemanagementgui':
 
  268                $this->tabs_gui->setTabActive(
'obj_tool_setting_badges');
 
  269                include_once 
'Services/Badge/classes/class.ilBadgeManagementGUI.php';
 
  271                $this->ctrl->forwardCommand($bgui);
 
  274            case "ilcontainernewssettingsgui":
 
  276                $this->tabs_gui->setTabActive(
'settings');
 
  277                include_once(
"./Services/Container/classes/class.ilContainerNewsSettingsGUI.php");
 
  279                $news_set_gui->setTimeline(
true);
 
  280                $news_set_gui->setCronNotifications(
true);
 
  281                $news_set_gui->setHideByDate(
true);
 
  282                $this->ctrl->forwardCommand($news_set_gui);
 
  285            case "ilnewstimelinegui":
 
  287                $this->tabs_gui->setTabActive(
'news_timeline');
 
  288                include_once(
"./Services/News/classes/class.ilNewsTimelineGUI.php");
 
  290                $t->setUserEditAll($ilAccess->checkAccess(
'write', 
'', $this->object->getRefId(), 
'grp'));
 
  292                $this->ctrl->forwardCommand(
$t);
 
  293                include_once 
'Services/Tracking/classes/class.ilLearningProgress.php';
 
  296                    $this->object->getId(),
 
  297                    $this->object->getRefId(),
 
  302            case "ilcontainerskillgui":
 
  303                $this->tabs_gui->activateTab(
'obj_tool_setting_skills');
 
  304                include_once(
"./Services/Container/Skills/classes/class.ilContainerSkillGUI.php");
 
  306                $this->ctrl->forwardCommand($gui);
 
  309            case 'ilcalendarpresentationgui':
 
  310                include_once(
'./Services/Calendar/classes/class.ilCalendarPresentationGUI.php');
 
  312                $ret = $this->ctrl->forwardCommand($cal);
 
  315            case 'ilobjectmetadatagui':
 
  316                if (!$ilAccess->checkAccess(
'write', 
'', $this->object->getRefId())) {
 
  317                    $ilErr->raiseError($this->lng->txt(
'permission_denied'), 
$ilErr->WARNING);
 
  319                $this->tabs_gui->activateTab(
'meta_data');
 
  324            case 'ilobjecttranslationgui':
 
  327                $this->tabs->activateTab(
"settings");
 
  328                include_once(
"./Services/Object/classes/class.ilObjectTranslationGUI.php");
 
  330                $this->ctrl->forwardCommand($transgui);
 
  337                        !$ilAccess->checkAccess(
'visible', 
'', $this->object->getRefId(), 
'grp') and
 
  338                        !$ilAccess->checkAccess(
'read', 
'', $this->object->getRefId(), 
'grp')) {
 
  339                    $ilErr->raiseError($this->lng->txt(
"msg_no_perm_read"), 
$ilErr->MESSAGE);
 
  343                if ($cmd == 
'infoScreenGoto') {
 
  344                    if ($this->object->isRegistrationEnabled()) {
 
  353                    && !
$rbacsystem->checkAccess(
'read', $this->object->getRefId()) && $cmd != 
'infoScreen')
 
  356                    if (!
$rbacsystem->checkAccess(
'join', $this->object->getRefId())) {
 
  357                        $this->ctrl->redirect($this, 
"infoScreen");
 
  359                        include_once(
'./Modules/Group/classes/class.ilGroupRegistrationGUI.php');
 
  360                        $this->ctrl->redirectByClass(
"ilGroupRegistrationGUI", 
"show");
 
  382        include_once 
'Services/Tracking/classes/class.ilLearningProgress.php';
 
  385            $this->object->getId(),
 
  386            $this->object->getRefId(),
 
  391            $this->object->getId(),
 
  392            $this->object->getId(),
 
  397        if (strtolower(
$_GET[
"baseClass"]) == 
"iladministrationgui") {
 
  398            parent::viewObject();
 
  403            include_once(
'Services/Membership/classes/class.ilMemberAgreementGUI.php');
 
  404            $this->tabs_gui->setTabActive(
'view_content');
 
  405            $this->ctrl->setReturn($this, 
'view');
 
  407            $this->ctrl->setCmdClass(get_class($agreement));
 
  408            $this->ctrl->forwardCommand($agreement);
 
  412        $this->tabs_gui->setTabActive(
'view_content');
 
  423        $ilTabs = 
$DIC[
'ilTabs'];
 
  425        $ilTabs->activateTab(
"view_content");
 
  426        $ret = parent::renderObject();
 
  444        if ($course_ref_id = 
$tree->checkForParentType($this->object->getRefId(), 
'crs')) {
 
  445            include_once(
"./Modules/Course/classes/class.ilObjCourse.php");
 
  446            include_once(
"./Modules/Course/classes/class.ilObjCourseGUI.php");
 
  450                'ilcoursecontentgui',
 
  456                $this->object->getRefId()
 
  478                $GLOBALS[
'DIC'][
'tree']->checkForParentType($new_object->
getRefId(), 
'crs', 
true) ||
 
  479                $GLOBALS[
'DIC'][
'tree']->checkForParentType($new_object->
getRefId(), 
'grp', 
true)
 
  485        include_once 
'./Services/Container/classes/class.ilContainerSortingSettings.php';
 
  487        $sort->setSortMode($sort_mode);
 
  492        include_once 
'./Modules/Group/classes/class.ilGroupParticipants.php';
 
  495        $members_obj->updateNotification(
$ilUser->getId(), 
$ilSetting->get(
'mail_grp_admin_notification', 
true));
 
  496        $members_obj->updateContact(
$ilUser->getId(), 
true);
 
  498        ilUtil::sendSuccess($this->lng->txt(
"object_added"), 
true);
 
  500            $this->ctrl->setParameter($this, 
"ref_id", $new_object->
getRefId());
 
  501            $this->ctrl->redirect($this, 
'edit');
 
  517        $this->tabs_gui->setTabActive(
'settings');
 
  518        $this->tabs_gui->setSubTabActive(
'grp_settings');
 
  524        $this->tpl->setVariable(
'ADM_CONTENT', $a_form->getHTML());
 
  536        include_once 
'./Services/DidacticTemplate/classes/class.ilDidacticTemplateUtils.php';
 
  538            $this->object->getRefId(),
 
  539            (
int) $_REQUEST[
'grp_type']
 
  542        ilUtil::sendSuccess($this->lng->txt(
'settings_saved'), 
true);
 
  543        $this->ctrl->redirect($this, 
'edit');
 
  559        if (
$form->checkInput()) {
 
  561            include_once 
'./Services/DidacticTemplate/classes/class.ilDidacticTemplateObjSettings.php';
 
  565            $new_type_info = 
$form->getInput(
'didactic_type');
 
  566            if ($new_type_info) {
 
  567                $new_type = explode(
'_', 
$form->getInput(
'didactic_type'));
 
  568                $new_type = $new_type[1];
 
  570                $modified = ($new_type != $old_type);
 
  574            $old_autofill = $this->
object->hasWaitingListAutoFill();
 
  581            $this->
object->enableUnlimitedRegistration((
bool) !
$form->getInput(
'reg_limit_time'));
 
  582            $this->
object->enableMembershipLimitation((
bool) 
$form->getInput(
'registration_membership_limited'));
 
  583            $this->
object->setMinMembers((
int) 
$form->getInput(
'registration_min_members'));
 
  584            $this->
object->setMaxMembers((
int) 
$form->getInput(
'registration_max_members'));
 
  585            $this->
object->enableRegistrationAccessCode((
bool) 
$form->getInput(
'reg_code_enabled'));
 
  586            $this->
object->setRegistrationAccessCode(
$form->getInput(
'reg_code'));
 
  587            $this->
object->setViewMode(
$form->getInput(
'view_mode'));
 
  588            $this->
object->setMailToMembersType((
int) 
$form->getInput(
'mail_type'));
 
  589            $this->
object->setShowMembers((
int) 
$form->getInput(
'show_members'));
 
  592            $period = 
$form->getItemByPostVar(
'period');
 
  593            $this->
object->setStart($period->getStart());
 
  594            $this->
object->setEnd($period->getEnd());
 
  596            $reg = 
$form->getItemByPostVar(
"reg");
 
  598                $this->
object->enableUnlimitedRegistration(
false);
 
  600                $this->
object->enableUnlimitedRegistration(
true);
 
  603            $this->
object->setRegistrationStart($reg->getStart());
 
  604            $this->
object->setRegistrationEnd($reg->getEnd());
 
  606            $cancel_end = 
$form->getItemByPostVar(
"cancel_end");
 
  607            $this->
object->setCancellationEnd($cancel_end->getDate());
 
  609            switch ((
int) 
$_POST[
'waiting_list']) {
 
  611                    $this->
object->enableWaitingList(
true);
 
  612                    $this->
object->setWaitingListAutoFill(
true);
 
  616                    $this->
object->enableWaitingList(
true);
 
  617                    $this->
object->setWaitingListAutoFill(
false);
 
  621                    $this->
object->enableWaitingList(
false);
 
  622                    $this->
object->setWaitingListAutoFill(
false);
 
  627            $obj_service->commonSettings()->legacyForm(
$form, $this->
object)->saveTitleIconVisibility();
 
  630            $obj_service->commonSettings()->legacyForm(
$form, $this->
object)->saveTopActionsVisibility();
 
  633            $obj_service->commonSettings()->legacyForm(
$form, $this->
object)->saveIcon();
 
  636            $obj_service->commonSettings()->legacyForm(
$form, $this->
object)->saveTileImage();
 
  642            $this->
object->update();
 
  645            include_once 
'./Services/Object/classes/class.ilObjectServiceSettingsGUI.php';
 
  647                $this->object->getId(),
 
  666                $this->object->hasWaitingListAutoFill()) {
 
  667                $this->
object->handleAutoFill();
 
  671            require_once(
'Services/Tracking/classes/class.ilChangeEvent.php');
 
  676                $this->object->getId(),
 
  683            include_once 
'Modules/Group/classes/class.ilECSGroupSettings.php';
 
  685            $ecs->handleSettingsUpdate();
 
  689            $form->setValuesByPost();
 
  696            if ($new_type == 0) {
 
  697                $new_type_txt = 
$GLOBALS[
'DIC'][
'lng']->txt(
'il_grp_status_open');
 
  699                include_once 
'./Services/DidacticTemplate/classes/class.ilDidacticTemplateSetting.php';
 
  701                $new_type_txt = $dtpl->getPresentationTitle(
$GLOBALS[
'DIC'][
'lng']->getLangKey());
 
  705            include_once 
'./Services/Utilities/classes/class.ilConfirmationGUI.php';
 
  708            $confirm->setFormAction($this->ctrl->getFormAction($this));
 
  712                $this->lng->txt(
'grp_info_new_grp_type') . 
': ' . $new_type_txt
 
  714            $confirm->addButton($this->lng->txt(
'grp_change_type'), 
'updateGroupType');
 
  715            $confirm->setCancel($this->lng->txt(
'cancel'), 
'edit');
 
  717            $this->tpl->setContent($confirm->getHTML());
 
  720            ilUtil::sendSuccess($this->lng->txt(
"msg_obj_modified"), 
true);
 
  721            $this->ctrl->redirect($this, 
'edit');
 
  736        $ilAccess = 
$DIC[
'ilAccess'];
 
  739        $this->tabs_gui->setTabActive(
'settings');
 
  740        $this->tabs_gui->setSubTabActive(
'grp_map_settings');
 
  742        include_once(
'./Services/Maps/classes/class.ilMapUtil.php');
 
  744            !$ilAccess->checkAccess(
"write", 
"", $this->object->getRefId())) {
 
  748        $latitude = $this->
object->getLatitude();
 
  749        $longitude = $this->
object->getLongitude();
 
  750        $zoom = $this->
object->getLocationZoom();
 
  753        if ($latitude == 0 && $longitude == 0 && $zoom == 0) {
 
  755            $latitude = 
$def[
"latitude"];
 
  756            $longitude = 
$def[
"longitude"];
 
  757            $zoom = 
$def[
"zoom"];
 
  761        include_once(
"./Services/Form/classes/class.ilPropertyFormGUI.php");
 
  765        $form->setTitle($this->lng->txt(
"grp_map_settings"));
 
  769            $this->lng->txt(
"grp_enable_map"),
 
  772        $public->setValue(
"1");
 
  773        $public->setChecked($this->object->getEnableGroupMap());
 
  774        $form->addItem($public);
 
  778            $this->lng->txt(
"grp_map_location"),
 
  781        $loc_prop->setLatitude($latitude);
 
  782        $loc_prop->setLongitude($longitude);
 
  783        $loc_prop->setZoom($zoom);
 
  784        $form->addItem($loc_prop);
 
  786        $form->addCommandButton(
"saveMapSettings", $this->lng->txt(
"save"));
 
  788        $this->tpl->setVariable(
"ADM_CONTENT", 
$form->getHTML());
 
  802        $this->
object->update();
 
  804        $ilCtrl->redirect($this, 
"editMapSettings");
 
  819        $ilAccess = 
$DIC[
'ilAccess'];
 
  824        $this->tabs_gui->setTabActive(
'settings');
 
  825        $this->tabs_gui->setSubTabActive(
'grp_info_settings');
 
  828        $this->tpl->setContent(
$form->getHTML());
 
  839        include_once(
"./Services/Form/classes/class.ilPropertyFormGUI.php");
 
  841        $form->setFormAction($this->ctrl->getFormAction($this, 
'updateInfo'));
 
  842        $form->setTitle($this->lng->txt(
'grp_general_informations'));
 
  843        $form->addCommandButton(
'updateInfo', $this->lng->txt(
'save'));
 
  844        $form->addCommandButton(
'cancel', $this->lng->txt(
'cancel'));
 
  847        $area->setInfo($this->lng->txt(
'grp_information_info'));
 
  848        $area->setValue($this->object->getInformation());
 
  851        $form->addItem($area);
 
  867        $this->
object->update();
 
  869        ilUtil::sendSuccess($this->lng->txt(
"settings_saved"));
 
  877        include_once(
'./Services/PrivacySecurity/classes/class.ilPrivacySettings.php');
 
  880        include_once 
'./Services/Tracking/classes/class.ilObjUserTracking.php';
 
  881        $this->show_tracking =
 
  886        if ($this->show_tracking) {
 
  887            include_once(
'./Services/Object/classes/class.ilObjectLP.php');
 
  889            $this->show_tracking = $olp->isActive();
 
  892        if ($this->show_tracking) {
 
  893            include_once 
'Services/Tracking/classes/class.ilLPStatusWrapper.php';
 
  899        if ($privacy->enabledGroupAccessTimes()) {
 
  900            include_once(
'./Services/Tracking/classes/class.ilLearningProgress.php');
 
  904        $do_prtf = (is_array($selected_columns) &&
 
  905            in_array(
'prtf', $selected_columns) &&
 
  908            include_once 
"Modules/Portfolio/classes/class.ilObjPortfolio.php";
 
  911                $this->ctrl->getLinkTarget($this, 
"members")
 
  916        foreach ($ids as $usr_id) {
 
  918            $tmp_data[
'firstname'] = 
$name[
'firstname'];
 
  919            $tmp_data[
'lastname'] = 
$name[
'lastname'];
 
  921            $tmp_data[
'notification'] = $this->
object->members_obj->isNotificationEnabled($usr_id) ? 1 : 0;
 
  922            $tmp_data[
'contact'] = $this->
object->members_obj->isContact($usr_id) ? 1 : 0;
 
  923            $tmp_data[
'usr_id'] = $usr_id;
 
  926            foreach ((array) $profile_data[$usr_id] as $field => $value) {
 
  927                $tmp_data[$field] = $value;
 
  930            if ($this->show_tracking) {
 
  931                if (in_array($usr_id, $completed)) {
 
  933                } elseif (in_array($usr_id, $in_progress)) {
 
  935                } elseif (in_array($usr_id, 
$failed)) {
 
  942            if ($privacy->enabledGroupAccessTimes()) {
 
  943                if (isset($progress[$usr_id][
'ts']) and $progress[$usr_id][
'ts']) {
 
  947                    $tmp_data[
'access_time_unix'] = $tmp_date->get(
IL_CAL_UNIX);
 
  949                    $tmp_data[
'access_time'] = $this->lng->txt(
'no_date');
 
  950                    $tmp_data[
'access_time_unix'] = 0;
 
  955                $tmp_data[
'prtf'] = $all_prtf[$usr_id];
 
  958            $members[$usr_id] = $tmp_data;
 
  960        return $members ? $members : array();
 
  976        if ($part->isLastAdmin(
$ilUser->getId())) {
 
  982        $this->tabs_gui->setTabActive(
'grp_btn_unsubscribe');
 
  984        include_once 
"Services/Utilities/classes/class.ilConfirmationGUI.php";
 
  986        $cgui->setHeaderText($this->lng->txt(
'grp_dismiss_myself'));
 
  987        $cgui->setFormAction($this->ctrl->getFormAction($this));
 
  988        $cgui->setCancel($this->lng->txt(
"cancel"), 
"cancel");
 
  989        $cgui->setConfirm($this->lng->txt(
"grp_btn_unsubscribe"), 
"unsubscribe");
 
  990        $this->tpl->setContent($cgui->getHTML());
 
 1009        $this->
object->members_obj->delete(
$ilUser->getId());
 
 1011        include_once 
'./Modules/Group/classes/class.ilGroupMembershipMailNotification.php';
 
 1012        $this->
object->members_obj->sendNotification(
 
 1016        $this->
object->members_obj->sendNotification(
 
 1021        ilUtil::sendSuccess($this->lng->txt(
'grp_msg_membership_annulled'), 
true);
 
 1025            $tree->getParentId($this->object->getRefId())
 
 1027        $ilCtrl->redirectByClass(
"ilrepositorygui", 
"");
 
 1038        $this->tabs_gui->addTab(
 
 1040            $this->lng->txt(
"content"),
 
 1041            $this->ctrl->getLinkTarget($this, 
"view")
 
 1053        $ilAccess = 
$DIC[
'ilAccess'];
 
 1055        $ilHelp = 
$DIC[
'ilHelp'];
 
 1057        $ilHelp->setScreenIdComponent(
"grp");
 
 1059        if ($ilAccess->checkAccess(
'read', 
'', $this->ref_id)) {
 
 1060            if ($this->object->isNewsTimelineEffective()) {
 
 1061                if (!$this->object->isNewsTimelineLandingPageEffective()) {
 
 1064                $this->tabs_gui->addTab(
 
 1066                    $lng->txt(
"cont_news_timeline_tab"),
 
 1067                    $this->ctrl->getLinkTargetByClass(
"ilnewstimelinegui", 
"show")
 
 1069                if ($this->object->isNewsTimelineLandingPageEffective()) {
 
 1077            $ilAccess->checkAccess(
'visible', 
'', $this->ref_id) ||
 
 1078            $ilAccess->checkAccess(
'join', 
'', $this->ref_id) ||
 
 1079            $ilAccess->checkAccess(
'read', 
'', $this->ref_id)
 
 1081            $this->tabs_gui->addTarget(
 
 1083                $this->ctrl->getLinkTargetByClass(
 
 1084                    array(
"ilobjgroupgui", 
"ilinfoscreengui"),
 
 1095        if ($ilAccess->checkAccess(
'write', 
'', $this->object->getRefId())) {
 
 1096            $this->tabs_gui->addTarget(
 
 1098                $this->ctrl->getLinkTarget($this, 
"edit"),
 
 1099                array(
"edit", 
"editMapSettings"),
 
 1105        include_once 
'./Modules/Group/classes/class.ilGroupParticipants.php';
 
 1109        include_once 
'./Modules/Group/classes/class.ilGroupMembershipGUI.php';
 
 1111        $membership_gui->addMemberTab($this->tabs_gui, $is_participant);
 
 1115        if ($ilAccess->checkAccess(
'write', 
'', $this->ref_id)) {
 
 1116            include_once 
'Services/Badge/classes/class.ilBadgeHandler.php';
 
 1118                $this->tabs_gui->addTarget(
 
 1119                    "obj_tool_setting_badges",
 
 1120                    $this->ctrl->getLinkTargetByClass(
"ilbadgemanagementgui", 
""),
 
 1122                    "ilbadgemanagementgui" 
 1128        include_once(
"./Services/Object/classes/class.ilObjectServiceSettingsGUI.php");
 
 1130            $this->object->getId(),
 
 1134            $this->tabs_gui->addTarget(
 
 1135                "obj_tool_setting_skills",
 
 1136                $this->ctrl->getLinkTargetByClass(array(
"ilcontainerskillgui", 
"ilcontskillpresentationgui"), 
""),
 
 1138                array(
"ilcontainerskillgui", 
"ilcontskillpresentationgui", 
"ilcontskilladmingui")
 
 1143        include_once 
'./Services/Tracking/classes/class.ilLearningProgressAccess.php';
 
 1145            $this->tabs_gui->addTarget(
 
 1146                'learning_progress',
 
 1147                $this->ctrl->getLinkTargetByClass(array(
'ilobjgroupgui',
'illearningprogressgui'), 
''),
 
 1149                array(
'illplistofobjectsgui',
'illplistofsettingsgui',
'illearningprogressgui',
'illplistofprogressgui')
 
 1154        if ($ilAccess->checkAccess(
'write', 
'', $this->ref_id)) {
 
 1156            $tab_link = $md_gui->getTab();
 
 1157            if ($tab_link !== 
null) {
 
 1158                $this->tabs_gui->addTab(
 
 1160                    $this->lng->txt(
'meta_data'),
 
 1163                    'ilObjectMetaDataGUI' 
 1169        if ($ilAccess->checkAccess(
'write', 
'', $this->object->getRefId())) {
 
 1170            $this->tabs_gui->addTarget(
 
 1172                $this->ctrl->getLinkTargetByClass(
'ilexportgui', 
''),
 
 1181        if ($ilAccess->checkAccess(
'join', 
'', $this->object->getRefId()) and
 
 1182            !$this->object->members_obj->isAssigned(
$ilUser->getId())) {
 
 1183            include_once 
'./Modules/Group/classes/class.ilGroupWaitingList.php';
 
 1185                $this->tabs_gui->addTab(
 
 1187                    $this->lng->txt(
'membership_leave'),
 
 1188                    $this->ctrl->getLinkTargetByClass(
'ilgroupregistrationgui', 
'show', 
'')
 
 1191                $this->tabs_gui->addTarget(
 
 1193                    $this->ctrl->getLinkTargetByClass(
'ilgroupregistrationgui', 
"show"),
 
 1199        if ($ilAccess->checkAccess(
'leave', 
'', $this->object->getRefId()) and
 
 1200            $this->object->members_obj->isMember(
$ilUser->getId())) {
 
 1201            $this->tabs_gui->addTarget(
 
 1202                "grp_btn_unsubscribe",
 
 1203                $this->ctrl->getLinkTarget($this, 
"leave"),
 
 1217        $this->ctrl->setCmd(
"showSummary");
 
 1218        $this->ctrl->setCmdClass(
"ilinfoscreengui");
 
 1233        $this->tabs_gui->setTabActive(
'info_short');
 
 1240            $this->object->getId(),
 
 1241            $this->object->getId(),
 
 1245        include_once(
"./Services/InfoScreen/classes/class.ilInfoScreenGUI.php");
 
 1248        if (strlen($this->object->getInformation())) {
 
 1249            $info->addSection($this->lng->txt(
'grp_general_informations'));
 
 1250            $info->addProperty($this->lng->txt(
'grp_information'), nl2br(
 
 1255        $info->enablePrivateNotes();
 
 1256        $info->enableLearningProgress(
true);
 
 1259        $record_gui->setInfoObject(
$info);
 
 1260        $record_gui->parse();
 
 1263        $info->addMetaDataSections($this->object->getId(), 0, $this->object->getType());
 
 1268        $contacts = $parts->getContacts();
 
 1269        if (count($contacts) > 0) {
 
 1270            $info->addSection($this->lng->txt(
"grp_mem_contacts"));
 
 1271            foreach ($contacts as 
$c) {
 
 1273                $pgui->setBackUrl($this->ctrl->getLinkTargetByClass(
"ilinfoscreengui"));
 
 1274                $pgui->setEmbedded(
true);
 
 1275                $info->addProperty(
"", $pgui->getHTML());
 
 1280        $info->addSection($this->lng->txt(
'group_registration'));
 
 1281        $info->showLDAPRoleGroupMappingInfo();
 
 1283        if (!$this->object->isRegistrationEnabled()) {
 
 1285                $this->lng->txt(
'group_registration_mode'),
 
 1286                $this->lng->txt(
'grp_reg_deac_info_screen')
 
 1289            switch ($this->object->getRegistrationType()) {
 
 1292                        $this->lng->txt(
'group_registration_mode'),
 
 1293                        $this->lng->txt(
'grp_reg_direct_info_screen')
 
 1299                        $this->lng->txt(
'group_registration_mode'),
 
 1300                        $this->lng->txt(
'grp_reg_req_info_screen')
 
 1306                        $this->lng->txt(
'group_registration_mode'),
 
 1307                        $this->lng->txt(
'grp_reg_passwd_info_screen')
 
 1318            if ($this->object->isRegistrationUnlimited()) {
 
 1320                    $this->lng->txt(
'group_registration_time'),
 
 1321                    $this->lng->txt(
'grp_registration_unlimited')
 
 1323            } elseif ($this->object->getRegistrationStart()->getUnixTime() < time()) {
 
 1325                    $this->lng->txt(
"group_registration_time"),
 
 1326                    $this->lng->txt(
'cal_until') . 
' ' .
 
 1329            } elseif ($this->object->getRegistrationStart()->getUnixTime() >= time()) {
 
 1331                    $this->lng->txt(
"group_registration_time"),
 
 1332                    $this->lng->txt(
'cal_from') . 
' ' .
 
 1336            if ($this->object->isMembershipLimited()) {
 
 1337                if ($this->object->getMinMembers()) {
 
 1339                        $this->lng->txt(
"mem_min_users"),
 
 1340                        $this->object->getMinMembers()
 
 1343                if ($this->object->getMaxMembers()) {
 
 1344                    include_once 
'./Modules/Group/classes/class.ilObjGroupAccess.php';
 
 1348                        $this->lng->txt(
'mem_free_places'),
 
 1349                        $reg_info[
'reg_info_free_places']
 
 1354            if ($this->object->getCancellationEnd()) {
 
 1356                    $this->lng->txt(
'grp_cancellation_end'),
 
 1362        if ($this->object->getStart()) {
 
 1364                $this->lng->txt(
'grp_period'),
 
 1366                    $this->object->getStart(),
 
 1367                    $this->object->getEnd()
 
 1374        include_once(
'Services/PrivacySecurity/classes/class.ilPrivacySettings.php');
 
 1377        include_once(
'Modules/Course/classes/Export/class.ilCourseDefinedFieldDefinition.php');
 
 1379            include_once(
'Services/PrivacySecurity/classes/class.ilExportFieldsInfo.php');
 
 1383            $this->lng->loadLanguageModule(
'ps');
 
 1384            $info->addSection($this->lng->txt(
'grp_user_agreement_info'));
 
 1385            $info->addProperty($this->lng->txt(
'ps_export_data'), $field_info->exportableFieldsToInfoString());
 
 1388                $info->addProperty($this->lng->txt(
'ps_grp_user_fields'), $fields);
 
 1394        $this->ctrl->forwardCommand(
$info);
 
 1402        include_once 
"Services/Membership/classes/class.ilMembershipNotifications.php";
 
 1404        if ($noti->canCurrentUserEdit()) {
 
 1405            if ((
bool) $_REQUEST[
"grp_ntf"]) {
 
 1406                $noti->activateUser();
 
 1408                $noti->deactivateUser();
 
 1411        ilUtil::sendSuccess($this->lng->txt(
"settings_saved"), 
true);
 
 1412        $this->ctrl->redirect($this, 
"");
 
 1420        $GLOBALS[
'DIC'][
'ilCtrl']->redirectByClass(
'ilgroupmembershipgui');
 
 1427    public static function _goto($a_target, $a_add = 
"")
 
 1431        $ilAccess = 
$DIC[
'ilAccess'];
 
 1436        include_once 
'./Services/Membership/classes/class.ilMembershipRegistrationCodeUtils.php';
 
 1437        if (substr($a_add, 0, 5) == 
'rcode') {
 
 1438            if (
$ilUser->getId() == ANONYMOUS_USER_ID) {
 
 1441                    "login.php?target=" . 
$_GET[
"target"] . 
"&cmd=force_login&lang=" .
 
 1454        if ($a_add == 
"mem" && $ilAccess->checkAccess(
"manage_members", 
"", $a_target)) {
 
 1458        if ($ilAccess->checkAccess(
"read", 
"", $a_target)) {
 
 1462            if ($ilAccess->checkAccess(
"visible", 
"", $a_target)) {
 
 1465                if ($ilAccess->checkAccess(
"read", 
"", ROOT_FOLDER_ID)) {
 
 1467                        $lng->txt(
"msg_no_perm_read_item"),
 
 1485    public function initForm($a_mode = 
'edit', $a_omit_form_action = 
false)
 
 1491        $tree = $DIC[
'tree'];
 
 1493        include_once(
"./Services/Form/classes/class.ilPropertyFormGUI.php");
 
 1497        if (!$a_omit_form_action) {
 
 1500                    $form->setFormAction($this->ctrl->getFormAction($this, 
'update'));
 
 1504                    $form->setTableWidth(
'600px');
 
 1505                    $form->setFormAction($this->ctrl->getFormAction($this, 
'save'));
 
 1511        $this->initFormTitleDescription(
$form);
 
 1515        if ($a_mode == 
'edit') {
 
 1517            include_once 
'Services/Form/classes/class.ilDateDurationInputGUI.php';
 
 1519            $group_duration->setInfo($this->lng->txt(
'grp_period_info'));
 
 1520            if ($this->object->getStart()) {
 
 1521                $group_duration->setStart($this->object->getStart());
 
 1523            if ($this->object->getEnd()) {
 
 1524                $group_duration->setEnd($this->object->getEnd());
 
 1526            $form->addItem($group_duration);
 
 1530            $pres->setTitle($this->lng->txt(
'grp_setting_header_registration'));
 
 1531            $form->addItem($pres);
 
 1534            $reg_type = 
new ilRadioGroupInputGUI($this->lng->txt(
'group_registration_mode'), 
'registration_type');
 
 1535            $reg_type->setValue($this->object->getRegistrationType());
 
 1538            $reg_type->addOption($opt_dir);
 
 1542            $pass->setRequired(
true);
 
 1543            $pass->setInfo($this->lng->txt(
'grp_reg_password_info'));
 
 1544            $pass->setValue($this->object->getPassword());
 
 1546            $pass->setMaxLength(32);
 
 1547            $opt_pass->addSubItem(
$pass);
 
 1548            $reg_type->addOption($opt_pass);
 
 1551            $reg_type->addOption($opt_req);
 
 1554            $reg_type->addOption($opt_deact);
 
 1557            $reg_code = 
new ilCheckboxInputGUI($this->lng->txt(
'grp_reg_code'), 
'reg_code_enabled');
 
 1558            $reg_code->setChecked($this->object->isRegistrationAccessCodeEnabled());
 
 1559            $reg_code->setValue(1);
 
 1560            $reg_code->setInfo($this->lng->txt(
'grp_reg_code_enabled_info'));
 
 1561            $form->addItem($reg_type);
 
 1564            if (!$this->object->getRegistrationAccessCode()) {
 
 1565                include_once 
'./Services/Membership/classes/class.ilMembershipRegistrationCodeUtils.php';
 
 1569            $reg_link->setValue($this->object->getRegistrationAccessCode());
 
 1570            $form->addItem($reg_link);
 
 1573            include_once 
'./Services/Link/classes/class.ilLink.php';
 
 1574            $val = 
ilLink::_getLink($this->object->getRefId(), $this->object->getType(), array(), 
'_rcode' . $this->object->getRegistrationAccessCode());
 
 1575            $link->setHTML(
'<span class="small">' . $val . 
'</span>');
 
 1576            $reg_code->addSubItem($link);
 
 1577            $form->addItem($reg_code);
 
 1580            $this->lng->loadLanguageModule(
'dateplaner');
 
 1581            include_once 
'./Services/Form/classes/class.ilDateDurationInputGUI.php';
 
 1583            $dur->setShowTime(
true);
 
 1584            $dur->setStart($this->object->getRegistrationStart());
 
 1585            $dur->setEnd($this->object->getRegistrationEnd());
 
 1586            $form->addItem($dur);
 
 1589            $cancel = 
new ilDateTimeInputGUI($this->lng->txt(
'grp_cancellation_end'), 
'cancel_end');
 
 1590            $cancel->setInfo($this->lng->txt(
'grp_cancellation_end_info'));
 
 1591            $cancel->setDate($this->object->getCancellationEnd());
 
 1592            $form->addItem($cancel);
 
 1595            $lim = 
new ilCheckboxInputGUI($this->lng->txt(
'reg_grp_max_members_short'), 
'registration_membership_limited');
 
 1598            $lim->setChecked($this->object->isMembershipLimited());
 
 1600            $min = 
new ilTextInputGUI($this->lng->txt(
'reg_grp_min_members'), 
'registration_min_members');
 
 1602            $min->setMaxLength(4);
 
 1603            $min->setValue($this->object->getMinMembers() ? $this->object->getMinMembers() : 
'');
 
 1604            $min->setInfo($this->lng->txt(
'grp_subscription_min_members_info'));
 
 1605            $lim->addSubItem($min);
 
 1607            $max = 
new ilTextInputGUI($this->lng->txt(
'reg_grp_max_members'), 
'registration_max_members');
 
 1608            $max->setValue($this->object->getMaxMembers() ? $this->object->getMaxMembers() : 
'');
 
 1611            $max->setMaxLength(4);
 
 1612            $max->setInfo($this->lng->txt(
'grp_reg_max_members_info'));
 
 1613            $lim->addSubItem($max);
 
 1628            $wait->addOption($option);
 
 1630            $option = 
new ilRadioOption($this->lng->txt(
'grp_waiting_list_no_autofill'), 1);
 
 1631            $option->setInfo($this->lng->txt(
'grp_waiting_list_info'));
 
 1632            $wait->addOption($option);
 
 1634            $option = 
new ilRadioOption($this->lng->txt(
'grp_waiting_list_autofill'), 2);
 
 1635            $option->setInfo($this->lng->txt(
'grp_waiting_list_autofill_info'));
 
 1636            $wait->addOption($option);
 
 1638            if ($this->object->hasWaitingListAutoFill()) {
 
 1640            } elseif ($this->object->isWaitingListEnabled()) {
 
 1644            $lim->addSubItem($wait);
 
 1646            $form->addItem($lim);
 
 1650            $parent_membership_ref_id = 0;
 
 1651            $hasParentMembership =
 
 1653                    $parent_membership_ref_id = 
$tree->checkForParentType($this->object->getRefId(), 
'crs', 
true)
 
 1657            $pres->setTitle($this->lng->txt(
'grp_setting_header_presentation'));
 
 1658            $form->addItem($pres);
 
 1661            $form = $obj_service->commonSettings()->legacyForm(
$form, $this->
object)->addTitleIconVisibility();
 
 1664            $form = $obj_service->commonSettings()->legacyForm(
$form, $this->
object)->addTopActionsVisibility();
 
 1667            $form = $obj_service->commonSettings()->legacyForm(
$form, $this->
object)->addIcon();
 
 1670            $form = $obj_service->commonSettings()->legacyForm(
$form, $this->
object)->addTileImage();
 
 1678            if ($hasParentMembership) {
 
 1680                $course_view_mode = 
'';
 
 1681                switch ($parent_view_mode) {
 
 1683                        $course_view_mode = 
': ' . $this->lng->txt(
'cntr_view_sessions');
 
 1687                        $course_view_mode = 
': ' . $this->lng->txt(
'cntr_view_simple');
 
 1691                        $course_view_mode = 
': ' . $this->lng->txt(
'cntr_view_by_type');
 
 1694                if ($course_view_mode) {
 
 1696                    $opt->setInfo($this->lng->txt(
'grp_view_inherit_info'));
 
 1697                    $view_type->addOption($opt);
 
 1708            $opt->setInfo($this->lng->txt(
'cntr_view_info_sessions'));
 
 1709            $view_type->addOption($opt);
 
 1712            $opt->setInfo($this->lng->txt(
'grp_view_info_simple'));
 
 1713            $view_type->addOption($opt);
 
 1716            $opt->setInfo($this->lng->txt(
'grp_view_info_by_type'));
 
 1717            $view_type->addOption($opt);
 
 1718            $form->addItem($view_type);
 
 1722            $sorting_settings = array();
 
 1723            if ($hasParentMembership) {
 
 1733            $feat->setTitle($this->lng->txt(
'obj_features'));
 
 1734            $form->addItem($feat);
 
 1736            include_once 
'./Services/Object/classes/class.ilObjectServiceSettingsGUI.php';
 
 1738                $this->object->getId(),
 
 1754            $mem->setChecked($this->object->getShowMembers());
 
 1755            $mem->setInfo($this->lng->txt(
'grp_show_members_info'));
 
 1756            $form->addItem($mem);
 
 1760            $mail_type->setValue($this->object->getMailToMembersType());
 
 1763                $this->lng->txt(
'grp_mail_tutors_only'),
 
 1765                $this->lng->txt(
'grp_mail_tutors_only_info')
 
 1767            $mail_type->addOption($mail_tutors);
 
 1770                $this->lng->txt(
'grp_mail_all'),
 
 1772                $this->lng->txt(
'grp_mail_all_info')
 
 1774            $mail_type->addOption($mail_all);
 
 1775            $form->addItem($mail_type);
 
 1780                $form->setTitle($this->lng->txt(
'grp_new'));
 
 1783                $form->addCommandButton(
'save', $this->lng->txt(
'grp_new'));
 
 1784                $form->addCommandButton(
'cancel', $this->lng->txt(
'cancel'));
 
 1788                $form->setTitle($this->lng->txt(
'grp_edit'));
 
 1792                include_once 
'Modules/Group/classes/class.ilECSGroupSettings.php';
 
 1794                $ecs->addSettingsToForm(
$form, 
'grp');
 
 1796                $form->addCommandButton(
'update', $this->lng->txt(
'save'));
 
 1797                $form->addCommandButton(
'cancel', $this->lng->txt(
'cancel'));
 
 1816        $ilAccess = 
$DIC[
'ilAccess'];
 
 1821                $this->tabs_gui->addSubTabTarget(
 
 1823                    $this->ctrl->getLinkTarget($this, 
'edit'),
 
 1828                $this->tabs_gui->addSubTabTarget(
 
 1829                    "grp_info_settings",
 
 1830                    $this->ctrl->getLinkTarget($this, 
'editInfo'),
 
 1835                include_once(
"./Services/Maps/classes/class.ilMapUtil.php");
 
 1837                    $this->tabs_gui->addSubTabTarget(
 
 1839                        $this->ctrl->getLinkTarget($this, 
'editMapSettings'),
 
 1845                $this->tabs_gui->addSubTabTarget(
 
 1847                    $this->ctrl->getLinkTargetByClass(
'ilobjcoursegroupinggui', 
'listGroupings'),
 
 1852                include_once(
'Services/PrivacySecurity/classes/class.ilPrivacySettings.php');
 
 1853                include_once(
'Modules/Course/classes/Export/class.ilCourseDefinedFieldDefinition.php');
 
 1856                    $this->tabs_gui->addSubTabTarget(
 
 1857                        'grp_custom_user_fields',
 
 1858                        $this->ctrl->getLinkTargetByClass(
'ilobjectcustomuserfieldsgui'),
 
 1860                        'ilobjectcustomuserfieldsgui' 
 1865                if ($this->object->getUseNews()) {
 
 1866                    $this->tabs_gui->addSubTab(
 
 1867                        'obj_news_settings',
 
 1868                        $this->lng->txt(
"cont_news_settings"),
 
 1869                        $this->ctrl->getLinkTargetByClass(
'ilcontainernewssettingsgui')
 
 1874                if ($lti_settings->hasSettingsAccess()) {
 
 1875                    $this->tabs_gui->addSubTabTarget(
 
 1877                        $this->ctrl->getLinkTargetByClass(ilLTIProviderObjectSettingGUI::class)
 
 1881                $this->tabs_gui->addSubTabTarget(
 
 1882                    "obj_multilinguality",
 
 1883                    $this->ctrl->getLinkTargetByClass(
"ilobjecttranslationgui", 
""),
 
 1885                    "ilobjecttranslationgui" 
 1906        $ilAccess = 
$DIC[
'ilAccess'];
 
 1908        if ($ilAccess->checkAccess(
'write', 
'', $this->object->getRefId())) {
 
 1913        if (!$this->object->members_obj->isAssigned(
$ilUser->getId())) {
 
 1917        include_once 
'./Services/Container/classes/class.ilMemberViewSettings.php';
 
 1922        include_once(
'Services/PrivacySecurity/classes/class.ilPrivacySettings.php');
 
 1923        include_once(
'Services/Membership/classes/class.ilMemberAgreement.php');
 
 1932        include_once(
'Modules/Course/classes/Export/class.ilCourseUserData.php');
 
 1960        parent::prepareOutput($a_show_subobjects);
 
 1969        $link = chr(13) . chr(10) . chr(13) . chr(10);
 
 1970        $link .= $this->lng->txt(
'grp_mail_permanent_link');
 
 1971        $link .= chr(13) . chr(10) . chr(13) . chr(10);
 
 1972        include_once 
'Services/Link/classes/class.ilLink.php';
 
 1974        return rawurlencode(base64_encode($link));
 
 1984        $lg = parent::initHeaderAction($a_sub_type, $a_sub_id);
 
 1986        include_once(
'./Modules/Group/classes/class.ilGroupParticipants.php');
 
 1988            include_once 
"Services/Membership/classes/class.ilMembershipNotifications.php";
 
 1991                if (!$noti->isCurrentUserActive()) {
 
 1995                        $this->lng->txt(
"grp_notification_deactivated")
 
 1998                    $this->ctrl->setParameter($this, 
"grp_ntf", 1);
 
 1999                    $caption = 
"grp_activate_notification";
 
 2004                        $this->lng->txt(
"grp_notification_activated")
 
 2007                    $this->ctrl->setParameter($this, 
"grp_ntf", 0);
 
 2008                    $caption = 
"grp_deactivate_notification";
 
 2011                if ($noti->canCurrentUserEdit()) {
 
 2012                    $lg->addCustomCommand(
 
 2013                        $this->ctrl->getLinkTarget($this, 
"saveNotification"),
 
 2018                $this->ctrl->setParameter($this, 
"grp_ntf", 
"");
 
 2033        include_once(
'Modules/Course/classes/Export/class.ilCourseUserData.php');
 
 2036        $res_data = array();
 
 2037        foreach ($a_data as $usr_id => $user_data) {
 
 2038            $res_data[$usr_id] = $user_data;
 
 2041            include_once 
'./Services/User/classes/class.ilUserDefinedData.php';
 
 2043            foreach ($udf_data->getAll() as $field => $value) {
 
 2044                list(
$f, $field_id) = explode(
'_', $field);
 
 2045                $res_data[$usr_id][
'udf_' . $field_id] = (string) $value;
 
 2048            foreach ((array) $odfs[$usr_id] as $cdf_field => $cdf_value) {
 
 2049                $res_data[$usr_id][
'cdf_' . $cdf_field] = (string) $cdf_value;
 
 2062        $local_roles = $this->
object->getLocalGroupRoles(
false);
 
 2063        $grp_member = $this->
object->getDefaultMemberRole();
 
 2064        $grp_roles = array();
 
 2067        if (in_array($grp_member, $local_roles)) {
 
 2069            unset($local_roles[$grp_roles[$grp_member]]);
 
 2072        foreach ($local_roles as 
$title => $role_id) {
 
 2083        $this->ctrl->redirectByClass(
'ilUsersGalleryGUI');
 
 2091        $this->ctrl->setReturn($this, 
"view");
 
An exception for terminatinating execution or to throw for unit testing.
const GRP_REGISTRATION_DIRECT
const GRP_REGISTRATION_PASSWORD
const GRP_REGISTRATION_DEACTIVATED
const GRP_REGISTRATION_REQUEST
static getInstance()
Constructor.
static _catchupWriteEvents($obj_id, $usr_id, $timestamp=null)
Catches up with all write events which occured before the specified timestamp.
static _recordWriteEvent($obj_id, $usr_id, $action, $parent_obj_id=null)
Records a write event.
static getInstanceFromAjaxCall()
(Re-)Build instance from ajax call
Confirmation screen class.
& forwardToPageObject()
forward command to page object
initSortingForm(ilPropertyFormGUI $form, array $a_sorting_settings)
Append sorting settings to property form.
showPermanentLink()
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.
static getInstance()
Get instance.
Membership notification settings.
static isActive()
Is feature active?
static handleCode($a_ref_id, $a_type, $a_code)
Handle target parameter.
static generateCode()
Generate new registration key.
static getInstance($a_ref_id, $a_include_auto_entries)
Get instance.
static _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()
list childs of current object
setSideColumnReturn()
Set return point for side column actions.
getLocalRoles()
returns all local roles [role_id] => title
leaveObject()
leave Group @access public
initHeaderAction($a_sub_type=null, $a_sub_id=null)
Add file manager link.
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)
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.
$GLOBALS['JPEG_Segment_Names']
Global Variable: XMP_tag_captions.
if(isset($_POST['submit'])) $form