/**
  * @staticvar int $counter
  * @param string $label
  * @param string $url
  * @return \Illagrenan\Navigation\NavigationNode
  */
 public function addNode($label, $url)
 {
     /* @var $homepageComponent Navigation */
     $homepageComponent = $this->lookup("Illagrenan\\Navigation\\Navigation", FALSE);
     // Obsahuje FALSE, pokud se nejedná o platný plink
     $parsedPlink = $homepageComponent->tryParsePlink($url);
     $newNavigationNode = new NavigationNode($label, $url);
     // Odkaz ve tvaru Presenter:action
     if ($parsedPlink !== FALSE) {
         $newNavigationNode->setUrl($parsedPlink);
         $newNavigationNode->setPlink($url);
     } else {
         $newNavigationNode->setUrl($url);
     }
     static $counter;
     $this->addComponent($newNavigationNode, "IllagrenanNavigationNO" . ++$counter);
     return $newNavigationNode;
 }
 /**
  * Najdi aktuální Node z httpRequestu
  * @param RecursiveComponentIterator $components
  * @param \Illagrenan\Navigation\NavigationNode $base
  * @return \Illagrenan\Navigation\NavigationNode|boolean
  */
 private function findCurrent(RecursiveIteratorIterator $components, NavigationNode $base)
 {
     $currentUrl = $this->httpRequest->getUrl();
     /* @var $oneNode NavigationNode */
     foreach ($components as $oneNode) {
         // Node využívá plink
         if ($oneNode->isPlinkPresent() && $oneNode->getPlink() == $this->getCurrentNetteRequest()) {
             return $oneNode;
         } elseif ($currentUrl->isEqual($oneNode->getUrl())) {
             return $oneNode;
         }
     }
     // Aktuální node může být ta, která se ptá
     // Node využívá plink
     if ($base->isPlinkPresent() && $base->getPlink() == $this->getCurrentNetteRequest()) {
         return $base;
     } elseif ($currentUrl->isEqual($base->getUrl())) {
         return $base;
     }
     return FALSE;
 }