# Navigation Coaster World — v1.99.9.2

Depuis la v1.99.9, le header est piloté en priorité par la table MySQL `navigation_items`.

## Gestion quotidienne

Ouvrir **Admin → Navigation** (`/admin/navigation`). La page permet de :

- ajouter catégories, sections et liens ;
- réordonner par glisser-déposer ;
- déplacer une section dans une autre catégorie ;
- déplacer un lien dans une catégorie ou une section ;
- choisir l’icône, la route Laravel ou une URL externe ;
- limiter l’accès à tous, aux membres connectés ou aux admins ;
- activer/désactiver l’affichage desktop/mobile ;
- restaurer le menu officiel par défaut.

## Ajouter une future page

1. Créer la route et la page normalement.
2. Ouvrir **Admin → Navigation**.
3. Cliquer sur **Ajouter un lien**.
4. Choisir le parent, l’icône et le nom de route Laravel.
5. Enregistrer.

Aucune modification du Blade du header n’est nécessaire.

## Structure de la table

`navigation_items` utilise `parent_id` pour créer l’arborescence :

- `category` : niveau racine ;
- `section` : enfant d’une catégorie ;
- `link` : enfant d’une catégorie ou d’une section.

La colonne `options` conserve les options avancées des liens existants (patterns actifs, query string, fragment, méthode POST, paramètre utilisateur, etc.).

## Sécurité / secours

`config/header_navigation.php` reste le menu officiel de secours. Si la table n’existe pas, si la base est indisponible ou si la table est vide, le site revient automatiquement sur cette configuration.

Le bouton **Restaurer le menu par défaut** reconstruit la table à partir de ce fichier.

## Drapeaux de langue

Les langues utilisent de vrais fichiers SVG dans `public/images/flags/` afin d’éviter les différences d’affichage des emoji entre Chrome, Windows et les autres navigateurs.
