protected function get_course_content()

in block_microsoft.php [130:247]


    protected function get_course_content() {
        global $COURSE;

        if ($COURSE->id == SITEID) {
            return '';
        }

        $courseid = $COURSE->id;
        $groupsenabled = utils::is_enabled();
        $iscoursecontext = $this->page->context instanceof \context_course && $this->page->context->instanceid !== SITEID;
        $courseisgroupenabled = utils::course_is_group_enabled($courseid);
        $config = (array)get_config('block_microsoft');

        $html = '';
        $items = [];

        $courseheaderdisplayed = false;
        $o365record = null;

        if (has_capability('local/o365:teamowner', $this->page->context)) {

            $courseheaderdisplayed = true;
        }

        if (!empty($config['settings_showcoursegroup'])) {
            list($courseheader, $o365record) = $this->get_course_header_and_o365object($courseid);
            $html .= $courseheader;

            // Link to course sync options.
            if (has_capability('local/o365:teamowner', $this->page->context)) {
                $createteams = get_config('local_o365', 'createteams');
                $allowedmanageteamsyncpercourse = get_config('local_o365', 'createteams_per_course');
                if ($createteams == 'oncustom' && $allowedmanageteamsyncpercourse) {
                    $configuresyncurl = new moodle_url('/blocks/microsoft/configure_sync.php',
                        ['course' => $courseid]);
                    $items[] = html_writer::link($configuresyncurl, get_string('configure_sync', 'block_microsoft'),
                        ['class' => 'servicelink block_microsoft_sync']);
                }
            }
        }

        if ($iscoursecontext && $groupsenabled && $courseisgroupenabled) {
            $canmanage = (has_capability('local/o365:managegroups', $this->page->context) === true) ? true : false;
            $canview = (is_enrolled($this->page->context)
              && has_capability('local/o365:viewgroups', $this->page->context)) ? true : false;

            if ($canmanage === true || $canview === true) {
                if (!empty($config['settings_showcoursegroup'])) {
                    if (!$courseheaderdisplayed) {
                        list($courseheader, $o365record) = $this->get_course_header_and_o365object($courseid);
                        $html .= $courseheader;
                    }

                    if ($o365record) {
                        // Links to course features.
                        $groupurls = utils::get_group_urls($courseid, 0);
                        foreach (['team', 'conversations', 'onedrive', 'calendar', 'notebook'] as $feature) {
                            if (!isset($groupurls[$feature])) {
                                continue;
                            }

                            if ($feature == 'team' && !utils::course_is_group_feature_enabled($courseid, 'team')) {
                                continue;
                            }

                            $url = new moodle_url($groupurls[$feature]);
                            $resourcename = get_string('course_feature_' . $feature, 'block_microsoft');
                            $items[] = html_writer::link($url, $resourcename,
                                ['target' => '_blank', 'class' => 'servicelink block_microsoft_' . $feature]);
                        }

                        // Link to course reset options.
                        if (has_capability('moodle/course:reset', $this->page->context)) {
                            switch (get_config('local_o365', 'course_reset_teams')) {
                                case TEAMS_GROUP_COURSE_RESET_SITE_SETTING_PER_COURSE:
                                    // Allow user to configure reset actions.
                                    $configurereseturl = new moodle_url('/blocks/microsoft/configure_reset.php',
                                        ['course' => $courseid]);
                                    if (utils::course_is_group_feature_enabled($courseid, 'team')) {
                                        $items[] = html_writer::link($configurereseturl,
                                            get_string('configure_reset_team', 'block_microsoft'),
                                            ['class' => 'servicelink block_microsoft_reset']);
                                    } else {
                                        $items[] = html_writer::link($configurereseturl,
                                            get_string('configure_reset_group', 'block_microsoft'),
                                            ['class' => 'servicelink block_microsoft_reset']);
                                    }

                                    break;
                                case TEAMS_GROUP_COURSE_RESET_SITE_SETTING_DISCONNECT_AND_CREATE_NEW:
                                    // Force archive, show notification.
                                    if (utils::course_is_group_feature_enabled($courseid, 'team')) {
                                        $items[] = html_writer::span(get_string('course_reset_disconnect_team', 'block_microsoft'),
                                            'servicelink block_microsoft_reset');
                                    } else {
                                        $items[] = html_writer::span(get_string('course_reset_disconnect_group', 'block_microsoft'),
                                            'servicelink block_microsoft_reset');
                                    }

                                    break;
                                default:
                                    // Force do nothing, show notification.
                                    if (utils::course_is_group_feature_enabled($courseid, 'team')) {
                                        $items[] = html_writer::span(get_string('course_reset_do_nothing_team', 'block_microsoft'),
                                            'servicelink block_microsoft_reset');
                                    } else {
                                        $items[] = html_writer::span(get_string('course_reset_do_nothing_group', 'block_microsoft'),
                                            'servicelink block_microsoft_reset');
                                    }
                            }
                        }
                    }
                }
            }
        }

        return $html . html_writer::alist($items);
    }