# debugging('build_navigation() has been deprecated, please replace with $PAGE->navbar methods', DEBUG_DEVELOPER);
foreach ($extranavlinks as $nav) {
if (array_key_exists('name', $nav)) {
- $link = (array_key_exists('link', $nav))?$nav['link']:null;
+ if (array_key_exists('link', $nav) && !empty($nav['link'])) {
+ $link = $nav['link'];
+ } else {
+ $link = null;
+ }
$PAGE->navbar->add($nav['name'],null, null, navbar::TYPE_CUSTOM, $link);
}
}
// For screen readers
$output = get_accesshide(get_string('youarehere','access'), 'h2')."<ul>\n";
- $firstnode = true;
$customchildren = (count($this->children) > 0);
// Check if navigation contains the active node
if ($this->page->navigation->contains_active_node()) {
// Parse the navigation tree to get the active node
- $output .= $this->parse_branch_to_html($this->page->navigation->children, $firstnode, $customchildren);
- $firstnode = false;
+ $output .= $this->parse_branch_to_html($this->page->navigation->children, true, $customchildren);
} else if ($this->page->settingsnav->contains_active_node()) {
// Parse the settings navigation to get the active node
- $output .= $this->parse_branch_to_html($this->page->settingsnav->children, $firstnode, $customchildren);
- $firstnode = false;
+ $output .= $this->parse_branch_to_html($this->page->settingsnav->children, true, $customchildren);
}
// Check if there are any children added by code
if ($customchildren) {
// Add the custom children
- $output .= $this->parse_branch_to_html($this->children,$firstnode, false);
+ $output .= $this->parse_branch_to_html($this->children, false, false);
}
$output .= "</ul>\n";
$this->content = $output;
$this->keys[] = $key;
$child = $this->get_by_path($this->keys);
if ($child!==false) {
- $child->forceopen = true;
+ // This ensure that the child will be shown
+ $child->make_active();
}
return $key;
}