Skip to content

MenuNavbar #132

@ghost

Description

I can't display manu using Listener.

What I do?

  1. Created into my bundle directory Model (AppBundle\Model)
  2. Created into Model class MenuItemModel with MenuItemInterface and declared abstract method
  3. Created directory EventListener into AppBundle
  4. Created class MyMenuItemListListener
namespace AppBundle\EventListener;

use AppBundle\Model\MenuItemModel;
use Avanzu\AdminThemeBundle\Event\SidebarMenuEvent;
use Symfony\Component\HttpFoundation\Request;
class MyMenuItemListListener
{
    public function onSetupMenu(SidebarMenuEvent $event) {


    $request = $event->getRequest();

    foreach ($this->getMenu($request) as $item) {
        $event->addItem($item);
    }

}

protected function getMenu(Request $request) {
    // Build your menu here by constructing a MenuItemModel array


    $menuItems = array(

        new MenuItemModel('ItemId1', 'Label1', 'rasfe', array(/* options */), 'iconclasses fa fa-plane'),
        new MenuItemModel('ItemId2', 'Label2', 'sad', array(/* options */), 'iconclasses fa fa-plane'),

    );


    return $this->activateByRoute($request->get('_route'), $menuItems);
}

protected function activateByRoute($route, $items) {

    foreach($items as $item) {
        if($item->hasChildren()) {
            $this->activateByRoute($route, $item->getChildren());
        }
        else {
            if($item->getRoute() == $route) {
                $item->setIsActive(true);
            }
        }
    }

    return $items;
}

}

Next I add services

parameters:
        app.menu_listener.class: AppBundle\EventListener\MyMenuItemListListener
services:
        app.menu_listener:
            class: %app.menu_listener.class%
            tags:
                - { name: kernel.event_listener, event:theme.sidebar_setup_menu, method:onSetupMenu }`

Problem is that menu item isn't visible.

`<section class="sidebar" style="height: auto;">
                                                        <!-- sidebar menu: : style can be found in sidebar.less -->
<ul class="sidebar-menu"> <li class="header"></li> </ul></section>`

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions