function url($url = null)
 {
     if (is_null($url)) {
         if (isset($this->cachedUrl)) {
             return $this->cachedUrl;
         }
         if (is_callable($url = $this->url)) {
             $url = $url();
         }
         if (isset($url) && $this->parent && ($url === '' || $url[0] != '/') && !preg_match('/^\\w+:/', $url)) {
             $base = $this->parent->url();
             $url = exists($base) ? exists($url) ? "{$base}/{$url}" : $base : $url;
         } else {
             if ($url && $url[0] == '/') {
                 $url = $this->getRequest()->getAttribute('baseUri') . $url;
             }
         }
         $this->url = $url;
         if (exists($url)) {
             $url = $this->evaluateUrl($url);
         }
         return $this->cachedUrl = $url;
     }
     //else DO NOT CACHE IT YET!
     $this->url = $url;
     return $this;
 }
Exemplo n.º 2
0
 private function linkIsActive(NavigationLinkInterface $link, $url)
 {
     $linkUrl = $link->url();
     if ($linkUrl === $url) {
         return true;
     }
     foreach ($link->links() as $sub) {
         if ($this->linkIsActive($sub, $url)) {
             return true;
         }
     }
     return false;
 }