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);
}