novius/laravel-backpack-menu
Laravel Backoffice Menu
Manages the editing and rendering of menus in a Laravel - Backpack application.
Installation
In your terminal:
composer require novius/laravel-backpack-menu
Then, if you are on Laravel 5.4 (no need for Laravel 5.5 and higher), register the service provider to your config/app.php file:
Novius\Backpack\Menu\MenuServiceProvider::class
Finally, run:
php artisan vendor:publish --provider="Novius\Backpack\Menu\MenuServiceProvider" --tag="routes"
php artisan vendor:publish --provider="Novius\Backpack\Menu\MenuServiceProvider" --tag="lang"
php artisan vendor:publish --provider="Novius\Backpack\Menu\MenuServiceProvider" --tag="migrations"
php artisan vendor:publish --provider="Novius\Backpack\Menu\MenuServiceProvider" --tag="views"
php artisan vendor:publish --provider="Novius\Backpack\Menu\MenuServiceProvider" --tag="config"
php artisan migrate
Usage & Features
You can display the menu within your view like this:
// The function takes two parameters:
// 1. Slug => Identifies the menu
// 2. Locale => (Optional) Force a locale version of the menu.
\Novius\Backpack\Menu\Models\Menu::display('header', 'en');
To achieve that, first you need:
Configure the package. Take a look at the comments in:
/config/laravel-backpack-menu.php
Use the trait LinkedItems in the models you listed in the linkableObjects configuration
use Novius\Backpack\Menu\LinkedItems;
// And optionally overrides the base functionality to suit your needs:
public static function linkableItems(string $prefix = ''): array
public static function linkableRoute(string $routeName, string $translation): array
public function linkableUrl(): string
public function linkableTitle(): string
public function linkableId(): string
Add a link in your sidebar.blade.php file to get access from the backpack backoffice
<li>
<a href="{{ route('crud.menu.index') }}">
<i class="fa fa-list"></i>
<span>{{ trans('laravel-backpack-menu::menu.menus') }}</span>
</a>
</li>
Create your menus and items. You can reorder and nest the items. The items are related to the current locale. Switch the back-office language to add items for other locales.
Testing
Run the tests with:
./test.sh
Any modification must pass all the tests. Any modification should be covered by a test.
Lint
Run php-cs with:
./cs.sh
Contributing
Contributions are welcome! Leave an issue on Github, or create a Pull Request.
Licence
This package is under GNU Affero General Public License v3 or (at your option) any later version.
Related Packages
Quickly build admin interfaces using Laravel, Bootstrap and JavaScript.
Users and permissions management interface for Laravel 5 using Backpack CRUD.
Version History
| Version | Released | PHP | Laravel | License |
|---|---|---|---|---|
| 0.5.0 | >=7.3 | ~5.5 | AGPL-3.0-or-later | |
| 0.4.0 | >=7.1 | ~5.5.0| | AGPL-3.0-or-later | |
| 0.3.0 | >=7.1 | ~5.5.0 | AGPL-3.0-or-later | |
| 0.2.1 | >=7.1 | ~5.4.0| | AGPL-3.0-or-later | |
| 0.2.0 | >=7.1 | ~5.4.0| | AGPL-3.0 | |
| 0.1.4 | >=7.1 | ~5.4.0| | AGPL-3.0-or-later | |
| 0.1.3 | >=7.1 | ~5.4.0| | AGPL-3.0 | |
| 0.1.2 | >=7.1 | ~5.4.0| | AGPL-3.0 | |
| 0.1.1 | >=7.1 | ~5.4.0| | AGPL-3.0 | |
| 0.1.0 | >=7.1 | ~5.4.0| | AGPL-3.0 |