2017 © Pedro PelĂĄez
 

symfony-bundle menu-bundle

Menu Bundle that allows you to create menus, and manage them easily with SonataAdminBundle

image

id4v/menu-bundle

Menu Bundle that allows you to create menus, and manage them easily with SonataAdminBundle

  • Thursday, June 23, 2016
  • by moustik
  • Repository
  • 2 Watchers
  • 2 Stars
  • 1,460 Installations
  • PHP
  • 1 Dependents
  • 0 Suggesters
  • 3 Forks
  • 4 Open issues
  • 11 Versions
  • 4 % Grown

The README.md

SensioLabsInsight, (*1)

MenuBundle

Id4vMenuBundle is a Symfony2 bundle to manage menus easily, (*2)

How it works

A Menu is a tree of MenuItems, (*3)

MenuItems are * A label to display * Optionally an icon to show * A link to go when clicked, (*4)

Installation

1 Install it using composer, (*5)

composer require id4v/menu-bundle

2 Activate the bundle in your AppKernel.php file, (*6)

public function registerBundles()
    {
        $bundles = array(
        ...
        # if you haven't already this bundle
        new Stof\DoctrineExtensionsBundle\StofDoctrineExtensionsBundle(),
        ...
        new \Id4v\Bundle\MenuBundle\Id4vMenuBundle(),
        ...
        );
        return $bundles
    }

3 Add this mandatory configuration for the StofDoctrineExtensionsBundle in your config.yml, (*7)

stof_doctrine_extensions:
    orm:
        default:
            sluggable: true

4 Register the id4v_menu.admin.menu Service to your sonata admin configuration, (*8)

5 Profit!, (*9)

Usage

Create your menu in the admin of your website.

Organize your menu by adding MenuItems, drag and dropping them

Render your Menu in twig templates

Full exemple of implementation

{{ knp_menu_render("app.menu.main", {template: "Id4vMenuBundle:Menu:main.html.twig"}) }}

or, (*10)

{{ knp_menu_render("app.menu.main", {template: "menu:main.html.twig"}) }}

All documentation for this tag is available here : KnpMenuBundle., (*11)

A base builder as been added to help common usage of menu creation, the BaseMenuBuilder.php class., (*12)

First of all the basic declaration of your builder can be :, (*13)

namespace AppBundle\Menu;

use Knp\Menu\FactoryInterface;
use Doctrine\ORM\EntityManager;
use Id4v\Bundle\MenuBundle\Builder\BaseMenuBuilder;

class AppMenuBuilder extends BaseMenuBuilder
{
    public function __construct(FactoryInterface $factory, EntityManager $em)
    {
        parent::__construct($factory, $em);
    }

    public function createMainMenu()
    {
        return $this->getSimpleMenu('main-menu');
    }
}

You can now declare yours services :, (*14)

services:
    app.menu_builder:
        class: AppBundle\Menu\AppMenuBuilder
        arguments: ["@knp_menu.factory", "@doctrine.orm.entity_manager"]

    app.menu.main:
        class: Knp\Menu\MenuItem # the service definition requires setting the class
        factory: ["@app.menu_builder", createMainMenu]
        arguments: ["@request_stack"]
        tags:
            - { name: knp_menu.menu, alias: app.menu.main }

You can consult documentation of this declaration in KnpMenuBundle Doc., (*15)

Moreover you can activate an URI matcher or adapt one on your need., (*16)

services:
    app.voter.regex:
        class: Id4v\Bundle\MenuBundle\Matcher\Voter\UriVoter
        arguments: ["@request_stack"]
        tags:
            - { name: knp_menu.voter }

Sonata Admin

Sometimes you get an abundant tree into your menus. And the performance of the administration get found affected. It's the reason why existing a configuration with the bundle., (*17)

By default you can only drap and drop two levels depth. If you want to change it, modify the menu_depth node., (*18)

Default Configuration, (*19)

id4v_menu:
    admin:
        menu_depth: 2

The Versions

23/06 2016

dev-master

9999999-dev

Menu Bundle that allows you to create menus, and manage them easily with SonataAdminBundle

  Sources   Download

MIT

The Requires

 

by David Rimbault
by Jérémy Marodon

generator admin sonata menu menu generator

06/03 2016

dev-2.x-dev

dev-2.x-dev

Menu Bundle that allows you to create menus, and manage them easily with SonataAdminBundle

  Sources   Download

MIT

The Requires

 

by David Rimbault
by Jérémy Marodon

generator admin sonata menu menu generator

29/09 2015

2.0.4

2.0.4.0

Menu Bundle that allows you to create menus, and manage them easily

  Sources   Download

MIT

The Requires

 

by David Rimbault
by Jérémy Marodon

menu menu generator

23/07 2015

2.0.3

2.0.3.0

Menu Bundle that allows you to create menus, and manage them easily

  Sources   Download

MIT

The Requires

 

by David Rimbault
by Jérémy Marodon

menu menu generator

07/07 2015

2.0.2

2.0.2.0

Menu Bundle that allows you to create menus, and manage them easily

  Sources   Download

MIT

The Requires

 

by David Rimbault
by Jérémy Marodon

menu menu generator

06/07 2015

2.0.1

2.0.1.0

Menu Bundle that allows you to create menus, and manage them easily

  Sources   Download

MIT

The Requires

 

by David Rimbault
by Jérémy Marodon

menu menu generator

03/07 2015

2.0.0

2.0.0.0

Menu Bundle that allows you to create menus, and manage them easily

  Sources   Download

MIT

The Requires

 

by David Rimbault
by Jérémy Marodon

menu menu generator

09/06 2015

1.1.2

1.1.2.0

Menu Bundle that allows you to create menus, and manage them easily

  Sources   Download

MIT

The Requires

 

by David Rimbault

menu menu generator

22/04 2015

1.1.1

1.1.1.0

Menu Bundle that allows you to create menus, and manage them easily

  Sources   Download

MIT

The Requires

 

by David Rimbault

menu menu generator

10/04 2015

1.1.0

1.1.0.0

Menu Bundle that allows you to create menus, and manage them easily

  Sources   Download

MIT

The Requires

 

by David Rimbault

menu menu generator

20/03 2015

1.0.0

1.0.0.0

Menu Bundle that allows you to create menus, and manage them easily

  Sources   Download

The Requires

 

by David Rimbault

menu menu generator