/** * Set active class to current item and all its parents (so it is automatically opened) * * @param ItemInterface $item */ protected function setActive(ItemInterface $item = null) { if ($item) { $this->setActive($item->getParent()); $item->setAttribute('class', $item->getAttribute('class', '') . ' active'); } }
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); } }
/** * 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 putChildAttributes(ItemInterface $itemInterface) { $itemInterface->setAttribute("class", "sub-menu"); }
protected function createMainDropdownMenuItem(ItemInterface $rootItem, $title, $push_right = true, $icon = array(), $knp_item_options = array()) { $rootItem->setAttribute('class', 'nav navbar-nav'); if ($push_right) { $this->pushRight($rootItem); } $dropdown = $rootItem->addChild($title, array_merge(array('uri' => '#'), $knp_item_options))->setLinkattribute('class', 'dropdown-main-toggle')->setLinkattribute('data-toggle', 'dropdown')->setAttribute('class', 'dropdown-main')->setChildrenAttribute('class', 'dropdown-main-menu'); // TODO: make XSS safe $icon contents escaping switch (true) { case isset($icon['icon']) || isset($icon['glyphicon']): $this->addIcon($dropdown, $icon); break; case isset($icon['caret']) && $icon['caret'] === true: $this->addCaret($dropdown, $icon); } return $dropdown; }
protected function pushRight(ItemInterface $item) { $item->setAttribute('class', 'nav pull-right'); return $item; }
public function addClass(ItemInterface $menu) { $menu->setAttribute('class', sprintf('menu-icon-%s', $menu->getName())); }