Skip to content

marcelosenabr/laravel-menu-manager

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

License GitHub Language Count GitHub Repo Size GitHub Release Packagist Downloads

Gerenciar Menu Laravel Arrastar/Soltar Como Wordpress

Bifurcado (forked) de https://github.com/lordmacu/wmenu Configurado e Modificado para atender nossas necessidades, caso goste fique a vontade para usar Laravel drag and drop menu

Instalação

Execute o seguinte comando:

composer require i9w3b/laravel-menu-manager

Publicar configurações e ativos:

php artisan vendor:publish --provider="Harimayco\Menu\MenuServiceProvider"

Opcional:

  • CUSTOM MIDDLEWARE: Adicionar middlewares
  • TABLE PREFIX: Por padrão, o pacote criará 2 novas tabelas denominadas “menus” e “menu_items”
  • TABLE NAMES Nome específico de tabela
  • Custom routes Editar o caminho da rota, pode editar o campo
  • Role Access Ativar funções (permissões) nos itens de menu
  • Outras configurações...

Execute o comando:

php artisan migrate

Pronto

Publicar a rota para gerenciar os menus, para melhor gestão dos nossos projetos deixamos as rotas desabilitadas, para começar a usar tem que ativar as configurações routes_view e routes_post alterando os valores para true:

// arquivo config/menu.php
/*
|--------------------------------------------------------------------------
| Publicar rota para gerenciar (get e post) menus | true ou false
|--------------------------------------------------------------------------
*/
'routes_view' => false,
'routes_post' => false,

Exemplo de uso

No arquivo blade

@extends('app')

@section('contents')
    {!! Menu::render() !!}
@endsection

@push('scripts')
    {!! Menu::scripts() !!}
@endpush

Usando as classes

use Harimayco\Menu\Models\Menus;
use Harimayco\Menu\Models\MenuItems;

Exemplo de uso do menu (a)

Um menu básico de dois níveis pode ser exibido no seu modelo blade

// Obter o menu por ID
$menu = Menus::find(1);

// Ou por nome
$menu = Menus::where('name','Test Menu')->first();

// Ou obtenha o menu pelo nome e os itens (RECOMENDADO para melhor desempenho e menos chamadas de consulta)
$menu = Menus::where('name','Test Menu')->with('items')->first();

// Ou acesse
$menu = Menus::where('id', 1)->with('items')->first();

// Acessar o resultado
$public_menu = $menu->items;

// Ou converta em array
$public_menu = $menu->items->toArray();

Exemplo de uso do menu (b)

Agora, dentro do seu arquivo de modelo blade, coloque o menu usando este exemplo

<div class="nav-wrap">
    <div class="btn-menu">
        <span></span>
    </div>
    <nav id="mainnav" class="mainnav">
        @if($public_menu)
        <ul class="menu">
            @foreach($public_menu as $menu)
            <li class="">
                <a href="{{ $menu['link'] }}" title="">{{ $menu['label'] }}</a>
                @if( $menu['child'] )
                <ul class="sub-menu">
                    @foreach( $menu['child'] as $child )
                        <li class=""><a href="{{ $child['link'] }}" title="">{{ $child['label'] }}</a></li>
                    @endforeach
                </ul>
                @endif
            </li>
            @endforeach
        @endif
        </ul>
    </nav>
 </div>

Obter itens de menu por ID

use Harimayco\Menu\Facades\Menu;

$menuList = Menu::get(1);

Obter itens de menu por nome Neste exemplo, você deve ter um menu chamado Admin

use Harimayco\Menu\Facades\Menu;

$menuList = Menu::getByName('Admin');

Costomização

Você pode editar a interface do menu em resources/views/vendor/wmenu/menu-html.blade.php

Para a customização acima use:

php artisan vendor:publish --provider="Harimayco\Menu\MenuServiceProvider"

Segurança

Caso descubra algum problema relacionado à segurança, envie um e-mail para marcelosenaonline@gmail.com em vez de usar o rastreador de problemas.

Licença

MIT © i9W3b | Consulte LICENSE.md para obter mais informações.