Commit f47c6e5c authored by Адлан Шамавов's avatar Адлан Шамавов
Browse files

add prepareMenu

parent c83d1ae6
Loading
Loading
Loading
Loading
+0 −0

Empty file added.

+3 −1
Original line number Diff line number Diff line

Q
!src/Controller/HomeController.php,a\d\ad8b439416d1e02614f47c5b471c7c4e587dca82
H
templates/home.html.twig,3\8\38ac5fc300d52f94b369e87fbb1937abe29f831f
 No newline at end of file
+0 −0

Empty file added.

+3 −1
Original line number Diff line number Diff line

Q
!src/Controller/HomeController.php,a\d\ad8b439416d1e02614f47c5b471c7c4e587dca82
H
templates/home.html.twig,3\8\38ac5fc300d52f94b369e87fbb1937abe29f831f
 No newline at end of file
+35 −8
Original line number Diff line number Diff line
@@ -8,19 +8,46 @@ use Symfony\Component\Routing\Attribute\Route;

class HomeController extends AbstractController
{
    private function uniqElements(array $array): array {
        return array_unique($array, SORT_REGULAR);
    private function prepareMenu(array $aMenu): array {
        $result = [];
        foreach ($aMenu as $arr) {
            if ($arr['depth'] === 0) {
                $result[] = array(
                    'name' => $arr['name'],
                    'depth' => $arr['depth'],
                    'submenu' => []
                );
                continue;
            }
            $result[array_key_last($result)]['submenu'][] = array(
                'name' => $arr['name'],
                'depth' => $arr['depth'],
            );
        }
        return $result;
    }


    #[Route('/', name: 'home')]
    public function home(): Response
    {
        $arr = [
            ['laravel', 'php'],
            ['codeigniter', 'php'],
            ['laravel', 'php'],
            ['c++', 'java'],
        $aMenu = [
            ['name' => 'Смартфоны и гаджеты','depth' => 0,],
            ['name' => 'Смартфоны, мобильные телефоны','depth' => 1,],
            ['name' => 'Планшеты','depth' => 1,],
            ['name' => 'Наушники и гарнитуры','depth' => 1,],
            ['name' => 'Компьютеры и ноутбуки','depth' => 0,],
            ['name' => 'Ноутбуки и аксессуары','depth' => 1,],
            ['name' => 'Компьютеры и мониторы','depth' => 1,],
            ['name' => 'Компьютерные комплектующие','depth' => 1,],
            ['name' => 'Техника для дома','depth' => 0,],
            ['name' => 'Техника для уборки','depth' => 1,],
            ['name' => 'Товары для ухода за одеждой','depth' => 1,],
            ['name' => 'Аксессуары для техники','depth' => 1,],
            ['name' => 'Товары для дома и кухни','depth' => 0,],
            ['name' => 'Посуда','depth' => 1,],
        ];
        return $this->json($this->uniqElements($arr));

        return $this->render('home.html.twig', ['menu' => $this->prepareMenu($aMenu)]);
    }
}
Loading