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}&amp;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;
 }
Example #2
0
/**
 * 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);
        }
    }
}
Example #3
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}&amp;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;
 }
Example #4
0
 /**
  * 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;
 }
Example #5
0
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);
        }
    }
}