1. Go to this page and download the library: Download rinvex/laravel-menus library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
rinvex / laravel-menus example snippets
use Rinvex\Menus\Models\MenuItem;
use Rinvex\Menus\Models\MenuGenerator;
Menu::register('frontend.sidebar', function(MenuGenerator $menu) {
// Add menu header
$menu->header('Header Title');
// Add url menu item
$menu->url('url/path', 'Menu Title #1');
// Add route menu item
$menu->route(['route.name'], 'Menu Title #2');
// Add menu divider
$menu->divider();
// Add menu dropdown (it can have childs too)
$menu->dropdown(function(MenuItem $dropdown) {
$dropdown->header('Child Header Title');
$dropdown->url('url/path', 'Child Menu Title #1');
$dropdown->route(['route.name'], 'Child Menu Title #2');
$dropdown->divider();
}, 'Dropdown Title', 50, 'fa fa-arrows', ['data-attribute' => 'something']);
});
Menu::register('frontend.sidebar', function(MenuGenerator $menu) {
// Add url menu item above the dropdown we created before
$menu->url('different/path', 'Menu Title #3', 40);
});
$sidebar = Menu::instance('frontend.sidebar');
$sidebar->url('new/url', 'Menu Title #4', 40);
$sidebar->route('some.new.route', 'Menu Title #5', 60);
$sidebar->url('one/more/url', 'One more new item')->hideWhen(function () {
return true; // Any expression
});
// Only display if logged condition is true
$sidebar->url('one/more/url', 'One more new item')->if(true);
// Only display if logged in user (authenticated)
$sidebar->url('one/more/url', 'One more new item')->ifUser();
// Only display if guest not yet authenticated
$sidebar->url('one/more/url', 'One more new item')->ifGuest();
// Only display if logged in user has
// Only display if logged in user has re new item')->ifUser()->ifCan('do-some-ability')->hideWhen(function () {
return true; // Any expression
});
$menu->route(['route.name.example'], 'Menu Title #2')->activateOnRoute('route.name');
$menu->route(['route.name.example'], 'Menu Title #2')->activateWhen(function () {
return true; // Any expression
});
Menu::register('frontend.sidebar', function(MenuGenerator $menu) {
$menu->findBy('title', 'Dropdown Title', function (MenuItem $dropdown) { // Seach items by title
$dropdown->route(['the.newest.route'], 'Yet another menu item', 15, 'fa fa-building-o');
});
});
Menu::register('frontend.sidebar', function(MenuGenerator $menu) {
$menu->findBy('title', 'Yet another menu item', function (MenuItem $item) {
$item->fill(['icon' => 'fa fa-business]);
});
});
Menu::render('frontend.sidebar');
// Define new menu item with title placeholder
$sidebar = Menu::instance('frontend.sidebar');
$sidebar->url('very/new/url', 'Welcome {user}');
// Render menu and bind data on runtime
Menu::render('frontend.sidebar', null, ['user' => 'Omran']);
// Change menu presenter on definition
$sidebar = Menu::instance('frontend.sidebar');
$sidebar->setView('view-name'); // Set view-based presenter
$sidebar->setPresenter('presenter-name'); // Set class-based presenter
// Change menu presenter on rendering
Menu::render('frontend.sidebar', 'view-name'); // Set view-based presenter
Menu::render('frontend.sidebar', 'presenter-name'); // Set class-based presenter