menuItemChecker = $menuItemChecker; $this->escaper = $escaper; } /** * Render menu item anchor. * * It is used in backend menu to render anchor menu. * * @param Item|false $activeItem Can be false if menu item is inaccessible * but was triggered directly using controller. It is a legacy code behaviour. * @param Item $menuItem * @param int $level * @return string */ public function renderAnchor($activeItem, Item $menuItem, $level) { if ($level == 1 && $menuItem->getUrl() == '#') { $output = ''; if ($menuItem->hasChildren()) { $output = '' . '' . $this->escaper->escapeHtml(__($menuItem->getTitle())) . '' . ''; } } else { $target = $menuItem->getTarget() ? ('target=' . $menuItem->getTarget()) : ''; $output = '_renderItemAnchorTitle( $menuItem ) . $this->_renderItemOnclickFunction( $menuItem ) . ' class="' . ($this->menuItemChecker->isItemActive($activeItem, $menuItem, $level) ? '_active' : '') . '">' . '' . $this->escaper->escapeHtml(__($menuItem->getTitle())) . '' . ''; } return $output; } /** * Render menu item anchor title * * @param Item $menuItem * @return string */ private function _renderItemAnchorTitle($menuItem) { return $menuItem->hasTooltip() ? 'title="' . __($menuItem->getTooltip()) . '"' : ''; } /** * Render menu item onclick function * * @param Item $menuItem * @return string */ private function _renderItemOnclickFunction($menuItem) { return $menuItem->hasClickCallback() ? ' onclick="' . $menuItem->getClickCallback() . '"' : ''; } }