Loading .idea/sonarlint/issuestore/3/8/38ac5fc300d52f94b369e87fbb1937abe29f831f 0 → 100644 +0 −0 Empty file added. .idea/sonarlint/issuestore/index.pb +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 .idea/sonarlint/securityhotspotstore/3/8/38ac5fc300d52f94b369e87fbb1937abe29f831f 0 → 100644 +0 −0 Empty file added. .idea/sonarlint/securityhotspotstore/index.pb +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 src/Controller/HomeController.php +35 −8 Original line number Diff line number Diff line Loading @@ -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
.idea/sonarlint/issuestore/3/8/38ac5fc300d52f94b369e87fbb1937abe29f831f 0 → 100644 +0 −0 Empty file added.
.idea/sonarlint/issuestore/index.pb +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
.idea/sonarlint/securityhotspotstore/3/8/38ac5fc300d52f94b369e87fbb1937abe29f831f 0 → 100644 +0 −0 Empty file added.
.idea/sonarlint/securityhotspotstore/index.pb +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
src/Controller/HomeController.php +35 −8 Original line number Diff line number Diff line Loading @@ -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)]); } }