Skip to content

Node

A node allows you to create a tree structure in a menu. To create or update a node, click on "Edit" or the sign "+". The basic information to fill is label but more parameters are accessible via 4 tabs:

  • Content
  • Routing
  • Attributes
  • Sitemap

Content

The content tab allow you to define an optional Page to associate to the node. You can also define that the node is an alias of another node.

Routing

The routing tab is very important. It allows you to define all parameters related to:

  • The routing (obviously):
    • An optional URL with parameters
    • A route name generated using the field code
  • A custom content-type of the response (eg: 'text/plain')
  • A custom controller called when the node is requested

To add a controller in the list, edit config/packages/app.yaml:

core:
    site:
        controllers:
            - {name: 'Foo', action: 'App\Controller\ExampleController::foo'}
            - {name: 'Bar', action: 'App\Controller\OtherController::bar'}

If you need to restrict the access, you can provided a list of roles in the configuration:

config/packages/app.yaml
core:
    site:
        security:
            roles:
                - {name: 'Foo role', role: 'ROLE_FOO'}
                - {name: 'Bar role', role: 'ROLE_BAR'}

Then you will be able to select what roles are required:

Attributes

Attributes are a collection of keys and values attached to a node (eg: class, icon, whatever you want).

Sitemap

This tab contains information to configure the sitemap.