MDL-46499 navigation: better enrolled course limit
authorSam Hemelryk <sam@moodle.com>
Mon, 13 Oct 2014 02:10:02 +0000 (15:10 +1300)
committerSam Hemelryk <sam@moodle.com>
Sun, 19 Oct 2014 21:58:40 +0000 (10:58 +1300)
We now user $CFG->navcourselimit to limit the number of
courses shown in the navigation when browsing another users
full profile. Previously it showed all courses which caused
some slowdown.

lib/navigationlib.php
user/profile.php

index d21c5b1..aabbdc6 100644 (file)
@@ -2282,7 +2282,14 @@ class global_navigation extends navigation_node {
             $userscourses = enrol_get_users_courses($user->id);
             $userscoursesnode = $usernode->add(get_string('courses'));
 
+            $count = 0;
             foreach ($userscourses as $usercourse) {
+                if ($count === (int)$CFG->navcourselimit) {
+                    $url = new moodle_url('/user/profile.php', array('id' => $user->id, 'showallcourses' => 1));
+                    $userscoursesnode->add(get_string('showallcourses'), $url);
+                    break;
+                }
+                $count++;
                 $usercoursecontext = context_course::instance($usercourse->id);
                 $usercourseshortname = format_string($usercourse->shortname, true, array('context' => $usercoursecontext));
                 $usercoursenode = $userscoursesnode->add($usercourseshortname, new moodle_url('/user/view.php', array('id'=>$user->id, 'course'=>$usercourse->id)), self::TYPE_CONTAINER);
index 5d6efc6..f0f7c26 100644 (file)
@@ -398,7 +398,7 @@ if (!isset($hiddenfields['mycourses'])) {
                 $courselisting .= ', ';
             }
             $shown++;
-            if (!$showallcourses && $shown == 20) {
+            if (!$showallcourses && $shown == $CFG->navcourselimit) {
                 $url = new moodle_url('/user/profile.php', array('id' => $user->id, 'showallcourses' => 1));
                 $courselisting .= html_writer::link($url, '...', array('title' => get_string('viewmore')));
                 break;