first upload all files
This commit is contained in:
91
Modules/Admin/Sidebar/AdminSidebar.php
Normal file
91
Modules/Admin/Sidebar/AdminSidebar.php
Normal file
@@ -0,0 +1,91 @@
|
||||
<?php
|
||||
|
||||
namespace Modules\Admin\Sidebar;
|
||||
|
||||
use Maatwebsite\Sidebar\Menu;
|
||||
use Maatwebsite\Sidebar\Sidebar;
|
||||
use Nwidart\Modules\Facades\Module;
|
||||
use Nwidart\Modules\Contracts\RepositoryInterface as Modules;
|
||||
|
||||
class AdminSidebar implements Sidebar
|
||||
{
|
||||
/**
|
||||
* The menu instance.
|
||||
*
|
||||
* @var \Maatwebsite\Sidebar\Menu
|
||||
*/
|
||||
protected $menu;
|
||||
|
||||
/**
|
||||
* Create a new sidebar instance.
|
||||
*
|
||||
* @param \Maatwebsite\Sidebar\Menu $menu
|
||||
* @return void
|
||||
*/
|
||||
public function __construct(Menu $menu)
|
||||
{
|
||||
$this->menu = $menu;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the built menu.
|
||||
*
|
||||
* @return \Maatwebsite\Sidebar\Menu
|
||||
*/
|
||||
public function getMenu()
|
||||
{
|
||||
$this->build();
|
||||
|
||||
return $this->menu;
|
||||
}
|
||||
|
||||
/**
|
||||
* Build the sidebar menu.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function build()
|
||||
{
|
||||
$this->addActiveThemeExtender();
|
||||
$this->addModuleExtenders();
|
||||
}
|
||||
|
||||
/**
|
||||
* Add active theme's sidebar extender.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
private function addActiveThemeExtender()
|
||||
{
|
||||
$theme = setting('active_theme');
|
||||
|
||||
$this->add("Themes\\{$theme}\\Sidebar\\SidebarExtender");
|
||||
}
|
||||
|
||||
/**
|
||||
* Add all enabled modules sidebar extender.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
private function addModuleExtenders()
|
||||
{
|
||||
foreach (Module::allEnabled() as $module) {
|
||||
$this->add("Modules\\{$module->getName()}\\Sidebar\\SidebarExtender");
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Add sidebar extender to the menu.
|
||||
*
|
||||
* @param string $extender
|
||||
* @return void
|
||||
*/
|
||||
private function add($extender)
|
||||
{
|
||||
if (class_exists($extender)) {
|
||||
resolve($extender)->extend($this->menu);
|
||||
}
|
||||
|
||||
$this->menu->add($this->menu);
|
||||
}
|
||||
}
|
||||
15
Modules/Admin/Sidebar/BaseSidebarExtender.php
Normal file
15
Modules/Admin/Sidebar/BaseSidebarExtender.php
Normal file
@@ -0,0 +1,15 @@
|
||||
<?php
|
||||
|
||||
namespace Modules\Admin\Sidebar;
|
||||
|
||||
use Modules\User\Contracts\Authentication;
|
||||
|
||||
class BaseSidebarExtender
|
||||
{
|
||||
protected $auth;
|
||||
|
||||
public function __construct(Authentication $auth)
|
||||
{
|
||||
$this->auth = $auth;
|
||||
}
|
||||
}
|
||||
46
Modules/Admin/Sidebar/SidebarExtender.php
Normal file
46
Modules/Admin/Sidebar/SidebarExtender.php
Normal file
@@ -0,0 +1,46 @@
|
||||
<?php
|
||||
|
||||
namespace Modules\Admin\Sidebar;
|
||||
|
||||
use Maatwebsite\Sidebar\Item;
|
||||
use Maatwebsite\Sidebar\Menu;
|
||||
use Maatwebsite\Sidebar\Group;
|
||||
|
||||
class SidebarExtender extends BaseSidebarExtender
|
||||
{
|
||||
public function extend(Menu $menu)
|
||||
{
|
||||
$menu->group(trans('admin::sidebar.content'), function (Group $group) {
|
||||
$group->weight(5);
|
||||
$group->hideHeading();
|
||||
|
||||
$group->item(trans('admin::dashboard.dashboard'), function (Item $item) {
|
||||
$item->icon('fa fa-dashboard');
|
||||
$item->route('admin.dashboard.index');
|
||||
$item->isActiveWhen(route('admin.dashboard.index', null, false));
|
||||
});
|
||||
});
|
||||
|
||||
$menu->group(trans('admin::sidebar.system'), function (Group $group) {
|
||||
$group->weight(10);
|
||||
|
||||
$group->item(trans('admin::sidebar.appearance'), function (Item $item) {
|
||||
$item->icon('fa fa-paint-brush');
|
||||
$item->weight(15);
|
||||
$item->route('admin.sliders.index');
|
||||
$item->authorize(
|
||||
$this->auth->hasAnyAccess(['admin.sliders.index', 'admin.storefront.edit'])
|
||||
);
|
||||
});
|
||||
|
||||
$group->item(trans('admin::sidebar.tools'), function (Item $item) {
|
||||
$item->icon('fa fa-wrench');
|
||||
$item->weight(20);
|
||||
$item->route('admin.importer.index');
|
||||
$item->authorize(
|
||||
$this->auth->hasAnyAccess(['admin.importer.index'])
|
||||
);
|
||||
});
|
||||
});
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user