MOON
Server: Apache
System: Linux server.royaltuning.hu 4.18.0-425.13.1.el8_7.x86_64 #1 SMP Tue Feb 21 04:20:52 EST 2023 x86_64
User: royaltuning (1001)
PHP: 8.2.32
Disabled: exec,passthru,shell_exec,system
Upload Files
File: //var/www/html/Modules/Admin/Sidebar/AdminSidebar.php
<?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);
    }
}