function get_remote_courses() { global $CFG, $USER, $OUTPUT; if (!is_enabled_auth('mnet')) { // no need to query anything remote related return; } $icon = '<img src="' . $OUTPUT->pix_url('i/mnethost') . '" class="icon" alt="" />'; // shortcut - the rest is only for logged in users! if (!isloggedin() || isguestuser()) { return false; } if ($courses = get_my_remotecourses()) { $this->content->items[] = get_string('remotecourses', 'mnet'); $this->content->icons[] = ''; foreach ($courses as $course) { $coursecontext = context_course::instance($course->id); $this->content->items[] = "<a title=\"" . format_string($course->shortname, true, array('context' => $coursecontext)) . "\" " . "href=\"{$CFG->wwwroot}/auth/mnet/jump.php?hostid={$course->hostid}&wantsurl=/course/view.php?id={$course->remoteid}\">" . $icon . format_string(get_course_display_name_for_list($course)) . "</a>"; } // if we listed courses, we are done return true; } if ($hosts = get_my_remotehosts()) { $this->content->items[] = get_string('remotehosts', 'mnet'); $this->content->icons[] = ''; foreach ($USER->mnet_foreign_host_array as $somehost) { $this->content->items[] = $somehost['count'] . get_string('courseson', 'mnet') . '<a title="' . $somehost['name'] . '" href="' . $somehost['url'] . '">' . $icon . $somehost['name'] . '</a>'; } // if we listed hosts, done return true; } return false; }
/** * Prints custom user information on the home page. * Over time this can include all sorts of information */ function print_my_moodle() { global $USER, $CFG, $DB, $OUTPUT; if (!isloggedin() or isguestuser()) { print_error('nopermissions', '', '', 'See My Moodle'); } $courses = enrol_get_my_courses('summary', 'visible DESC,sortorder ASC'); $rhosts = array(); $rcourses = array(); if (!empty($CFG->mnet_dispatcher_mode) && $CFG->mnet_dispatcher_mode === 'strict') { $rcourses = get_my_remotecourses($USER->id); $rhosts = get_my_remotehosts(); } if (!empty($courses) || !empty($rcourses) || !empty($rhosts)) { if (!empty($courses)) { echo '<ul class="unlist">'; foreach ($courses as $course) { if ($course->id == SITEID) { continue; } echo '<li>'; print_course($course); echo "</li>\n"; } echo "</ul>\n"; } // MNET if (!empty($rcourses)) { // at the IDP, we know of all the remote courses foreach ($rcourses as $course) { print_remote_course($course, "100%"); } } elseif (!empty($rhosts)) { // non-IDP, we know of all the remote servers, but not courses foreach ($rhosts as $host) { print_remote_host($host, "100%"); } } unset($course); unset($host); if ($DB->count_records("course") > count($courses) + 1) { // Some courses not being displayed echo "<table width=\"100%\"><tr><td align=\"center\">"; print_course_search("", false, "short"); echo "</td><td align=\"center\">"; echo $OUTPUT->single_button("{$CFG->wwwroot}/course/index.php", get_string("fulllistofcourses"), "get"); echo "</td></tr></table>\n"; } } else { if ($DB->count_records("course_categories") > 1) { echo $OUTPUT->box_start("categorybox"); print_whole_category_list(); echo $OUTPUT->box_end(); } else { print_courses(0); } } }
function get_remote_courses() { global $THEME, $CFG, $USER; $icon = '<img src="' . $CFG->pixpath . '/i/mnethost.gif" class="icon" alt="' . get_string('course') . '" />'; // only for logged in users! if (!isloggedin() || isguest()) { return false; } if ($courses = get_my_remotecourses()) { $this->content->items[] = get_string('remotecourses', 'mnet'); $this->content->icons[] = ''; foreach ($courses as $course) { $this->content->items[] = "<a title=\"" . format_string($course->shortname) . "\" " . "href=\"{$CFG->wwwroot}/auth/mnet/jump.php?hostid={$course->hostid}&wantsurl=/course/view.php?id={$course->remoteid}\">" . format_string($course->fullname) . "</a>"; $this->content->icons[] = $icon; } // if we listed courses, we are done return true; } if ($hosts = get_my_remotehosts()) { $this->content->items[] = get_string('remotemoodles', 'mnet'); $this->content->icons[] = ''; foreach ($USER->mnet_foreign_host_array as $somehost) { $this->content->items[] = $somehost['count'] . get_string('courseson', 'mnet') . '<a title="' . $somehost['name'] . '" href="' . $somehost['url'] . '">' . $somehost['name'] . '</a>'; $this->content->icons[] = $icon; } // if we listed hosts, done return true; } return false; }
/** * Returns HTML to print list of courses user is enrolled to for the frontpage * * Also lists remote courses or remote hosts if MNET authorisation is used * * @return string */ public function frontpage_my_courses() { global $USER, $CFG, $DB; if (!isloggedin() or isguestuser()) { return ''; } $output = ''; if (!empty($CFG->navsortmycoursessort)) { // sort courses the same as in navigation menu $sortorder = 'visible DESC,' . $CFG->navsortmycoursessort . ' ASC'; } else { $sortorder = 'visible DESC,sortorder ASC'; } $courses = enrol_get_my_courses('summary, summaryformat', $sortorder); $rhosts = array(); $rcourses = array(); if (!empty($CFG->mnet_dispatcher_mode) && $CFG->mnet_dispatcher_mode === 'strict') { $rcourses = get_my_remotecourses($USER->id); $rhosts = get_my_remotehosts(); } if (!empty($courses) || !empty($rcourses) || !empty($rhosts)) { $chelper = new coursecat_helper(); if (count($courses) > $CFG->frontpagecourselimit) { // There are more enrolled courses than we can display, display link to 'My courses'. $totalcount = count($courses); $courses = array_slice($courses, 0, $CFG->frontpagecourselimit, true); $chelper->set_courses_display_options(array('viewmoreurl' => new moodle_url('/my/'), 'viewmoretext' => new lang_string('mycourses'))); } else { // All enrolled courses are displayed, display link to 'All courses' if there are more courses in system. $chelper->set_courses_display_options(array('viewmoreurl' => new moodle_url('/course/index.php'), 'viewmoretext' => new lang_string('fulllistofcourses'))); $totalcount = $DB->count_records('course') - 1; } $chelper->set_show_courses(self::COURSECAT_SHOW_COURSES_EXPANDED)->set_attributes(array('class' => 'frontpage-course-list-enrolled')); $output .= $this->coursecat_courses($chelper, $courses, $totalcount); // MNET if (!empty($rcourses)) { // at the IDP, we know of all the remote courses $output .= html_writer::start_tag('div', array('class' => 'courses')); foreach ($rcourses as $course) { $output .= $this->frontpage_remote_course($course); } $output .= html_writer::end_tag('div'); // .courses } elseif (!empty($rhosts)) { // non-IDP, we know of all the remote servers, but not courses $output .= html_writer::start_tag('div', array('class' => 'courses')); foreach ($rhosts as $host) { $output .= $this->frontpage_remote_host($host); } $output .= html_writer::end_tag('div'); // .courses } } return $output; }
function print_my_moodle() { /// Prints custom user information on the home page. /// Over time this can include all sorts of information global $USER, $CFG; if (empty($USER->id)) { error("It shouldn't be possible to see My Moodle without being logged in."); } $courses = get_my_courses($USER->id, 'visible DESC,sortorder ASC', array('summary')); $rhosts = array(); $rcourses = array(); if (!empty($CFG->mnet_dispatcher_mode) && $CFG->mnet_dispatcher_mode === 'strict') { $rcourses = get_my_remotecourses($USER->id); $rhosts = get_my_remotehosts(); } if (!empty($courses) || !empty($rcourses) || !empty($rhosts)) { if (!empty($courses)) { echo '<ul class="unlist">'; foreach ($courses as $course) { if ($course->id == SITEID) { continue; } echo '<li>'; print_course($course); echo "</li>\n"; } echo "</ul>\n"; } // MNET if (!empty($rcourses)) { // at the IDP, we know of all the remote courses foreach ($rcourses as $course) { print_remote_course($course, "100%"); } } elseif (!empty($rhosts)) { // non-IDP, we know of all the remote servers, but not courses foreach ($rhosts as $host) { print_remote_host($host, "100%"); } } unset($course); unset($host); if (count_records("course") > count($courses) + 1) { // Some courses not being displayed echo "<table width=\"100%\"><tr><td align=\"center\">"; print_course_search("", false, "short"); echo "</td><td align=\"center\">"; print_single_button("{$CFG->wwwroot}/course/index.php", NULL, get_string("fulllistofcourses"), "get"); echo "</td></tr></table>\n"; } } else { if (count_records("course_categories") > 1) { print_simple_box_start("center", "100%", "#FFFFFF", 5, "categorybox"); print_whole_category_list(); print_simple_box_end(); } else { print_courses(0); } } }