MyMenu
Manage your navigation menu
Manage your navigation menu
MyMenu class contains myMenu method that returns array of menus. By default we have following menus
<?php
namespace App\Services;
use Pratiksh\Adminetic\Services\Helper\SidebarHelper;
use Pratiksh\Adminetic\Contracts\SidebarInterface;
class MyMenu extends SidebarHelper implements SidebarInterface
{
public function myMenu(): array
{
return [
[
'type' => 'breaker',
'name' => 'General',
'description' => 'Administration Control',
],
[
'type' => 'link',
'name' => 'Dashboard',
'icon' => 'fa fa-home',
'link' => route('dashboard'),
'is_active' => request()->routeIs('home') ? 'active' : '',
'conditions' => [
[
'type' => 'and',
'condition' => auth()->user()->hasRole('admin'),
],
],
],
[
'type' => 'menu',
'name' => 'User Management',
'icon' => 'fa fa-users',
'is_active' => request()->routeIs('user*') ? 'active' : '',
'pill' => [
'class' => 'badge badge-info badge-air-info',
'value' => \App\Models\User::count(),
],
'conditions' => [
[
'type' => 'or',
'condition' => auth()->user()->can('view-any', \App\Models\User::class),
],
[
'type' => 'or',
'condition' => auth()->user()->can('create', \App\Models\User::class),
],
],
'children' => $this->indexCreateChildren('user', \App\Models\User::class),
],
[
'type' => 'menu',
'name' => 'Role',
'icon' => 'fa fa-user-tie',
'is_active' => request()->routeIs('role*') ? 'active' : '',
'conditions' => [
[
'type' => 'or',
'condition' => auth()->user()->can('view-any', \Pratiksh\Adminetic\Models\Admin\Role::class),
],
[
'type' => 'or',
'condition' => auth()->user()->can('create', \Pratiksh\Adminetic\Models\Admin\Role::class),
],
],
'children' => $this->indexCreateChildren('role', \Pratiksh\Adminetic\Models\Admin\Role::class),
],
[
'type' => 'menu',
'name' => 'Permission',
'icon' => 'fa fa-check',
'is_active' => request()->routeIs('permission*') ? 'active' : '',
'conditions' => [
[
'type' => 'or',
'condition' => auth()->user()->can('view-any', \Pratiksh\Adminetic\Models\Admin\Permission::class),
],
[
'type' => 'or',
'condition' => auth()->user()->can('create', \Pratiksh\Adminetic\Models\Admin\Permission::class),
],
],
'children' => $this->indexCreateChildren('permission', \Pratiksh\Adminetic\Models\Admin\Permission::class),
],
[
'type' => 'link',
'name' => 'Setting',
'icon' => 'fa fa-cog',
'link' => adminRedirectRoute('setting'),
'is_active' => request()->routeIs('home') ? 'active' : '',
'conditions' => [
[
'type' => 'or',
'condition' => auth()->user()->can('view-any', \Pratiksh\Adminetic\Models\Admin\Setting::class),
],
[
'type' => 'or',
'condition' => auth()->user()->can('create', \Pratiksh\Adminetic\Models\Admin\Setting::class),
],
],
],
[
'type' => 'menu',
'name' => 'Preference',
'icon' => 'fa fa-wrench',
'is_active' => request()->routeIs('preference*') ? 'active' : '',
'conditions' => [
[
'type' => 'or',
'condition' => auth()->user()->can('view-any', \Pratiksh\Adminetic\Models\Admin\Preference::class),
],
[
'type' => 'or',
'condition' => auth()->user()->can('create', \Pratiksh\Adminetic\Models\Admin\Preference::class),
],
],
'children' => $this->indexCreateChildren('preference', \Pratiksh\Adminetic\Models\Admin\Preference::class),
],
[
'type' => 'link',
'name' => 'Activities',
'icon' => 'fa fa-book',
'is_active' => request()->routeIs('activity*') ? 'active' : '',
'link' => adminRedirectRoute('activity'),
'conditions' => [
[
'type' => 'and',
'condition' => auth()->user()->hasRole('admin'),
],
],
],
[
'type' => 'breaker',
'name' => 'DEV TOOLS',
'description' => 'Development Environment',
],
[
'type' => 'menu',
'name' => 'Builder',
'conditions' => [
[
'type' => 'or',
'condition' => env('APP_ENV') == 'local'
],
],
'children' => [
[
'type' => 'submenu',
'name' => 'Form Builder 1',
'link' => 'http://admin.pixelstrap.com/cuba/theme/form-builder-1.html',
],
[
'type' => 'submenu',
'name' => 'Form Builder 2',
'link' => 'http://admin.pixelstrap.com/cuba/theme/form-builder-2.html',
],
[
'type' => 'submenu',
'name' => 'Page Builder',
'link' => 'http://admin.pixelstrap.com/cuba/theme/pagebuild.html',
],
[
'type' => 'submenu',
'name' => 'Buttom Builder',
'link' => 'http://admin.pixelstrap.com/cuba/theme/button-builder.html',
],
]
],
[
'type' => 'menu',
'name' => 'Documentation',
'conditions' => [
[
'type' => 'or',
'condition' => env('APP_ENV') == 'local'
],
],
'children' => [
[
'type' => 'submenu',
'name' => 'Frontend Docs',
'link' => 'https://docs.pixelstrap.com/cuba/all_in_one/document/index.html',
],
[
'type' => 'submenu',
'name' => 'Adminetic Docs',
'link' => 'https://pratikdai404.gitbook.io/adminetic/',
],
]
],
[
'type' => 'link',
'name' => 'Github',
'icon' => 'fa fa-github',
'link' => 'https://github.com/pratiksh404/admineticl',
],
];
}
}
Type: Type/Characteristic of <emu
Name: Header name of menu
Icon: Icon of Menu
is_active: (bool) is menu active condition
link: Redirect Route
conditions: Condition to acces that route
pill: Pill value and style
children: children of menu header
Explanations
Type
There are three types of menu
Type | Characteristics |
breaker | Defines a menu group Consists
|
link | Single Menu Link Consists
|
menu | General Menu Containing Childrens Consists
|
Here is the example of adminetic administration menu
return [
[
'type' => 'breaker',
'name' => 'General',
'description' => 'Administration Control',
],
[
'type' => 'link',
'name' => 'Dashboard',
'icon' => 'fa fa-home',
'link' => route('home'),
'is_active' => request()->routeIs('home') ? 'active' : '',
'conditions' => [
[
'type' => 'and',
'condition' => auth()->user()->hasRole('admin'),
],
],
],
[
'type' => 'menu',
'name' => 'User Management',
'icon' => 'fa fa-users',
'is_active' => request()->routeIs('user*') ? 'active' : '',
'pill' => [
'class' => 'badge badge-info badge-air-info',
'value' => \App\Models\User::count(),
],
'conditions' => [
[
'type' => 'or',
'condition' => auth()->user()->can('view-any', \App\Models\User::class),
],
[
'type' => 'or',
'condition' => auth()->user()->can('create', \App\Models\User::class),
],
],
'children' => $this->indexCreateChildren('user', \App\Models\User::class),
],
[
'type' => 'menu',
'name' => 'Role',
'icon' => 'fa fa-black-tie',
'is_active' => request()->routeIs('role*') ? 'active' : '',
'conditions' => [
[
'type' => 'or',
'condition' => auth()->user()->can('view-any', \Pratiksh\Adminetic\Models\Admin\Role::class),
],
[
'type' => 'or',
'condition' => auth()->user()->can('create', \Pratiksh\Adminetic\Models\Admin\Role::class),
],
],
'children' => $this->indexCreateChildren('role', \Pratiksh\Adminetic\Models\Admin\Role::class),
],
[
'type' => 'menu',
'name' => 'Permission',
'icon' => 'fa fa-check',
'is_active' => request()->routeIs('permission*') ? 'active' : '',
'conditions' => [
[
'type' => 'or',
'condition' => auth()->user()->can('view-any', \Pratiksh\Adminetic\Models\Admin\Permission::class),
],
[
'type' => 'or',
'condition' => auth()->user()->can('create', \Pratiksh\Adminetic\Models\Admin\Permission::class),
],
],
'children' => $this->indexCreateChildren('permission', \Pratiksh\Adminetic\Models\Admin\Permission::class),
],
[
'type' => 'menu',
'name' => 'Setting',
'icon' => 'fa fa-cog',
'is_active' => request()->routeIs('setting*') ? 'active' : '',
'conditions' => [
[
'type' => 'or',
'condition' => auth()->user()->can('view-any', \Pratiksh\Adminetic\Models\Admin\Setting::class),
],
[
'type' => 'or',
'condition' => auth()->user()->can('create', \Pratiksh\Adminetic\Models\Admin\Setting::class),
],
],
'children' => $this->indexCreateChildren('setting', \Pratiksh\Adminetic\Models\Admin\Setting::class),
],
[
'type' => 'menu',
'name' => 'Preference',
'icon' => 'fa fa-wrench',
'is_active' => request()->routeIs('preference*') ? 'active' : '',
'conditions' => [
[
'type' => 'or',
'condition' => auth()->user()->can('view-any', \Pratiksh\Adminetic\Models\Admin\Preference::class),
],
[
'type' => 'or',
'condition' => auth()->user()->can('create', \Pratiksh\Adminetic\Models\Admin\Preference::class),
],
],
'children' => $this->indexCreateChildren('preference', \Pratiksh\Adminetic\Models\Admin\Preference::class),
],
[
'type' => 'link',
'name' => 'Activities',
'icon' => 'fa fa-book',
'is_active' => request()->routeIs('activity*') ? 'active' : '',
'link' => adminRedirectRoute('activity'),
'conditions' => [
[
'type' => 'and',
'condition' => auth()->user()->hasRole('admin'),
],
],
],
];
Last updated