/**
  * 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;
 }
Example #7
0
 public function addClass(ItemInterface $menu)
 {
     $menu->setAttribute('class', sprintf('menu-icon-%s', $menu->getName()));
 }