HEX
Server: Microsoft-IIS/8.5
System: Windows NT YDAWBH120 6.3 build 9600 (Windows Server 2012 R2 Standard Edition) AMD64
User: tentjecom_web (0)
PHP: 7.4.14
Disabled: NONE
Upload Files
File: D:/HostingSpaces/SBogers10/kooken.komma.pro/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;
    }
}