public function decorate(KnpMenuItem $knpMenuItem, AdminMenuItem $adminMenuItem) { if ($adminMenuItem instanceof RoutableItem && $adminMenuItem->getRoute()) { $knpMenuItem->setUri($this->router->generate($adminMenuItem->getRoute(), $adminMenuItem->getRouteParameters())); $routes = $knpMenuItem->getExtra('routes', array()); $routes[] = array('route' => $adminMenuItem->getRoute(), 'parameters' => $adminMenuItem->getRouteParameters()); $knpMenuItem->setExtra('routes', $routes); } }
public function decorate(KnpMenuItem $knpMenuItem, AdminMenuItem $adminMenuItem) { $knpMenuItem->setUri('#'); if ($adminMenuItem->hasOption('attr')) { $knpMenuItem->setAttributes($adminMenuItem->getOption('attr')); } if ($adminMenuItem->hasChildren()) { $knpMenuItem->setAttribute('dropdown', true); } }
/** * 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); }
/** * Build an item based on options * @param ItemInterface $item * @param array $options */ public function buildItem(ItemInterface $item, array $options) { if ($options['navbar']) { $item->setChildrenAttribute('class', 'nav navbar-nav'); } if ($options['pills']) { $item->setChildrenAttribute('class', 'nav nav-pills'); } if ($options['stacked']) { $class = $item->getChildrenAttribute('class'); $item->setChildrenAttribute('class', $class . ' nav-stacked'); } if ($options['dropdown-header']) { $item->setAttribute('role', 'presentation')->setAttribute('class', 'dropdown-header')->setUri(null); } if ($options['list-group']) { //echo "BLUBBB"; $item->setChildrenAttribute('class', 'list-group'); $item->setAttribute('class', 'list-group-item'); } //var_dump($item->getLabel(), $item->getChildrenAttributes()); if ($options['list-group-item']) { $item->setAttribute('class', 'list-group-item'); } if ($options['dropdown']) { $item->setUri('#')->setAttribute('class', 'dropdown')->setLinkAttribute('class', 'dropdown-toggle')->setLinkAttribute('data-toggle', 'dropdown')->setChildrenAttribute('class', 'dropdown-menu')->setChildrenAttribute('role', 'menu'); if ($options['caret']) { $item->setExtra('caret', 'true'); } } if ($options['divider']) { $item->setLabel('')->setUri(null)->setAttribute('role', 'presentation')->setAttribute('class', 'divider'); } if ($options['pull-right']) { $class = $item->getChildrenAttribute('class', ''); $item->setChildrenAttribute('class', $class . ' pull-right'); } if ($options['icon']) { $item->setExtra('icon', $options['icon']); } }
protected function createLink(ItemInterface $itemInterface, Menu $menu) { $uri = $this->routerInterface->generate($menu->getPage()); $itemInterface->setUri($uri); }
/** * Set uri, display context to menu item * * @param MenuItemInterface $item * @param array $routeParameters * @param array $options * * @return MenuFactoryInterface */ protected function setContext(MenuItemInterface $item, array $routeParameters = array(), array $options = array()) { $display = true; $rootItem = !$item->getName(); $token = $this->security->getToken(); if ($token) { if ($options['roles'] && !$this->security->isGranted($options['roles'])) { $display = false; } if ($display) { foreach ((array) $item->getExtra('oids') as $oidItem) { if (!$this->security->isGranted($oidItem['permissions'], $oidItem['oid'])) { $display = false; break; } } } } if ($options['route'] && !$rootItem) { $acceptedRouteParameters = array_intersect_key($routeParameters, $options['routeAcceptedParameters']); if ($options['routeRequiredParameters'] === $options['routeAcceptedParameters']) { $uri = $this->router->generate($options['route'], $acceptedRouteParameters, $options['routeAbsolute']); $item->setUri($uri); } else { $display = false; } } if (!$display) { if ($options['showNonAuthorized'] && !$token) { $display = true; } if ($options['showAsText']) { $display = true; $item->setUri(null); } } if (!$display) { $item->setDisplay(false); } return $this; }
/** * Configures the newly created item with the passed options * * @param ItemInterface $item * @param array $options */ public function buildItem(ItemInterface $item, array $options) { $item->setUri($options['uri'])->setLabel($options['label'])->setAttributes($options['attributes'])->setLinkAttributes($options['linkAttributes'])->setChildrenAttributes($options['childrenAttributes'])->setLabelAttributes($options['labelAttributes'])->setCurrent($options['current'])->setDisplay($options['display'])->setDisplayChildren($options['displayChildren']); $this->buildExtras($item, $options); }