Пример #1
0
 /**
  * Renders the link in a a tag with link attributes or
  * the label in a span tag with label attributes
  *
  * Tests if item has a an uri and if not tests if it's
  * the current item and if the text has to be rendered
  * as a link or not.
  *
  * @param MenuItem $item The item to render the link or label for
  * @return string
  */
 public function renderLink($item)
 {
     $text = '';
     if (!$item->getUri()) {
         $text = sprintf('<span%s>%s</span>', $this->renderHtmlAttributes($item->getLabelAttributes()), $item->renderLabel());
     } else {
         if ($item->getIsCurrent() && $item->getParent()->getCurrentAsLink() || !$item->getIsCurrent()) {
             $text = sprintf('<a href="%s"%s>%s</a>', $item->getUri(), $this->renderHtmlAttributes($item->getLinkAttributes()), $item->renderLabel());
         } else {
             $text = sprintf('<span%s>%s</span>', $this->renderHtmlAttributes($item->getLabelAttributes()), $item->renderLabel());
         }
     }
     return $this->format($text, 'link', $item->getLevel());
 }