add documentation

This commit is contained in:
Simon Vieille 2021-05-31 19:52:39 +02:00
parent 112e90056d
commit c8d44dab0b
3 changed files with 63 additions and 3 deletions

View file

@ -4,8 +4,8 @@ Murph manages contents this way:
* You define navigations
* For each navigation, you define menus
* For each menu, you define elements (nodes)
* and for each element, you define:
* For each menu, you define nodes (elements)
* and for each node, you define:
- an optional page
- the routing
- some attributes

View file

@ -5,6 +5,6 @@ To create a menu, go to `Trees`, select the navigation and click on `Add a menu`
* The `label` is the label displayed whenever necessary (eg: `Top menu`)
* The `code` is an unique technical identifier (in the given navigation) and it is useful in templating, routing and settings (eg: `top`)
When a menu is created then an element is automatically generated.
When a menu is created then an node is automatically generated.
![](/_static/img/tree/02.png)

60
docs/tree/node.md Normal file
View file

@ -0,0 +1,60 @@
# 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.