Seitenleiste

Das Offcanvas-Panel ist Teil der App-Shell von nfgarching/core. Die Demo zeigt hier das aktuelle Konto.

Demo-Konto

ENV: production · Package-Version 1.0.0


Registries

core kennt die anderen Packages nicht. Stattdessen bindet es drei Registries als Singleton – SidebarNavigation, NavbarNavigation und ModalRegistry –, und jedes Feature-Package trägt im boot() seines ServiceProviders eine View mit order und optionalem when-Guard bei. Die Shell rendert nur noch die sortierte, sichtbare Liste.
Gespeichert in der Session; ausgewertet über die when-Guards. Status: aktiv
app/Demo/ExamplePackage/ExampleServiceProvider.php
<?php

namespace App\Demo\ExamplePackage;

use Illuminate\Support\ServiceProvider;
use Nfgarching\Core\Modals\ModalRegistry;
use Nfgarching\Core\Navigation\NavbarNavigation;
use Nfgarching\Core\Navigation\SidebarNavigation;

/**
 * Pseudo-Feature-Package für die Registries-Demo. Es trägt einen Navbar-Eintrag,
 * einen Sidebar-Abschnitt und ein Modal bei – genau wie ein echtes Package.
 * Der when-Guard liest einen Session-Schalter, sodass sich alle drei Beiträge
 * auf /core/registries live ein- und ausblenden lassen.
 */
class ExampleServiceProvider extends ServiceProvider
{
    public const string SESSION_KEY = 'demo.example_package';

    public function boot(): void
    {
        $this->loadViewsFrom(__DIR__.'/views', 'example');

        $active = fn (): bool => self::active();

        $this->app->make(NavbarNavigation::class)->item('example::navbar', order: 50, when: $active);

        $this->app->make(SidebarNavigation::class)->section('example::sidebar', order: 20, when: $active);

        $this->app->make(ModalRegistry::class)->modal('example::modal', order: 50, when: $active);
    }

    public static function active(): bool
    {
        return (bool) session(self::SESSION_KEY, true);
    }
}
Ergebnis: sichtbare Einträge dieser Anfrage

NavbarNavigation::visibleItems()

  1. example::navbar Beispiel-Package
  2. demo.navigation.navbar

SidebarNavigation::visibleSections()

  1. demo.navigation.sidebar
  2. example::sidebar Beispiel-Package

ModalRegistry::visibleModals()

  1. example::modal Beispiel-Package

Weitere Dokumentation


Dokumentation auf GitHub (docs/sidebar-navigation.md)

Demo – alle Daten werden täglich zurückgesetzt.