File: D:/HostingSpaces/debout/debout.nl/vendor/komma/kms/src/Composers/SidebarMenuComposer.php
<?php namespace Komma\KMS\Composers;
/**
*
*
* @author Komma <info@komma.pro>
* @copyright (c) 2012-2016, Komma
*/
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Route;
use Komma\KMS\ActionLog\Models\ActionLog;
use Komma\KMS\Menu\Item;
use Komma\KMS\Menu\KmsMenu;
use Komma\KMS\Users\Models\KmsUser;
class SidebarMenuComposer
{
public function __construct()
{
}
public function compose($view)
{
//Set the slug where the menu should respond to
$viewData = $view->getData();
$currentSectionSlug = isset($viewData['slug']) ? $viewData['slug'] : $this->getCurrentSectionSlug();
//Add items to the menu
KmsMenu::addItem((new Item())
->setName(__('KMS::kms/SidebarMenu.welcome'))
->setUrl(route('dashboard.index'))
->setSlug('dashboard'));
KmsMenu::addItem((new Item())
->setName(__('KMS::kms/sidebarMenu.users'))
->setUrl(route('dashboard.index'))
->setSlug('kms_users')
->setSubItems([
(new Item)->setName(__('KMS::kms/sidebarMenu.kms_users'))
->setUrl(route('kms_users.index'))
->setSlug('kms_users')
]));
if (Auth::user() && Auth::user('kms')->can('viewLogs', ActionLog::class)) {
KmsMenu::addItem((new Item())->setName(__('KMS::kms/actionlog.section.title'))
->setUrl(route('actionlog.index'))
->setSlug('actionlog'));
}
if (Auth::user() && Auth::user('kms')->can('editSites', KmsUser::class)) {
KmsMenu::addItem((new Item())->setName(__('KMS::kms/sidebarMenu.sites'))
->setUrl(route('sites.index'))
->setSlug('sites'));
}
//Get the items from the menu. Internally menu items are activated if their slug matches the current one.
$menuStructure = KmsMenu::getItems();
KmsMenu::itemActiveWhen(function(Item $item) use ($currentSectionSlug) {
return $item->getSlug() == $currentSectionSlug;
});
$view->with('menuStructure', $menuStructure);
}
protected function getCurrentSectionSlug()
{
$route = explode('/', Route::current()->uri());
if (Route::current()->parameter('site')) {
return $route[2];
}
return isset($route[1]) ? $route[1] : null;
}
}