Tuto Site
Route
Une route = une adresse publique. Elle liste des pages, elle ne les layout pas. Live : lib/data/entities/page/route_content.dart. Pas dans page_by_route (le {uuid} est la route). Store RouteContentP.
Champs fromJson
| Clé | Type | Rôle |
|---|---|---|
uuid | string v7 | clé GoRouter / page_by_route/{uuid} / action_link.data |
enable | 0|1 | 1 sinon absente du site |
menu | 0|1 | apparaît dans le menu |
transition | string | "fade" défaut. Valeurs = TransitionStyle.* sans préfixe |
name | TextLocale | nom / slug localisé |
list_page | string[] | uuids PageContent, ordre d’empilement |
odr | int | ordre menu |
gen folder push | 0|1 | génération document, grouping, push |
meta | objet | SEO (PathContent est une autre entité) |
Navigation depuis un view
Ouvrir cette route : ActionContent.type = action_link 018ef76b-29d7-7892-b912-8dfa0c23f5f7 + data = uuid de la route → goSitePage(RouteContentP.s.getPathAllByUUID(data)). Si data n’est pas un uuid de route connu → URL externe urlLaunchNew.
Exemple live (small page)
{
"id": 0,
"odr": 1,
"uuid": "0197836e-eff6-7168-974e-d4b63ed8f04f",
"origin": "",
"uuid_folder": "",
"gen": 0,
"folder": 0,
"enable": 1,
"menu": 1,
"ref": "",
"push": 0,
"transition": "fade",
"name": { "fr": "accueil", "en": "home", "nl": "", "es": "", "it": "", "pt": "", "de": "" },
"list_page": ["0197836f-07f5-70a6-bc61-e0377b5cd0d9"],
"meta": {},
"pdf": {}
}
list_page doit contenir le uuid de chaque PageContent émis. Une page orpheline n’est pas routée.
Piège.
PathContent (path_content.dart) est une autre entité (sitemap, og:title). Ne pas la confondre avec ViewContent.path. Pour peindre une page : Route + Page + View suffisent.