From 51b47fd406724c7d60ab40fbc59e528e57414448 Mon Sep 17 00:00:00 2001 From: Sam Hemelryk Date: Wed, 30 Oct 2013 13:34:07 +0800 Subject: [PATCH 1/2] MDL-33536 navigation: hide hidden categories from the navbar --- lib/navigationlib.php | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/lib/navigationlib.php b/lib/navigationlib.php index fdd309affa1..a6de9916e14 100644 --- a/lib/navigationlib.php +++ b/lib/navigationlib.php @@ -3099,11 +3099,18 @@ class navbar extends navigation_node { */ private function get_course_categories() { $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; + } $url = new moodle_url('/course/index.php', array('categoryid' => $category->id)); $name = format_string($category->name, true, array('context' => context_coursecat::instance($category->id))); - $categories[] = navigation_node::create($name, $url, self::TYPE_CATEGORY, null, $category->id); - $id = $category->parent; + $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'); From a6d5825da49ddf145bc583260db05129c177ce6c Mon Sep 17 00:00:00 2001 From: Damyon Wiese Date: Wed, 13 Nov 2013 09:59:44 +0800 Subject: [PATCH 2/2] MDL-33536 Navigation: Add missing require_once for safety. --- lib/navigationlib.php | 3 +++ 1 file changed, 3 insertions(+) diff --git a/lib/navigationlib.php b/lib/navigationlib.php index a6de9916e14..cbfdf740d18 100644 --- a/lib/navigationlib.php +++ b/lib/navigationlib.php @@ -3098,6 +3098,9 @@ class navbar extends navigation_node { * @return array */ private function get_course_categories() { + global $CFG; + + require_once($CFG->dirroot.'/course/lib.php'); $categories = array(); $cap = 'moodle/category:viewhiddencategories'; foreach ($this->page->categories as $category) {