Structure à 2 niveaux, positionnement FLOAT et hiérarchie parent/enfant
Le menu de navigation de votre site Markdodo est généré automatiquement à partir des métadonnées de vos pages. Il supporte deux niveaux de profondeur : un menu principal et des sous-menus. Le positionnement des éléments se fait via des valeurs numériques de type FLOAT, offrant une flexibilité totale pour ordonner vos pages.
Chaque page possède deux champs de positionnement :
position_menu_page : détermine la position de la page dans le menu principal (niveau 1).position_submenu_page : détermine la position de la page dans le sous-menu de son parent (niveau 2).Règle du zéro : si une position est égale à
0(ou0.0), la page est masquée du menu ou du sous-menu correspondant. Pour afficher une page dans le menu, utilisez une valeur supérieure à0(par exemple1.0,1.5,2.0).
Imaginons un site avec les pages suivantes :
[
{
"slug_page": "accueil",
"short_title_page": "Accueil",
"position_menu_page": 1.0,
"position_submenu_page": 0,
"id_parent_page": null
},
{
"slug_page": "blog",
"short_title_page": "Blog",
"position_menu_page": 2.0,
"position_submenu_page": 0,
"id_parent_page": null
},
{
"slug_page": "mon-article",
"short_title_page": "Mon article",
"position_menu_page": 0,
"position_submenu_page": 1.0,
"id_parent_page": 42
}
]
Cela génère le menu suivant :
Les positions sont des nombres décimaux (FLOAT). Cette approche permet d'insérer de nouvelles pages entre deux existantes sans avoir à décaler toutes les autres :
1.02.03.0Pour insérer une page entre B et C, il suffit de lui attribuer la position 2.5. Les pages sont triées par ordre croissant de leur valeur de position.
position_menu_page à 01.0, 2.0, 3.0...1.5 ou 2.25Le champ id_parent_page définit la relation parent/enfant entre les pages :
id_parent_page est null, la page est au niveau racine (elle apparaît dans le menu principal si position_menu_page > 0)id_parent_page contient un ID de page, la page est un enfant de cette page (elle apparaît dans le sous-menu si position_submenu_page > 0)Lors de la création d'une page via POST, définissez id_parent_page avec l'ID de la page parente :
curl -s -X POST "https://markdodo.com/api/pages" \
-H "Authorization: Bearer votre_cle_api" \
-H "Content-Type: application/json" \
-d '{
"slug_page": "nouvelle-sous-page",
"short_title_page": "Sous-page",
"long_title_page": "Ma sous-page",
"markdown": "# Contenu de la sous-page",
"id_parent_page": 137,
"position_menu_page": 0,
"position_submenu_page": 1.0
}'
Note : L'ID de la page parente (
id_parent_page) se retrouve dans la réponse duGET /api/pages. Repérez l'id_pagede la page qui servira de parent avant de créer vos sous-pages.