src/Controller/MainController.php line 401
<?phpnamespace App\Controller;use App\Entity\Attractions;use App\Entity\AttractionTypes;use App\Entity\AvailableJobs;use App\Entity\Blog;use App\Entity\ChildrensComboSlider;use App\Entity\Countries;use App\Entity\Event;use App\Entity\FAQ;use App\Entity\FoodCourtMenu;use App\Entity\FoodCourtSlider;use App\Entity\GameZone;use App\Entity\GameZoneSlider;use App\Entity\Heroes;use App\Entity\IceCream;use App\Entity\IceCreamVideos;use App\Entity\IceRink;use App\Entity\IceRinkSlider;use App\Entity\JobPositions;use App\Entity\MainSlider;use App\Entity\Page;use App\Entity\Playground;use App\Entity\ProhibitedCases;use App\Entity\Rules;use App\Entity\Shop;use App\Entity\ShopSlider;use App\Entity\SocialResponsibility;use App\Entity\SpecialOffers;use App\Entity\Tickets;use App\Entity\VisionMission;use App\Entity\YourEvents;use App\Enum\TicketsApiUrlsEnum;use App\Repository\AttractionsRepository;use App\Repository\BlogRepository;use App\Repository\ContactRepository;use App\Repository\OrderItemRepository;use App\Repository\ShopRepository;use App\Repository\TicketsRepository;use App\Repository\YourEventsRepository;use App\Service\JobService;use App\Service\MailerController;use App\Service\MailerService;use Doctrine\ORM\EntityManagerInterface;use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;use Symfony\Component\HttpFoundation\JsonResponse;use Symfony\Component\HttpFoundation\Request;use Symfony\Component\HttpFoundation\Response;use Symfony\Component\Routing\Annotation\Route;use Symfony\Contracts\Translation\TranslatorInterface;class MainController extends AbstractController{private EntityManagerInterface $entityManager;private TranslatorInterface $translator;public function __construct(EntityManagerInterface $entityManager,TranslatorInterface $translator){$this->entityManager = $entityManager;$this->translator = $translator;}#[Route('{_locale}', name: 'page_home', requirements: ['_locale' => 'en|ru|hy'], defaults: ['_locale' => 'hy'])]public function index(): Response{$attractions = $this->entityManager->getRepository(Attractions::class)->findBy(['showInSlider' => 1], [], 5);$mainSlider = $this->entityManager->getRepository(MainSlider::class)->findBy(['isActive' => 1],['position' => 'ASC']);$page = $this->entityManager->getRepository(Page::class)->findOneBy(["slug" => 'home']);$tickets = $this->entityManager->getRepository(Tickets::class)->findBy(['showHomePage' => 1,'isActive'=>'1']);return $this->render('@web/page/index.html.twig', ["attractions" => $attractions,"mainSlider" => $mainSlider,"tickets" => $tickets,"page" => $page,]);}// #[Route('{_locale}/checkout', name: 'page_checkout', requirements: ['_locale' => 'en|ru|hy'], defaults: ['_locale' => 'hy'])]// public function Checkout(): Response// {//// return $this->render('@web/page/checkout.html.twig');// }#[Route('{_locale}/profile', name: 'page_profile', requirements: ['_locale' => 'en|ru|hy'], defaults: ['_locale' => 'hy'])]public function userProfile(OrderItemRepository $order_item_repository): Response{$user = $this->getUser();if ($user) {$tickets = $order_item_repository->findByOrder($user);$countries = $this->entityManager->getRepository(Countries::class)->findby([], ['sortOrder' => 'ASC']);$page = $this->entityManager->getRepository(Page::class)->findOneBy(["slug" => 'profile']);return $this->render('@web/page/profile.html.twig', ['user' => $user,'tickets' => $tickets,'countries' => $countries,'page' => $page,]);} else {return $this->render('login/index.html.twig');}}#[Route('/{_locale}/attractions', name: 'page_attractions', requirements: ['_locale' => 'en|ru|hy'], defaults: ['_locale' => 'hy'])]public function attractions(): Response{$page = $this->entityManager->getRepository(Page::class)->findOneBy(["slug" => 'attractions']);$attractions = $this->entityManager->getRepository(Attractions::class)->findAll();$attractionTypes = $this->entityManager->getRepository(AttractionTypes::class)->findAll();return $this->render('@web/page/attractions.html.twig', ["attractions" => $attractions,"attractionTypes" => $attractionTypes,"page" => $page,]);}#[Route('/{_locale}/attractions/{slug}', name: 'page_attractions_view', requirements: ['_locale' => 'en|ru|hy'], defaults: ['_locale' => 'hy'])]public function attractionsView(AttractionsRepository $attractions_repository, $slug): Response{$attraction = $this->entityManager->getRepository(Attractions::class)->findOneBy(["slug" => $slug]);$attractions = $attractions_repository->getWithoutOne($slug);return $this->render('@web/page/attractions-view.html.twig',["attraction" => $attraction,"attractions" => $attractions,]);}#[Route('/{_locale}/rules', name: 'page_rules', requirements: ['_locale' => 'en|ru|hy'], defaults: ['_locale' => 'hy'])]public function rules(): Response{$page = $this->entityManager->getRepository(Page::class)->findOneBy(["slug" => 'rules']);$rules = $this->entityManager->getRepository(Rules::class)->findOneBy(['id' => 1]);return $this->render('@web/page/rules.html.twig', ['rules' => $rules,'page' => $page,]);}#[Route('/{_locale}/your-events', name: 'page_your_events', requirements: ['_locale' => 'en|ru|hy'], defaults: ['_locale' => 'hy'])]public function yourEvents(): Response{$yourEvents = $this->entityManager->getRepository(YourEvents::class)->findAll();$page = $this->entityManager->getRepository(Page::class)->findOneBy(["slug" => 'your-events']);return $this->render('@web/page/your-events.html.twig', ['yourEvents' => $yourEvents,'page' => $page,]);}#[Route('/{_locale}/events/{slug}', name: 'page_events', requirements: ['_locale' => 'en|ru|hy'], defaults: ['_locale' => 'hy'])]public function events($slug): Response{$event = $this->entityManager->getRepository(Event::class)->findOneBy(["slug" => $slug]);return $this->render('@web/page/events.html.twig', ['event' => $event,]);}#[Route('/{_locale}/your-events/{slug}', name: 'page_your_events_view', requirements: ['_locale' => 'en|ru|hy'], defaults: ['_locale' => 'hy'])]public function yourEventsView(YourEventsRepository $your_events_repository, $slug): Response{$event = $this->entityManager->getRepository(YourEvents::class)->findOneBy(["slug" => $slug]);$page = $this->entityManager->getRepository(Page::class)->findOneBy(["slug" => 'your-events']);$tabContent = $your_events_repository->getTabsContent($event);return $this->render('@web/page/your-events-view.html.twig', ['event' => $event,'tabContent' => $tabContent,'page' => $page,]);}#[Route('/{_locale}/about', name: 'page_about', requirements: ['_locale' => 'en|ru|hy'], defaults: ['_locale' => 'hy'])]public function about(): Response{$page = $this->entityManager->getRepository(Page::class)->findOneBy(["slug" => 'about']);$heroes = $this->entityManager->getRepository(Heroes::class)->findAll();return $this->render('@web/page/about.html.twig', ['heroes' => $heroes,'page' => $page,]);}#[Route('/{_locale}/food-court', name: 'page_food', requirements: ['_locale' => 'en|ru|hy'], defaults: ['_locale' => 'hy'])]public function food(): Response{$page = $this->entityManager->getRepository(Page::class)->findOneBy(["slug" => 'food-court']);$foodSlider = $this->entityManager->getRepository(FoodCourtSlider::class)->findby([],['position'=>"ASC"]);$foodCourtMenu = $this->entityManager->getRepository(FoodCourtMenu::class)->findBy(['isActive'=>1]);$iceCreams = $this->entityManager->getRepository(IceCream::class)->findAll();$iceCreamVideos = $this->entityManager->getRepository(IceCreamVideos::class)->findAll();$childrensComboSlider = $this->entityManager->getRepository(ChildrensComboSlider::class)->findby(['isActive'=>1],['position'=>'ASC']);return $this->render('@web/page/food.html.twig', ['foodSlider' => $foodSlider,'foodCourtMenu' => $foodCourtMenu,'page' => $page,'childrensComboSlider' => $childrensComboSlider,'iceCreams' => $iceCreams,'iceCreamVideos' => $iceCreamVideos,]);}#[Route('/{_locale}/shop', name: 'page_shop', requirements: ['_locale' => 'en|ru|hy'], defaults: ['_locale' => 'hy'])]public function shop(): Response{$page = $this->entityManager->getRepository(Page::class)->findOneBy(["slug" => 'shop']);$shopSlider = $this->entityManager->getRepository(ShopSlider::class)->findBy([],['position'=>'ASC']);$shop = $this->entityManager->getRepository(Shop::class)->findBy([],[],8);return $this->render('@web/page/shop.html.twig', ['shopSlider' => $shopSlider,'shop' => $shop,'page' => $page,]);}#[Route('/shop/getProducts', name: 'app_get_products', requirements: ['_locale' => 'en|ru|hy'], defaults: ['_locale' => 'hy'], methods: 'POST')]public function getProducts(ShopRepository $shop_repository): Response{$shop = $shop_repository->findByFrom(8);return new JsonResponse(['success' => true, 'message'=>'', 'shop' => $shop]);}#[Route('/{_locale}/social-responsibility', name: 'page_social_responsibility', requirements: ['_locale' => 'en|ru|hy'], defaults: ['_locale' => 'hy'])]public function socialResponsibility(): Response{$page = $this->entityManager->getRepository(Page::class)->findOneBy(["slug" => 'social-responsibility']);$socialResponsibility = $this->entityManager->getRepository(SocialResponsibility::class)->findAll();return $this->render('@web/page/social-responsibility.twig', ['socialResponsibility' => $socialResponsibility,'page' => $page,]);}#[Route('/{_locale}/vision-mission', name: 'page_vision_mission', requirements: ['_locale' => 'en|ru|hy'], defaults: ['_locale' => 'hy'])]public function visionMission(): Response{$page = $this->entityManager->getRepository(Page::class)->findOneBy(["slug" => 'vision-mission']);$visionMission = $this->entityManager->getRepository(VisionMission::class)->findAll();return $this->render('@web/page/vision-mission.html.twig', ['visionMission' => $visionMission,'page' => $page,]);}#[Route('/{_locale}/faq', name: 'page_faq', requirements: ['_locale' => 'en|ru|hy'], defaults: ['_locale' => 'hy'])]public function faq(): Response{$page = $this->entityManager->getRepository(Page::class)->findOneBy(["slug" => 'faq']);$faq = $this->entityManager->getRepository(FAQ::class)->findAll();return $this->render('@web/page/faq.twig', ['faq' => $faq,'page' => $page,]);}#[Route('/{_locale}/contact', name: 'page_contact', requirements: ['_locale' => 'en|ru|hy'], defaults: ['_locale' => 'hy'])]public function contact(ContactRepository $contact_repository): Response{$page = $this->entityManager->getRepository(Page::class)->findOneBy(["slug" => 'contact']);$contact = $contact_repository->getContacts($this->entityManager);return $this->render('@web/page/contact.html.twig', ['contact' => $contact,'page' => $page,]);}#[Route('/{_locale}/blog', name: 'page_blog', requirements: ['_locale' => 'en|ru|hy'], defaults: ['_locale' => 'hy'])]public function blog(): Response{$page = $this->entityManager->getRepository(Page::class)->findOneBy(["slug" => 'blog']);$blogs = $this->entityManager->getRepository(Blog::class)->findAll();return $this->render('@web/page/blog.html.twig', ['blogs' => $blogs,'page' => $page,]);}#[Route('/{_locale}/blog/{slug}', name: 'page_blog_view', requirements: ['_locale' => 'en|ru|hy'], defaults: ['_locale' => 'hy'])]public function blogView(BlogRepository $blog_repository, $slug): Response{$blog = $this->entityManager->getRepository(Blog::class)->findOneBy(["slug" => $slug]);$blogs = $blog_repository->getWithoutOne($slug);return $this->render('@web/page/blog-view.html.twig', ['blog' => $blog,'blogs' => $blogs,]);}#[Route('/{_locale}/job', name: 'page_job', requirements: ['_locale' => 'en|ru|hy'], defaults: ['_locale' => 'hy'])]public function job(): Response{$job = $this->entityManager->getRepository(JobPositions::class)->findOneBy([], ['id' => 'ASC']);$jobs = $this->entityManager->getRepository(AvailableJobs::class)->findAll();$page = $this->entityManager->getRepository(Page::class)->findOneBy(["slug" => 'job']);return $this->render('@web/page/job.html.twig', ['job' => $job,'jobs' => $jobs,'page' => $page,]);}#[Route('/{_locale}/job-application', name: 'page_job_application', requirements: ['_locale' => 'en|ru|hy'], defaults: ['_locale' => 'hy'],methods: 'POST')]public function jobApplication(Request $request, JobService $job_service,MailerService $mailer_service ){$documentFile = $request->files->get('cv');$data = $request->request->all();$jobApplication = $job_service->saveJobApplication($documentFile,$data);// if ($jobApplication['success']){// $from = 'asd';// $to = 'info@yerevanpark.am';// $subject = 'Աշխատանքի դիմում/հայտ';// $html = 'email/jop-application.html.twig';// $text= 'test';// $mailer_service->sendEmail($from,$to,$subject,$text,$html,$jobApplication);// }$this->addFlash($jobApplication['success'] ? 'success' : 'error', $this->translator->trans($jobApplication['message']));return $this->redirectToRoute('page_apply_now');}#[Route('/{_locale}/job-view/{slug}', name: 'page_job_view', requirements: ['_locale' => 'en|ru|hy'], defaults: ['_locale' => 'hy'])]public function jobView($slug): Response{$job = $this->entityManager->getRepository(AvailableJobs::class)->findOneBy(["slug" => $slug]);$page = $this->entityManager->getRepository(Page::class)->findOneBy(["slug" => 'job']);return $this->render('@web/page/job-view.html.twig', ['job' => $job,'page' => $page,]);}#[Route('/{_locale}/apply-now', name: 'page_apply_now', requirements: ['_locale' => 'en|ru|hy'], defaults: ['_locale' => 'hy'])]public function applyNow(): Response{return $this->render('@web/page/apply-now.html.twig');}#[Route('/{_locale}/special-offers/{slug}', name: 'page_special_offers', requirements: ['_locale' => 'en|ru|hy'], defaults: ['_locale' => 'hy'])]public function specialOffers($slug): Response{$specialOffers = $this->entityManager->getRepository(SpecialOffers::class)->findOneBy(["slug" => $slug]);return $this->render('@web/page/special-offers.html.twig', ['specialOffers' => $specialOffers,]);}#[Route('{_locale}/tickets', name: 'page_tickets', requirements: ['_locale' => 'en|ru|hy'], defaults: ['_locale' => 'hy'])]public function Tickets(): Response{$tickets = $this->entityManager->getRepository(Tickets::class)->findBy(['isActive'=>'1']);$page = $this->entityManager->getRepository(Page::class)->findOneBy(["slug" => 'tickets']);$user = $this->getUser();$countries = $this->entityManager->getRepository(Countries::class)->findby([], ['sortOrder' => 'ASC']);return $this->render('@web/page/tickets.html.twig', ['tickets' => $tickets,'page' => $page,'user' => $user,'countries' => $countries,]);}#[Route('{_locale}/ticket/{id}', name: 'page_ticket', requirements: ['_locale' => 'en|ru|hy'], defaults: ['_locale' => 'hy'])]public function Ticket($id, TicketsRepository $tickets_repository): Response{$ticket = $this->entityManager->getRepository(Tickets::class)->find($id);$tickets = $tickets_repository->getWithoutOne($id);$user = $this->getUser();$countries = $this->entityManager->getRepository(Countries::class)->findby([], ['sortOrder' => 'ASC']);$page = $this->entityManager->getRepository(Page::class)->findOneBy(["slug" => 'tickets']);$weekday = (int)date('w');if ($weekday === 0 or $weekday === 6){$this->addFlash('error', $this->translator->trans("evening_ticket_error"));}return $this->render('@web/page/ticket.html.twig', ['ticket' => $ticket,'tickets' => $tickets,'user' => $user,'countries' => $countries,'page' => $page,'isCharity' => $ticket->getTicketTypeId() === TicketsApiUrlsEnum::CHARITY_TICKET_ID,]);}#[Route('{_locale}/playground', name: 'page_playground', requirements: ['_locale' => 'en|ru|hy'], defaults: ['_locale' => 'hy'])]public function Playground(): Response{$playground = $this->entityManager->getRepository(Playground::class)->find(1);$page = $this->entityManager->getRepository(Page::class)->findOneBy(["slug" => 'tickets']);$prohibitedCases = $this->entityManager->getRepository(ProhibitedCases::class)->findAll();return $this->render('@web/page/playground.html.twig', ['playground' => $playground,'page' => $page,'prohibitedCases' => $prohibitedCases,]);}#[Route('{_locale}/game-zone', name: 'page_game_zone', requirements: ['_locale' => 'en|ru|hy'], defaults: ['_locale' => 'hy'])]public function GameZone(): Response{$gameZone = $this->entityManager->getRepository(GameZone::class)->find(1);$gameZoneSlider = $this->entityManager->getRepository(GameZoneSlider::class)->findBY(['isActive'=>1],['position'=>'ASC']);$page = $this->entityManager->getRepository(Page::class)->findOneBy(["slug" => 'game-zone']);return $this->render('@web/page/game-zone.html.twig', ['gameZone' => $gameZone,'gameZoneSlider' => $gameZoneSlider,'page' => $page,]);}#[Route('{_locale}/ice-rink', name: 'page_ice_rink', requirements: ['_locale' => 'en|ru|hy'], defaults: ['_locale' => 'hy'])]public function IceRink(): Response{$iceRink = $this->entityManager->getRepository(IceRink::class)->find(1);$iceRinkSlider = $this->entityManager->getRepository(IceRinkSlider::class)->findAll();$page = $this->entityManager->getRepository(Page::class)->findOneBy(["slug" => 'ice-rink']);return $this->render('@web/page/ice-rink.html.twig', ['iceRink' => $iceRink,'iceRinkSlider' => $iceRinkSlider,'page' => $page,]);}#[Route('/get-tickets', name: 'get_all_tickets', requirements: ['_locale' => 'en|ru|hy'], defaults: ['_locale' => 'hy'],methods: 'POST')]public function getTickets(Request $request,TicketsRepository $tickets_repository){$res = $tickets_repository->getAllTicketsFromAPI();$this->addFlash($res['success'] ? 'sonata_flash_success' : 'sonata_flash_error', $res['message']);return $this->redirect($request->headers->get('referer') ?? $this->generateUrl('fallback_route'));}#[Route('/{_locale}/privacy-policy', name: 'page_privacy_policy', requirements: ['_locale' => 'en|ru|hy'], defaults: ['_locale' => 'hy'])]public function privacyPolicy(): Response{$page = $this->entityManager->getRepository(Page::class)->findOneBy(["slug" => 'privacy-policy']);return $this->render('@web/page/privacy-policy.html.twig', ['page' => $page,]);}#[Route('/{_locale}/therms', name: 'page_therms', requirements: ['_locale' => 'en|ru|hy'], defaults: ['_locale' => 'hy'])]public function therms(): Response{$page = $this->entityManager->getRepository(Page::class)->findOneBy(["slug" => 'therms']);return $this->render('@web/page/therms.html.twig', ['page' => $page,]);}}