From dc3b93cb6f44cd5937085f9796ebd77ec2d0a768 Mon Sep 17 00:00:00 2001 From: Frederic Massart Date: Fri, 30 Jan 2015 14:58:13 +0800 Subject: [PATCH] MDL-48937 navigation: Hide categories in navbar when system has only one --- lib/navigationlib.php | 28 +++++++++++++++++----------- 1 file changed, 17 insertions(+), 11 deletions(-) diff --git a/lib/navigationlib.php b/lib/navigationlib.php index ffa111fb415..b87a1b7e1f1 100644 --- a/lib/navigationlib.php +++ b/lib/navigationlib.php @@ -3231,22 +3231,28 @@ class navbar extends navigation_node { */ private function get_course_categories() { global $CFG; - require_once($CFG->dirroot.'/course/lib.php'); + require_once($CFG->libdir.'/coursecatlib.php'); + $categories = array(); $cap = 'moodle/category:viewhiddencategories'; - foreach ($this->page->categories as $category) { - if (!$category->visible && !has_capability($cap, get_category_or_system_context($category->parent))) { - continue; + $showcategories = coursecat::count_all() > 1; + + if ($showcategories) { + foreach ($this->page->categories as $category) { + if (!$category->visible && !has_capability($cap, get_category_or_system_context($category->parent))) { + continue; + } + $url = new moodle_url('/course/index.php', array('categoryid' => $category->id)); + $name = format_string($category->name, true, array('context' => context_coursecat::instance($category->id))); + $categorynode = navigation_node::create($name, $url, self::TYPE_CATEGORY, null, $category->id); + if (!$category->visible) { + $categorynode->hidden = true; + } + $categories[] = $categorynode; } - $url = new moodle_url('/course/index.php', array('categoryid' => $category->id)); - $name = format_string($category->name, true, array('context' => context_coursecat::instance($category->id))); - $categorynode = navigation_node::create($name, $url, self::TYPE_CATEGORY, null, $category->id); - if (!$category->visible) { - $categorynode->hidden = true; - } - $categories[] = $categorynode; } + if (is_enrolled(context_course::instance($this->page->course->id))) { $courses = $this->page->navigation->get('mycourses'); } else {