コード例 #1
0
 /**
  * Constructs header in editing mode
  *
  * @param int $max maximum number of courses
  * @return string html of header bar.
  */
 public function editing_bar_head($max = 0)
 {
     $output = $this->output->box_start('notice');
     $options = array('0' => get_string('alwaysshowall', 'block_course_overview'));
     for ($i = 1; $i <= $max; $i++) {
         $options[$i] = $i;
     }
     $url = new moodle_url('/my/index.php');
     $select = new single_select($url, 'mynumber', $options, block_course_overview_get_max_user_courses(), array());
     $select->set_label(get_string('numtodisplay', 'block_course_overview'));
     $output .= $this->output->render($select);
     $output .= $this->output->box_end();
     return $output;
 }
コード例 #2
0
ファイル: locallib.php プロジェクト: JP-Git/moodle
/**
 * Return sorted list of user courses
 *
 * @return array list of sorted courses and count of courses.
 */
function block_course_overview_get_sorted_courses()
{
    global $USER;
    $limit = block_course_overview_get_max_user_courses();
    $courses = enrol_get_my_courses('id, shortname, fullname, modinfo, sectioncache');
    $site = get_site();
    if (array_key_exists($site->id, $courses)) {
        unset($courses[$site->id]);
    }
    foreach ($courses as $c) {
        if (isset($USER->lastcourseaccess[$c->id])) {
            $courses[$c->id]->lastaccess = $USER->lastcourseaccess[$c->id];
        } else {
            $courses[$c->id]->lastaccess = 0;
        }
    }
    // Get remote courses.
    $remotecourses = array();
    if (is_enabled_auth('mnet')) {
        $remotecourses = get_my_remotecourses();
    }
    // Remote courses will have -ve remoteid as key, so it can be differentiated from normal courses
    foreach ($remotecourses as $id => $val) {
        $remoteid = $val->remoteid * -1;
        $val->id = $remoteid;
        $courses[$remoteid] = $val;
    }
    $order = array();
    if (!is_null($usersortorder = get_user_preferences('course_overview_course_order'))) {
        $order = unserialize($usersortorder);
    }
    $sortedcourses = array();
    $counter = 0;
    // Get courses in sort order into list.
    foreach ($order as $key => $cid) {
        if ($counter >= $limit && $limit != 0) {
            break;
        }
        // Make sure user is still enroled.
        if (isset($courses[$cid])) {
            $sortedcourses[$cid] = $courses[$cid];
            $counter++;
        }
    }
    // Append unsorted courses if limit allows
    foreach ($courses as $c) {
        if ($limit != 0 && $counter >= $limit) {
            break;
        }
        if (!in_array($c->id, $order)) {
            $sortedcourses[$c->id] = $c;
            $counter++;
        }
    }
    // From list extract site courses for overview
    $sitecourses = array();
    foreach ($sortedcourses as $key => $course) {
        if ($course->id > 0) {
            $sitecourses[$key] = $course;
        }
    }
    return array($sortedcourses, $sitecourses, count($courses));
}