diff --git a/app/Http/Kernel.php b/app/Http/Kernel.php index 0d7d8c1..e4a0e03 100644 --- a/app/Http/Kernel.php +++ b/app/Http/Kernel.php @@ -2,7 +2,28 @@ namespace App\Http; +use App\Http\Middleware\Authenticate; +use App\Http\Middleware\CheckForMaintenanceMode; +use App\Http\Middleware\EncryptCookies; +use App\Http\Middleware\GenerateMenus; +use App\Http\Middleware\RedirectIfAuthenticated; +use App\Http\Middleware\TrimStrings; +use App\Http\Middleware\TrustProxies; +use App\Http\Middleware\VerifyCsrfToken; +use Illuminate\Auth\Middleware\AuthenticateWithBasicAuth; +use Illuminate\Auth\Middleware\Authorize; +use Illuminate\Auth\Middleware\EnsureEmailIsVerified; +use Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse; use Illuminate\Foundation\Http\Kernel as HttpKernel; +use Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull; +use Illuminate\Foundation\Http\Middleware\ValidatePostSize; +use Illuminate\Http\Middleware\SetCacheHeaders; +use Illuminate\Routing\Middleware\SubstituteBindings; +use Illuminate\Routing\Middleware\ThrottleRequests; +use Illuminate\Routing\Middleware\ValidateSignature; +use Illuminate\Session\Middleware\AuthenticateSession; +use Illuminate\Session\Middleware\StartSession; +use Illuminate\View\Middleware\ShareErrorsFromSession; class Kernel extends HttpKernel { @@ -14,11 +35,11 @@ class Kernel extends HttpKernel * @var array */ protected $middleware = [ - \App\Http\Middleware\TrustProxies::class, - \App\Http\Middleware\CheckForMaintenanceMode::class, - \Illuminate\Foundation\Http\Middleware\ValidatePostSize::class, - \App\Http\Middleware\TrimStrings::class, - \Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull::class, + TrustProxies::class, + CheckForMaintenanceMode::class, + ValidatePostSize::class, + TrimStrings::class, + ConvertEmptyStringsToNull::class, ]; /** @@ -28,13 +49,14 @@ class Kernel extends HttpKernel */ protected $middlewareGroups = [ 'web' => [ - \App\Http\Middleware\EncryptCookies::class, - \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class, - \Illuminate\Session\Middleware\StartSession::class, + EncryptCookies::class, + AddQueuedCookiesToResponse::class, + StartSession::class, // \Illuminate\Session\Middleware\AuthenticateSession::class, - \Illuminate\View\Middleware\ShareErrorsFromSession::class, - \App\Http\Middleware\VerifyCsrfToken::class, - \Illuminate\Routing\Middleware\SubstituteBindings::class, + ShareErrorsFromSession::class, + VerifyCsrfToken::class, + SubstituteBindings::class, + GenerateMenus::class, ], 'api' => [ @@ -51,15 +73,15 @@ class Kernel extends HttpKernel * @var array */ protected $routeMiddleware = [ - 'auth' => \App\Http\Middleware\Authenticate::class, - 'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class, - 'bindings' => \Illuminate\Routing\Middleware\SubstituteBindings::class, - 'cache.headers' => \Illuminate\Http\Middleware\SetCacheHeaders::class, - 'can' => \Illuminate\Auth\Middleware\Authorize::class, - 'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class, - 'signed' => \Illuminate\Routing\Middleware\ValidateSignature::class, - 'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class, - 'verified' => \Illuminate\Auth\Middleware\EnsureEmailIsVerified::class, + 'auth' => Authenticate::class, + 'auth.basic' => AuthenticateWithBasicAuth::class, + 'bindings' => SubstituteBindings::class, + 'cache.headers' => SetCacheHeaders::class, + 'can' => Authorize::class, + 'guest' => RedirectIfAuthenticated::class, + 'signed' => ValidateSignature::class, + 'throttle' => ThrottleRequests::class, + 'verified' => EnsureEmailIsVerified::class, ]; /** @@ -70,12 +92,12 @@ class Kernel extends HttpKernel * @var array */ protected $middlewarePriority = [ - \Illuminate\Session\Middleware\StartSession::class, - \Illuminate\View\Middleware\ShareErrorsFromSession::class, - \App\Http\Middleware\Authenticate::class, - \Illuminate\Routing\Middleware\ThrottleRequests::class, - \Illuminate\Session\Middleware\AuthenticateSession::class, - \Illuminate\Routing\Middleware\SubstituteBindings::class, - \Illuminate\Auth\Middleware\Authorize::class, + StartSession::class, + ShareErrorsFromSession::class, + Authenticate::class, + ThrottleRequests::class, + AuthenticateSession::class, + SubstituteBindings::class, + Authorize::class, ]; } diff --git a/app/Http/Middleware/GenerateMenus.php b/app/Http/Middleware/GenerateMenus.php new file mode 100644 index 0000000..56178e3 --- /dev/null +++ b/app/Http/Middleware/GenerateMenus.php @@ -0,0 +1,40 @@ +make('menu', function (Builder $menu) { + $accueil = $menu->add('Accueil', ['route' => 'dashboard', 'class' => 'nav-item'])->nickname('home'); + $accueil->link->attr(['class' => 'nav-link']); + $accueil->prepend(' '); + $accueil->checkActivationStatus(); + + $stats = $menu->add('Mes statistiques', ['route' => 'stats', 'class' => 'nav-item'])->nickname('stats'); + $stats->link->attr(['class' => 'nav-link']); + $stats->prepend(' '); + $stats->checkActivationStatus(); + + $gallery = $menu->add('Ma gallerie', ['route' => 'gallery', 'class' => 'nav-item'])->nickname('gallery'); + $gallery->link->attr(['class' => 'nav-link']); + $gallery->prepend(' '); + $gallery->checkActivationStatus(); + }); + + return $next($request); + } +} diff --git a/config/laravel-menu/settings.php b/config/laravel-menu/settings.php new file mode 100644 index 0000000..2eb25b0 --- /dev/null +++ b/config/laravel-menu/settings.php @@ -0,0 +1,13 @@ + [ + 'auto_activate' => true, + 'activate_parents' => true, + 'active_class' => 'active', + 'restful' => false, + 'cascade_data' => true, + 'rest_base' => '', // string|array + 'active_element' => 'link', // item|link + ], +]; diff --git a/config/laravel-menu/views.php b/config/laravel-menu/views.php new file mode 100644 index 0000000..e136d88 --- /dev/null +++ b/config/laravel-menu/views.php @@ -0,0 +1,5 @@ + 'laravel-menu::bootstrap-navbar-items', +]; diff --git a/resources/views/layouts/connected.blade.php b/resources/views/layouts/connected.blade.php index 4c8badf..ade6e4d 100644 --- a/resources/views/layouts/connected.blade.php +++ b/resources/views/layouts/connected.blade.php @@ -101,15 +101,7 @@
diff --git a/resources/views/vendor/laravel-menu/bootstrap-navbar-items.blade.php b/resources/views/vendor/laravel-menu/bootstrap-navbar-items.blade.php new file mode 100644 index 0000000..47909dd --- /dev/null +++ b/resources/views/vendor/laravel-menu/bootstrap-navbar-items.blade.php @@ -0,0 +1,20 @@ +@foreach($items as $item) +
  • hasChildren()) class="nav-item dropdown" @endif @lm_endattrs> + @if($item->link) link) @if($item->hasChildren()) class="nav-link dropdown-toggle" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" @else class="nav-link" @endif @lm_endattrs href="{!! $item->url() !!}"> + {!! $item->title !!} + @if($item->hasChildren()) @endif + + @else + {!! $item->title !!} + @endif + @if($item->hasChildren()) + + @endif +
  • + @if($item->divider) + divider) !!}> + @endif +@endforeach