i9w3b/laravel-menu-manager

There is no license information available for the latest version (v1.0.1) of this package.

Menu Laravel Arrastar/Soltar Como Wordpress

Installs: 9

Dependents: 0

Suggesters: 0

Security: 0

Stars: 1

Watchers: 1

Forks: 1

Language:JavaScript

v1.0.1 2020-07-16 05:03 UTC

This package is auto-updated.

Last update: 2024-04-16 13:29:03 UTC


README

68747470733a2f2f63646e2e6a7364656c6976722e6e65742f67682f69397733622f63646e2f696d672f6c6f676f2d32303070782e706e67

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.