diff --git a/lib/navigationlib.php b/lib/navigationlib.php index c29cf0e007d..cd931071860 100644 --- a/lib/navigationlib.php +++ b/lib/navigationlib.php @@ -3144,12 +3144,22 @@ 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) { + if (!$category->visible && !has_capability($cap, get_category_or_system_context($category->parent))) { + continue; + } $url = new moodle_url('/course/category.php', array('id' => $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');