HEX
Server: LiteSpeed
System: Linux sv4.hami.host 5.14.0-611.54.3.el9_7.x86_64 #1 SMP PREEMPT_DYNAMIC Thu May 7 16:31:24 EDT 2026 x86_64
User: armgroup (1008)
PHP: 8.2.32
Disabled: show_source, system, shell_exec, passthru, exec, popen, proc_open, mail, socket_create, socket_create_listen, socket_create_pair, link, dl, openlog, syslog, stream_socket_server, curl_multi_init
Upload Files
File: //home/armgroup/libs/app/Providers/ComposerServiceProvider.php
<?php

namespace App\Providers;

use App\Enums\TicketStatus;
use App\Models\Banner;
use App\Models\Category;
use App\Models\Comment;
use App\Models\Contact;
use App\Models\EasyPay;
use App\Models\Menu;
use App\Models\Order;
use App\Models\Product;
use App\Models\Ticket;
use Illuminate\Support\Facades\Cache;
use Illuminate\Support\Facades\View;
use Illuminate\Support\ServiceProvider;

class ComposerServiceProvider extends ServiceProvider
{
    public function boot()
    {
        View::composer('admin.layouts.navbar', function ($view) {
            $params['orders_not_checked'] = Order::where('checked', false)->count();
            $params['contacts_not_checked'] = Contact::where('checked', false)->count();
            $params['easy_pays_not_checked'] = EasyPay::where('checked', false)->count();
            $params['comments_not_checked'] = auth()->user()->can('manage other users content')
                ? Comment::where('checked', false)->count()
                : Comment::whereRelation('commentable', 'user_id', auth()->id())->where('checked', false)->count();
            $params['tickets_not_checked'] = Ticket::with('user')
                ->whereNotIn('status', [TicketStatus::ANSWERED, TicketStatus::ON_HOLD, TicketStatus::CLOSED])
                ->oldest('status')
                ->get();
            $params['notification_count'] = 0;
            if (auth()->user()->can('manage all orders')) {
                $params['notification_count'] += $params['orders_not_checked'];
            }
            if (auth()->user()->can('manage contacts')) {
                $params['notification_count'] += $params['contacts_not_checked'];
            }
            if (auth()->user()->can('manage easy pays')) {
                $params['notification_count'] += $params['easy_pays_not_checked'];
            }
            if (auth()->user()->can('manage comments')) {
                $params['notification_count'] += $params['comments_not_checked'];
            }

            $view->with($params);
        });

        View::composer('layouts.header', function ($view) {
            $params['menus'] = Cache::rememberForever('menus', function () {
                return Menu::getMenus();
            });

            $params['categories'] = Cache::rememberForever('product-categories', function () {
                return Category::query()
                    ->with(['activeChildren', 'activeChildren.activeChildren'])
                    ->where('status', true)
                    ->where('type', Product::class)
                    ->whereNull('parent_id')
                    ->get(['id', 'name', 'slug', 'name', 'icon', 'short_description']);
            });
            $params['logo'] = Banner::getBanner('top-logo');

            $view->with($params);
        });

        View::composer('layouts.footer', function ($view) {
            $banners = Banner::getBanners(['footer-logo', 'footer1', 'footer2', 'footer3', 'social-networks', 'description-footer']);
            [$params['footer_logo'], $params['footer1'], $params['footer2'], $params['footer3'], $params['social_networks'], $params['description_footer']] = [
                $banners->firstWhere('position', 'footer-logo'),
                $banners->firstWhere('position', 'footer1'),
                $banners->firstWhere('position', 'footer2'),
                $banners->firstWhere('position', 'footer3'),
                $banners->firstWhere('position', 'social-networks'),
                $banners->firstWhere('position', 'description-footer'),
            ];

            $view->with($params);
        });
    }
}