Package wmenu-builder chỉnh sửa Menu theo dạng kéo thả giống wordpress

Package wmenu-builder chỉnh sửa Menu theo dạng kéo thả giống wordpress

Wmenu Builder là package tạo và chỉnh sửa menu theo dạng kéo và thả như wordpress cho Laravel.

1. Cài đặt

Để cài đặt package các bạn chạy lệnh sau

composer require harimayco/laravel-menu

Đối với Laravel phiên bản dưới 5.5 các bạn cần thêm Provider và alias và file /config/app.php

// Provider Service
Harimayco\Menu\MenuServiceProvider::class,

// Alias
'Menu' => Harimayco\Menu\Facades\Menu::class,

Để publish file config các bạn chạy lệnh sau:

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

Một số cấu hình trong file config/menu.php

  • CUSTOM MIDDLEWARE: Bạn có thể thêm middleware của riêng bạn
  • TABLE PREFIX: Theo mặc định, gói này sẽ tạo 2 table mới trong database có tên "menu" và "menu_items" nhưng bạn vẫn có thể thêm prefix table của riêng mình để tránh xung đột với bảng hiện có
  • TABLE NAMES: Nếu bạn muốn sử dụng tên tùy chỉnh của table theo ý bạn, bạn phải sửa đổi điều đó ở đây
  • Custom routes: Nếu bạn muốn chỉnh sửa route, bạn có thể chỉnh sửa nó tại đây
  • Role Access: Nếu bạn muốn bật vai trò (quyền) trên các mục menu

2. Tạo database

Sau khi đã cài đặt package các bạn chạy lệnh sau để tạo database

php artisan migrate

3. Ví dụ cách sử dụng

Trong file view blade

@extends('app')

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

//YOU MUST HAVE JQUERY LOADED BEFORE menu scripts
@push('scripts')
    {!! Menu::scripts() !!}
@endpush

Get Menu Items theo ID

use Harimayco\Menu\Facades\Menu;
...
/*
Parameter: Menu ID
Return: Array
*/
$menuList = Menu::get(1);

Get Menu Items theo tên

use Harimayco\Menu\Facades\Menu;
...
/*
Parameter: Menu ID
Return: Array
*/
$menuList = Menu::getByName('Admin');

4. Sử dụng Models

Gọi Model Class

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

5. Sử dụng

Ví dụ sử dụng Menu (a)

Một menu hai cấp cơ bản có thể được hiển thị trong balde view

// Used to get the menu items into the blade template
$public_menu = Menu::getByName('Public');

Ví dụ sử dụng Menu (b)

Bây giờ bên trong balde view của bạn đặt menu bằng ví dụ đơn giản này

<div class="nav-wrap">
    <div class="btn-menu">
        <span></span>
    </div><!-- //mobile menu button -->
    <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><!-- /.sub-menu -->
                @endif
            </li>
            @endforeach
        @endif

        </ul><!-- /.menu -->
    </nav><!-- /#mainnav -->
 </div><!-- /.nav-wrap -->

6. Tùy chỉnh

Bạn có thể chỉnh sửa giao diện menu trong resources/views/vendor/harimayco-menu/menu-html.blade.php

7. Đọc thêm

Bạn có thể tìm hiểu thêm về package tại đây

 

 

Post Comment