/** * unless 'raw' extra isn't set to true, we try to translate the label. * * @param ItemInterface $item * @param array $options * * @return string */ protected function renderLabel(ItemInterface $item, array $options) { if ($options['allow_safe_labels'] && $item->getExtra('safe_label', false)) { return $item->getLabel(); } if ($item->getExtra('raw', false) !== false) { return $this->escape($item->getLabel()); } return $this->escape(trans($item->getLabel())); }
public function render(ItemInterface $item, array $options = array()) { $options = array_merge($this->defaultOptions, $options); $translator = $options['translator']; $itemIterator = new \Knp\Menu\Iterator\RecursiveItemIterator($item); $iterator = new \RecursiveIteratorIterator($itemIterator, \RecursiveIteratorIterator::SELF_FIRST); $items = []; foreach ($iterator as $item) { $translatedLabel = $translator->trans($item->getLabel()); $id = $item->getName(); $itemData = ['id' => strtolower($item->getName()), 'name' => $translatedLabel, 'uri' => $item->getUri()]; $itemData['has_children'] = $item->hasChildren(); $parentId = $item->getParent()->getName(); if ($parentId !== $id) { $itemData['parent'] = strtolower($parentId); if (!isset($items[$parentId]['children'])) { $items[$parentId]['children'] = []; } $items[$parentId]['children'][] = $itemData; } if (isset($items[$id])) { $items[$id] = array_merge($itemData, $items[$id]); } else { $items[$id] = $itemData; } } return $items; }
/** * Configures the newly created item with the passed options * * @param ItemInterface $item * @param array $options */ public function buildItem(ItemInterface $item, array $options) { if (!empty($options['path'])) { $item->setUri(site_url($options['path'])); } if (!empty($options['icon_class'])) { $item->setLabel('<i class="' . $options['icon_class'] . '"></i> ' . $item->getLabel()); $item->setExtra('safe_label', true); } $this->buildExtras($item, $options); }
protected function renderLabel(ItemInterface $item, array $options) { $html = '<i class="' . $item->getIcon() . '"></i> '; $html .= '<span>' . $item->getLabel() . '</span>'; if ($item->hasChildren()) { $drop = false; foreach ($item->getChildren() as $child) { if (\App::isGranted($child->getPermissions())) { $drop = true; } } if ($drop) { $html .= '<i class="fa fa-angle-left pull-right"></i>'; } } return $html; }
/** * 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 \Knp\Menu\ItemInterface $item The item to render the link or label for * @param array $options The options to render the item * @return string */ public function renderLink(ItemInterface $item, array $options = array()) { $options = array_merge($this->getDefaultOptions(), $options); if ($item->getUri() && (!$item->isCurrent() || $options['currentAsLink'])) { $text = sprintf('<a href="%s"%s>%s</a>', $this->escape($item->getUri()), $this->renderHtmlAttributes($item->getLinkAttributes()), $this->escape($item->getLabel())); } else { $text = sprintf('<span%s>%s</span>', $this->renderHtmlAttributes($item->getLabelAttributes()), $this->escape($item->getLabel())); } return $this->format($text, 'link', $item->getLevel()); }
/** * @param \Knp\Menu\ItemInterface $item * @param array $options * @return string */ protected function getText(ItemInterface $item, array $options) { if ($options['allow_safe_labels'] && $item->getExtra('safe_label', false)) { return $item->getLabel(); } return $this->escape($item->getLabel()); }
/** * Renders the menu label. * * @param Item $item * @param array $options * * @return string */ protected function renderLabel(Item $item, array $options) { $icon = ''; if ($item->getExtra('icon')) { $icon = $this->renderIcon($item->getExtra('icon')); } if ($options['allow_safe_labels'] && $item->getExtra('safe_label', false)) { return $icon . $item->getLabel(); } return $icon . $this->escape($item->getLabel()); }
private function getBreadcrumbsItem(ItemInterface $item) { return array('label' => $item->getLabel(), 'uri' => $item->getUri(), 'item' => $item); }