From: Michael M Slusarz Date: Tue, 4 Jan 2011 21:32:16 +0000 (-0700) Subject: Fix clicking on first element in Help menu X-Git-Url: https://git.internetallee.de/?a=commitdiff_plain;h=cde86912b87a4b4d308114fd5424c32fa5d1eee6;p=horde.git Fix clicking on first element in Help menu --- diff --git a/horde/services/help/index.php b/horde/services/help/index.php index 109785250..a2c32b1c8 100644 --- a/horde/services/help/index.php +++ b/horde/services/help/index.php @@ -92,38 +92,34 @@ case 'sidebar': $node_params = $node_params_master; $parent = null; - $node_params['url'] = $base_url->copy()->setRaw(true)->add(array( - 'show' => 'entry', - 'topic' => $id - )); - /* If the title doesn't begin with :: then replace all * double colons with single colons. */ if (substr($title, 0, 2) != '::') { $title = str_replace('::', ': ', $title); } - /* Remove linebreaks that would be rendered in the tree. */ - $title = preg_replace('/\s+/', ' ', $title); - /* Split title in multiple levels */ $levels = preg_split('/:\s/', $title); - if (count($levels) > 1) { - $parent = null; - $idx = ''; - while ($name = array_shift($levels)) { - $idx .= '|' . $name; - if (empty($added_nodes[$idx])) { - $added_nodes[$idx] = true; - if (count($levels)) { - unset($node_params['url']); - } - $tree->addNode($idx, $parent, $name, 0, false, $node_params); + if (count($levels) == 1) { + $levels = array(1 => $title); + } + + $parent = null; + $idx = ''; + + foreach ($levels as $key => $name) { + $idx .= '|' . $name; + if (empty($added_nodes[$idx])) { + $added_nodes[$idx] = true; + if ($key) { + $node_params['url'] = $base_url->copy()->setRaw(true)->add(array( + 'show' => 'entry', + 'topic' => $id + )); } - $parent .= '|' . $name; + $tree->addNode($idx, $parent, $name, 0, false, $node_params); } - } else { - $tree->addNode($id, $parent, $title, 0, false, $node_params); + $parent .= '|' . $name; } } break;