Menu Configuration

The configuration of the menu can be done using an YAML file. This file should be imported into your application configuration.

Here is how to include your configuration file to your config.yml standard file :

imports:
    - { resource: parameters.yml }
    - { resource: security.yml }
    - { resource: services.yml }
...
    - { resource: sunshine/menu.yml }
...

A menu can handle the following elements:

Type : section

A section is a separator of elements in the menu.

...
        -
            label : Entités
            type : section
            children :

            -
                label : Company
                type : page
                icon : diamond
                parameters :
                    id : demoPage

            -
                label : Project
                type : page
                icon : puzzle
                parameters :
                    id : demoPage2
...

Item

Description

Required

label

Label which should be displayed

Yes

type

Type of element. Should be one of this page of documentation

Yes

children

Any elements

No

Type : submenu

...
        -
            label : Sous Menu
            type : subMenu
            icon : compass
            children :

                -
                    label : Mon Label 5
                    type : page
                    icon : compass
                    parameters :
                        id : demoPage2

                -
                    label : Mon Label 6
                    type : external
                    icon : compass
                    parameters :
                        url : http://www.google.fr
...

It contains children, which could be any of the menu supported elements.

Item

Description

Required

label

Label which should be displayed

Yes

type

Type of element. Should be one of this page of documentation

Yes

icon

The name of an icon used by your theme

Yes

children

Any element

No

Type : Sunshine List

...
        -
            label : Liste d'une entité
            type : list
            entityName : <my_entity>
            icon : compass
...

Item

Description

Required

label

Label which should be displayed

Yes

type

Type of element. Should be one of this page of documentation

Yes

icon

The name of an icon used by your theme

Yes

entityName

Name of the entity in your configuration to display

Yes

Type : Sunshine page

...
        -
            label : Mon Label 5
            type : page
            icon : compass
            parameters :
                id : demoPage2
...

Item

Description

Required

label

Label which should be displayed

Yes

type

Type of element. Should be one of this page of documentation

Yes

icon

The name of an icon used by your theme

Yes

parameters/id

Id of the targeted page as it has been configured in your configuration

Yes

Type : route

...
        -
            label : Route Custom
            type : route
            icon : diamond
            route : widget_test
            parameters :
                pageName : demoPage
                row : 0
                widgetName : test
...

Item

Description

Required

label

Label which should be displayed

Yes

type

Type of element. Should be one of this page of documentation

Yes

icon

The name of an icon used by your theme

Yes

route

name of the route available in your application

Yes

parameters

Any parameter you need to push to the route

Yes

Type : External page

...
        -
            label : Mon Label 4
            type : external
            icon : compass
            target: _blank
            parameters :
                url : http://www.google.fr
...

Item

Description

Required

label

Label which should be displayed

Yes

type

Type of element. Should be one of this page of documentation

Yes

icon

The name of an icon used by your theme

Yes

parameters/url

Url of the page

Yes

target

Any of HTML compliant targets

Yes

Roles & Permissions configuration

You may need to configure menu items to be available only for specific users based on their roles and/or permissions. You may achieve this by adding a security parameter for each menu item you want to control access to.

See example below :

```
security:
    roles: [ROLE_ADMIN]
    permissions: ['edit_user']
    entity: User
```

Last updated