MeisaMenuBundle is a bundle that helps the user to create multiple frontend menus in an easy way. Just three steps required after installing the bundle to get a cool menu in your website .
- This bundle serves the the end user , UI developer and also the application developer .
- You can easily configure and manage your frontend menus .
- This bundle depends on SonataAdminBundle .
- Configure the routes (Developer role) .
- Setup the menu .
- Use the created menu in your theme .
-
Install the bundle:
- Add the following line to your composer.json "mohammedeisa/menu_bundle": "2.0.*@dev"
- Update the composer .
- Enable the bundle in AppKernel.php by addming this line to $bundles "new Meisa\MenuBundle\MeisaMenuBundle()" .
-
Configure the bundle:
- In config.yml, import this resource which contains the bundle configurations .
- { resource: @MeisaMenuBundle/Resources/config/menu_definition.yml }
- Add
- 'MeisaMenuBundle:Form:meisa_link_field.html.twig'
to the twig form resources like the following.
twig: debug: "%kernel.debug%" strict_variables: "%kernel.debug%" form: resources: - 'MeisaMenuBundle:Form:meisa_link_field.html.twig'
This template is a helper in your application.I will explain it's benefits later in Meisa link helper.
- In config.yml, import this resource which contains the bundle configurations .
-
import the bundle routes by adding the following ti yor routing.yml
meisa_menu:
resource: "@MeisaMenuBundle/Controller/"
type: annotation
prefix: /
- Add the admin sidebar menu items for the bundle in sonata_admin.yml
{- meisa.menu.config , - meisa.menu.name}
like the following
sonata_admin:
dashboard:
groups:
sonata.admin.group.meisa:
label: Main
icon: '<i class="fa fa-play-circle"></i>'
items:
- meisa.menu.config
- meisa.menu.name
- the bundle registers two items in sonata sidebar (Menu config , Menu) At first you have to register all routes you need to use later in your frontend menus.
- Click on config and create new routes configurations.
route configuration process.
- Select a route and it's type then save .
- If you select the type as "show" , you will be asked to configure each route parameter.
- Go to menu and create new menu you will see all your configurations published at the button.
- Select the needed links for your menu and save it.
- After saving you will see the menu name at the top .
- You can use this in any frontend template to publish your menu using
show_menu
filter
- Example usage
{{ "header_menu"|show_menu|raw }}
Meisa link helper -- This is a helper form field of type "meisa_link". you can use it in any form in your sonata admin classes.
Example usage:
$formMapper ->add('link', 'meisa_link', array());
This link field is a text field with a button. when you click on this button , a modal will appear with your configured links. select the link you want and it will be set in the text field . this field type can be used in any bundle .