function & _fetch(&$counter, $params) { $result =& parent :: _fetch($counter, $params); $uri = new uri($_SERVER['PHP_SELF']); //we're trimming trailing slashes: thus /root/about == /root/about/ $uri->set_path(rtrim($uri->get_path(), '/')); foreach($result as $key => $data) { $nav_uri = new uri($data['url']); $nav_uri->set_path(rtrim($nav_uri->get_path(), '/')); if ($uri->get_host() != $nav_uri->get_host()) continue; if(is_integer($res = $uri->compare_path($nav_uri))) { if($res >= 0) $result[$key]['in_path'] = true; if($res == 0) $result[$key]['selected'] = true; } } return $result; }
function _compare_with_url($url) { $uri = new uri($_SERVER['PHP_SELF']); //we're trimming trailing slashes: thus /root/about == /root/about/ $uri->set_path(rtrim($uri->get_path(), '/')); $nav_uri = new uri($url); $nav_uri->set_path(rtrim($nav_uri->get_path(), '/')); if ($uri->get_host() != $nav_uri->get_host()) { return false; } return $uri->compare_path($nav_uri); }