Skip to content

Gerenciar Menu Laravel Arrastar/Soltar Como Wordpress

License

Notifications You must be signed in to change notification settings

rafaelbaiolim/laravel-menu-manager

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 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.

About

Gerenciar Menu Laravel Arrastar/Soltar Como Wordpress

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • JavaScript 48.3%
  • CSS 27.9%
  • Blade 15.8%
  • PHP 8.0%