aiman/nova-menu-builder

This package is abandoned and no longer maintained. No replacement package was suggested.

Advanced Menu Builder Tool for Laravel Nova.


README

This package forked from Nova Menu Builder This package supports thaana keyboard by JTK

This package uses Spatie Translatable

This tool allows you to create menus in Laravel Nova to a similar fashion to wordpress menu layout and also supports thaana keyboard

menu builder Home

Menu Builder Items

menu builder

menu builder

Installation

You can install the package in to a Laravel app that uses Nova via composer:

composer require aiman/nova-menu-builder

Then you should publish the service provider, migrate database:

php artisan vendor:publish --provider="Aiman\MenuBuilder\ToolServiceProvider"
php artisan migrate

Then run the LangaugesTableSeeder located in seeds folder inside database folder

public function run()
{
    $this->call(LanguagesTableSeeder::class);
}

execute this command to run the seeds

php artisan db:seed

Usage

Next up, you must register the tool with Nova. This is typically done in the tools method of the NovaServiceProvider.

// in app/Providers/NovaServiceProvider.php

// ...

public function tools()
{
    return [
        // ...
        new \Aiman\MenuBuilder\MenuBuilder(),
    ];
}

Helpers

There are two helpers built in for your blades

  • menu_builder('slug').

    Creates an html menu for given slug. Extra options are not required. By default tags are ul and li, and without html classes.

{!! menu_builder('main') !!}

//or

{!! menu_builder('main', 'parent-class', 'child-class',with children(boolean) , with active/deactive(boolean), 'dl', 
'dd') !!}

booleans default is true
  • menu_json('slug').

    Returns a json with all items for given slug.

{!! menu_json('main') !!}
  • menu_type('type').

    Returns a json with all items for given type

    Param
    main_menu
    secondary_menu
    vertical_menu
    currency_menu
    langauge_menu
{!! menu_type('main_menu') !!}

Localization

Set your translations in the corresponding xx.json file located in /resources/lang/vendor/nova

"Menu Builder": "Menu Builder",
"Menu Items": "Menu Items",
"Add item": "Add item",
"Delete item": "Delete item",
"Are you sure to delete this menu item?": "Are you sure to delete this menu item?",
"Take care. All children items will be deleted cause you're deleting the parent.": "Take care. All children items will be deleted cause you're deleting the parent.",
"Cancel": "Cancel",
"Yes, remove!": "Yes, remove!",
"Add Menu item": "Add Menu item",
"Name": "Name",
"Slug": "Slug",
"Menu Helper": "Menu Helper",
"Link type": "Link type",
"Choose an option": "Choose an option",
"Static Url": "Static Url",
"Dynamic Route": "Dynamic Route",
"URL": "URL",
"Route": "Route",
"Parameters": "Parameters",
"Open in": "Open in",
"Same window": "Same window",
"New window": "New window",
"Classes": "Classes",
"Create menu item": "Create menu item",
"Update menu item": "Update menu item",
"Item removed successfully!": "Item removed successfully!",
"Item created!": "Item created!",
"Item updated!": "Item updated!",
"Menu reordered!": "Menu reordered!",
"Error on server!": "Error on server!",
"Enabled": "Enabled",
"Disabled": "Disabled"

Important

This package is tested for Nova v2.0+ Latest tested on nova v3.6.0

Credit

Huge Credit goes for @Jawish Hameed for his thaana translation plugin Thaana Keyboard