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/fire-tech/fire-tech.nl/app/KommaApp/Shop/Bridges/SIdeBarShopMenuComposerBridge.php
<?php
namespace App\KommaApp\Shop\Bridges;


use App\KommaApp\Routes\Models\Route;
use App\KommaApp\Sites\Models\Site;
use App\KommaApp\Users\Roles;

class SideBarShopMenuComposerBridge
{
    /**
     * Returns an array of Shop Specific Menu bar items.
     *
     * @param string $currentSectionSlug
     * @param Site $site
     * @return array
     */
    public static function get(string $currentSectionSlug):array
    {
        $routeName = \Route::current()->getName();


        $items = [];

        $items[] = [
            'name' => ucfirst(__('shop/products.products')),
            'url' => route('products.index'),
            'active' => ('products' == $currentSectionSlug)
        ];

        $items[] = [
            'name' => ucfirst(__('shop/products.product_groups')),
            'url' => route('productgroups.index'),
            'active' => ('productgroups' == $currentSectionSlug)
        ];

        $items[] = [
            'name' => ucfirst(__('shop/products.product_composites')),
            'url' => route('productcomposites.index'),
            'active' => ('productcomposites' == $currentSectionSlug)
        ];

        $items[] = [
            'name' => ucfirst(__('shop/categories.categories')),
            'url' => route('categories.index'),
            'active' => ('categories' == $currentSectionSlug)
        ];


        $items[] = [
            'name' => ucfirst(__('shop/orders.orders')),
            'subItems' => array_merge(
                [
                    [
                        'name' => ucfirst(__('shop/orders.overview')),
                        'url' => route('orders.index'),
                        'active' => $routeName == 'orders.index' || $routeName == 'orders.show'
                    ]
                ],
                self::getOrderStatusMenuItems($routeName)
            ),
            'active' => false
        ];

        //TODO We add this functionality when we've made the sections user friendly. Now it isn't
//        if(\Auth::user()->role_id <= Roles::Admin) {
//            $items[] = [
//                'name' => ucfirst(__('shop/properties.properties')),
//                'url' => route('properties.index'),
//                'active' => ('properties' == $currentSectionSlug)
//            ];
//        }

//        $items[] = [
//            'name' => ucfirst(__('shop/discounts.discounts')),
//            'url' => route('discounts.index', []),
//            'active' => ('discounts' == $currentSectionSlug)
//        ];

        return $items;
    }

    public static function getOrderStatusMenuItems(string $routeName)
    {
        $orderStatusSubItems = [];
        foreach(__('shop/orders.status') as $key => $translation) {
            $orderStatusSubItems[] = [
                'name' => $translation,
                'url' => route('orders.status', ['status' => $key]),
                'active' => ($routeName == 'orders.status' && \Route::current()->parameter('status') == $key)
            ];
        }
        return $orderStatusSubItems;
    }
}