murph-doc/docs/tree/node.md
2021-05-31 19:52:39 +02:00

1.8 KiB

# 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.

A page only represents the content and a way to display it by setting a template.

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

core:
    site:
        pages:
            App\Entity\Page\SimplePage:
                name: 'Simple page'
                templates:
                    - {name: "Default", file: "page/simple/default.html.twig"}
            App\Entity\Page\YourPage:
                name: 'Your page'
                templates:
                    - {name: "Template 1", file: "page/your_page/template1.html.twig"}
                    - {name: "Template 2", file: "page/your_page/template2.html.twig"}

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 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'}

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.