diff --git a/lib/navigationlib.php b/lib/navigationlib.php index 7e00815a9ad..a4e392e7475 100644 --- a/lib/navigationlib.php +++ b/lib/navigationlib.php @@ -3016,6 +3016,7 @@ class navbar extends navigation_node { * @return array */ public function get_items() { + global $CFG; $items = array(); // Make sure that navigation is initialised if (!$this->has_items()) { @@ -3052,11 +3053,8 @@ class navbar extends navigation_node { if (!$navigationactivenode->mainnavonly) { $items[] = $navigationactivenode; } - if ($navigationactivenode->type === self::TYPE_COURSE && $navigationactivenode->parent->key === 'currentcourse') { - $categories = $this->get_course_categories(); - foreach ($categories as $category) { - $items[] = $category; - } + if (!empty($CFG->navshowcategories) && $navigationactivenode->type === self::TYPE_COURSE && $navigationactivenode->parent->key === 'currentcourse') { + $items = array_merge($items, $this->get_course_categories()); } $navigationactivenode = $navigationactivenode->parent; } @@ -3066,11 +3064,8 @@ class navbar extends navigation_node { if (!$navigationactivenode->mainnavonly) { $items[] = $navigationactivenode; } - if ($navigationactivenode->type === self::TYPE_COURSE && $navigationactivenode->parent->key === 'currentcourse') { - $categories = $this->get_course_categories(); - foreach ($categories as $category) { - $items[] = $category; - } + if (!empty($CFG->navshowcategories) && $navigationactivenode->type === self::TYPE_COURSE && $navigationactivenode->parent->key === 'currentcourse') { + $items = array_merge($items, $this->get_course_categories()); } $navigationactivenode = $navigationactivenode->parent; } @@ -3109,13 +3104,10 @@ class navbar extends navigation_node { $categories = array(); $id = $this->page->course->category; while ($id) { - $category = coursecat::get($id); - $categories[] = new navigation_node(array( - 'text'=>$category->name, - 'shorttext'=>$category->name, - 'key'=>$category->idnumber, - 'action'=>new moodle_url('/course/category.php', array('id'=>$id)) - )); + $category = get_course_category($id); + $url = new moodle_url('/course/category.php', array('id' => $id)); + $name = format_string($category->name, true, context_coursecat::instance($category->id)); + $categories[] = navigation_node::create($name, $url, self::TYPE_CATEGORY, null, $id); $id = $category->parent; } $categories[] = $this->page->navigation->get('courses');