Menú para la parte pública
Instalación
Hay que hacer
php artisan vendor:publish --provider="Harimayco\Menu\MenuServiceProvider"
antes de ejecutar las migraciones.
También hay que hacer vendor publish para publicar los archivos JS.
Uso
Una vez definido el menú en el bPanel, es recomendable crear un componente de blade que llame al método build de \Bittacora\PublicMenu\Services\PublicMenuBuilder. No se deja hecho un componente que genere el menú directamente porque en cada proyecto será distinto. Un ejemplo del blade que se usaría para mostrarlo sería:
@if($publicMenu)
@foreach($publicMenu as $menu)
<li class="first-level">
<a href="{{ $menu['link'] }}" title="" class="@if($menu['child']) has-children @endif">{{ $menu['label'] }}</a>
@if($menu['child'])
<button class="menu-collapse-toggle">
<i class="fas fa-chevron-right"></i>
</button>
@endif
@if( $menu['child'] )
<ul class="submenu">
@foreach( $menu['child'] as $child )
@if(null === $child['role_id'] or 0 == $child['role_id'] or (null !== \Illuminate\Support\Facades\Auth::user() and \Illuminate\Support\Facades\Auth::user()->hasRole(Role::whereId($child['role_id'])->first())))
<li><a href="{{ $child['link'] }}" title="">{{ $child['label'] }}</a></li>
@endif
@endforeach
</ul><!-- /.sub-menu -->
@endif
</li>
@endforeach
@endif
Notas
En el composer.json de este paquete se modifican algunas clases de harimayco/wmenu-builder
para modificar su comportamiento sin tener que rehacer todo el editor de menús, al igual que algunas vistas. Si al actualizarse el vendor de harimayco falla este paquete, forzar la versión en el composer.json:
"harimayco/laravel-menu": "1.4",