target = $configuration->get('target', null); } } /** * Get the view this menu item is being rendered to * * @return View */ protected function getView() { if ($this->view === null) { $this->view = Icinga::app()->getViewRenderer()->view; } return $this->view; } /** * Creates a menu item link element * * @param Menu $menu * * @return string */ public function createLink(Menu $menu) { $attributes = isset($this->target) ? sprintf(' target="%s"', $this->getView()->escape($this->target)) : ''; if ($menu->getIcon() && strpos($menu->getIcon(), '.') === false) { return sprintf( '%s', $menu->getUrl() ? : '#', $attributes, $menu->getIcon(), $this->getView()->escape($menu->getTitle()) ); } return sprintf( '%s%s', $menu->getUrl() ? : '#', $attributes, $menu->getIcon() ? ' ' : '', $this->getView()->escape($menu->getTitle()) ); } /** * Renders the html content of a single menu item * * @param Menu $menu * * @return string */ public function render(Menu $menu) { return $this->createLink($menu); } }