{{-- Navigation du back-office. Grand écran : colonne fixe à gauche (le contenu est décalé par la règle body:has([data-admin-sidebar]) dans app.css, aucun écran à modifier). Mobile : barre horizontale compacte, comme avant. --}} @php // Groupes de la colonne latérale : chaque groupe est un sous-menu // repliable, ouvert quand la page courante lui appartient. $groupes = [ 'Contenus' => [ ['admin.entries', 'Fiches', 'admin.entries*'], ['admin.corpus', 'Corpus', 'admin.corpus*'], ['admin.glossaire', 'Glossaire', 'admin.glossaire'], ['admin.glossaire.familles', 'Familles', 'admin.glossaire.familles'], ], 'Suivi' => [ ['admin.signalements', 'Signalements', 'admin.signalements*'], ['admin.partenariats', 'Partenariats', 'admin.partenariats'], ['admin.interactions', 'Interactions', 'admin.interactions'], ['admin.avancement', 'Avancement', 'admin.avancement'], ['admin.journal', 'Journal des accès', 'admin.journal'], ], 'Comptes' => [ ['admin.utilisateurs', 'Utilisateurs', 'admin.utilisateurs'], ['admin.entreprises', 'Entreprises', 'admin.entreprises'], ], ]; if (auth()->user()->isEditor()) { $groupes['Comptes'][] = ['admin.comptes', 'Rôles', 'admin.comptes']; } $groupeActif = collect($groupes)->search( fn ($liens) => collect($liens)->contains(fn ($l) => request()->routeIs($l[2])), ); // Barre mobile : liste a plat, inchangee dans l esprit. $liens = collect($groupes)->flatten(1)->prepend(['admin.dashboard', 'Tableau de bord', 'admin.dashboard'])->all(); @endphp {{-- ── Colonne latérale (desktop) ─────────────────────────────────── --}} {{-- ── Barre horizontale (mobile et tablette) ─────────────────────── --}}