Skip to content

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",