MDL-45884 navigation: setting that allows sites to collapse My Courses by default
authorSyxton <davidso1@rose-hulman.edu>
Thu, 5 Jun 2014 14:25:40 +0000 (10:25 -0400)
committerSam Hemelryk <sam@moodle.com>
Thu, 12 Jun 2014 22:16:25 +0000 (10:16 +1200)
admin/settings/appearance.php
lang/en/admin.php
lib/navigationlib.php

index 1df0a09..8acf691 100644 (file)
@@ -122,6 +122,7 @@ if ($hassiteconfig or has_any_capability($capabilities, $systemcontext)) { // sp
     $temp->add(new admin_setting_configcheckbox('navshowcategories', new lang_string('navshowcategories', 'admin'), new lang_string('confignavshowcategories', 'admin'), 1));
     $temp->add(new admin_setting_configcheckbox('navshowmycoursecategories', new lang_string('navshowmycoursecategories', 'admin'), new lang_string('navshowmycoursecategories_help', 'admin'), 0));
     $temp->add(new admin_setting_configcheckbox('navshowallcourses', new lang_string('navshowallcourses', 'admin'), new lang_string('confignavshowallcourses', 'admin'), 0));
+    $temp->add(new admin_setting_configcheckbox('navcollapsemycourses', new lang_string('navcollapsemycourses', 'admin'), new lang_string('confignavcollapsemycourses', 'admin'), 0));
     $sortoptions = array(
         'sortorder' => new lang_string('sort_sortorder', 'admin'),
         'fullname' => new lang_string('sort_fullname', 'admin'),
index 62734b5..75fc0c1 100644 (file)
@@ -271,6 +271,7 @@ $string['confignavcourselimit'] = 'Limits the number of courses shown to the use
 $string['confignavshowallcourses'] = 'This setting determines whether users who are enrolled in courses can see Courses (listing all courses) in the navigation, in addition to My Courses (listing courses in which they are enrolled).';
 $string['confignavshowcategories'] = 'Show course categories in the navigation bar and navigation blocks. This does not occur with courses the user is currently enrolled in, they will still be listed under mycourses without categories.';
 $string['confignotifyloginfailures'] = 'Send login failure notification messages to these selected users. This requires an internal logstore (eg Standard Logstore) to be enabled.';
+$string['confignavcollapsemycourses'] = 'Show the My Courses area as collapsed.';
 $string['confignotifyloginthreshold'] = 'If notifications about failed logins are active, how many failed login attempts by one user or one IP address is it worth notifying about?';
 $string['confignotloggedinroleid'] = 'Users who are not logged in to the site will be treated as if they have this role granted to them at the site context.  Guest is almost always what you want here, but you might want to create roles that are less or more restrictive.  Things like creating posts still require the user to log in properly.';
 $string['configopentogoogle'] = 'If you enable this setting, then Google will be allowed to enter your site as a Guest.  In addition, people coming in to your site via a Google search will automatically be logged in as a Guest.  Note that this only provides transparent access to courses that already allow guest access.';
@@ -739,6 +740,7 @@ $string['navshowfrontpagemods_help'] = 'If enabled, front page activities will b
 $string['navshowallcourses'] = 'Show all courses';
 $string['navshowcategories'] = 'Show course categories';
 $string['navshowmycoursecategories'] = 'Show my course categories';
+$string['navcollapsemycourses'] = 'Show My Courses as collapsed';
 $string['navshowmycoursecategories_help'] = 'If enabled courses in the users my courses branch will be shown in categories.';
 $string['navsortmycoursessort'] = 'Sort my courses';
 $string['navsortmycoursessort_help'] = 'This determines whether courses are listed under My courses according to the sort order (i.e. the order set in Site administration > Courses > Manage courses and categories) or alphabetically by course setting.';
index 10fde52..bdc2537 100644 (file)
@@ -1133,8 +1133,13 @@ class global_navigation extends navigation_node {
             $this->rootnodes['courses']->isexpandable = true;
         }
 
-        if ($this->rootnodes['mycourses']->isactive) {
-            $this->load_courses_enrolled();
+        if (empty($CFG->navcollapsemycourses)){
+            if ($this->rootnodes['mycourses']->isactive) {
+                $this->load_courses_enrolled();
+            }
+        } else {  
+            $this->rootnodes['mycourses']->collapse = true; 
+            $this->rootnodes['mycourses']->make_inactive(); 
         }
 
         $canviewcourseprofile = true;