コード例 #1
0
ファイル: renderers.php プロジェクト: josespinozaf/bcu
 public function frontpage_my_courses()
 {
     global $USER, $CFG, $DB;
     $output = '';
     if (!isloggedin() or isguestuser()) {
         return '';
     }
     $courses = block_course_overview_get_sorted_courses();
     list($sortedcourses, $sitecourses, $totalcourses) = block_course_overview_get_sorted_courses();
     if (!empty($sortedcourses) || !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($sortedcourses);
             $courses = array_slice($sortedcourses, 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, $sortedcourses, $totalcount);
         if (!empty($rcourses)) {
             $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');
         } else {
             if (!empty($rhosts)) {
                 $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');
             }
         }
     }
     return $output;
 }
コード例 #2
0
ファイル: renderer.php プロジェクト: rushi963/moodle
 /**
  * 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;
 }
コード例 #3
0
 /**
  * Renders HTML to display particular course category - list of it's subcategories and courses
  *
  * Invoked from /course/index.php
  *
  * @param int|stdClass|coursecat $category
  */
 public function course_category($category)
 {
     global $CFG, $USER;
     require_once $CFG->dirroot . '/lib/pagelib.php';
     require_once $CFG->libdir . '/coursecatlib.php';
     $coursecat = coursecat::get(is_object($category) ? $category->id : $category);
     $site = get_site();
     $output = '<h2>Matières</h2>';
     // Print current category description
     $chelper = new coursecat_helper();
     if ($description = $chelper->get_category_formatted_description($coursecat)) {
         $output .= $this->box($description, array('class' => 'generalbox info'));
     }
     // Prepare parameters for courses and categories lists in the tree
     $chelper->set_show_courses(10)->set_attributes(array('class' => 'category-browse category-browse-' . $coursecat->id));
     $coursedisplayoptions = array();
     $catdisplayoptions = array();
     $browse = optional_param('browse', null, PARAM_ALPHA);
     $perpage = optional_param('perpage', $CFG->coursesperpage, PARAM_INT);
     $page = optional_param('page', 0, PARAM_INT);
     $baseurl = new moodle_url('/local/template_course/index.php');
     if ($coursecat->id) {
         //$baseurl->param('categoryid', $coursecat->id);
     }
     if ($perpage != $CFG->coursesperpage) {
         $baseurl->param('perpage', $perpage);
     }
     //PAGINACIO
     $coursedisplayoptions['limit'] = $perpage;
     $catdisplayoptions['limit'] = $perpage;
     if ($browse === 'courses' || !$coursecat->has_children()) {
         $coursedisplayoptions['offset'] = $page * $perpage;
         $coursedisplayoptions['paginationurl'] = new moodle_url($baseurl, array('browse' => 'courses'));
         $catdisplayoptions['nodisplay'] = true;
         $catdisplayoptions['viewmoreurl'] = new moodle_url($baseurl, array('browse' => 'categories'));
         $catdisplayoptions['viewmoretext'] = new lang_string('viewallsubcategories');
     } else {
         if ($browse === 'categories' || !$coursecat->has_courses()) {
             $coursedisplayoptions['nodisplay'] = true;
             $catdisplayoptions['offset'] = $page * $perpage;
             $catdisplayoptions['paginationurl'] = new moodle_url($baseurl, array('browse' => 'categories'));
             $coursedisplayoptions['viewmoreurl'] = new moodle_url($baseurl, array('browse' => 'courses'));
             $coursedisplayoptions['viewmoretext'] = new lang_string('viewallcourses');
         } else {
             // we have a category that has both subcategories and courses, display pagination separately
             $coursedisplayoptions['viewmoreurl'] = new moodle_url($baseurl, array('browse' => 'courses', 'page' => 1));
             $catdisplayoptions['viewmoreurl'] = new moodle_url($baseurl, array('browse' => 'categories', 'page' => 1));
         }
     }
     $chelper->set_courses_display_options($coursedisplayoptions)->set_categories_display_options($catdisplayoptions);
     // Display course category tree
     $output .= $this->coursecat_tree($chelper, $coursecat);
     // Add course search form (if we are inside category it was already added to the navbar)
     if (!$coursecat->id) {
         $output .= $this->course_search_form();
     }
     // Add action buttons
     $output .= $this->container_start('buttons');
     $context = get_category_or_system_context($coursecat->id);
     if (has_capability('moodle/course:create', $context)) {
         $url = new moodle_url('/local/template_course/edit.php', array('returnto' => 'category', 'edit' => 'on'));
         $output .= $this->single_button($url, 'Ajouter une nouvelle matière', 'get');
     }
     ob_start();
     if (coursecat::count_all() == 1) {
         print_course_request_buttons(context_system::instance());
     } else {
         print_course_request_buttons($context);
     }
     $output .= ob_get_contents();
     ob_end_clean();
     $output .= $this->container_end();
     return $output;
 }