LaravelPackages.net
Acme Inc.
Toggle sidebar
rlb/laravel-menu-manager

Menu Laravel Arrastar/Soltar Como Wordpress

31
1
v1.1.4
About rlb/laravel-menu-manager

rlb/laravel-menu-manager is a Laravel package for menu laravel arrastar/soltar como wordpress. It currently has 1 GitHub stars and 31 downloads on Packagist (latest version v1.1.4). Install it with composer require rlb/laravel-menu-manager. Discover more Laravel packages by rlb or browse all Laravel packages to compare alternatives.

Last updated

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 [email protected] em vez de usar o rastreador de problemas.

Licença

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

Comments