# Node - Documentation of Murph
None

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.