src/DcSiteBundle/Controller/Yamaha/MainController.php line 38

Open in your IDE?
  1. <?php
  2. namespace DcSiteBundle\Controller\Yamaha;
  3. use CoreBundle\Component\CoreFormFactory;
  4. use CoreBundle\Component\FormManager;
  5. use CoreBundle\Entity\Post;
  6. use CoreBundle\Factory\Vehicle as VehicleFactory;
  7. use CoreBundle\Model\Api\OnlineService\ApiServer1C;
  8. use CoreBundle\Model\Vehicles\Repository;
  9. use CoreBundle\Services\MediaExtensionVidi;
  10. use DcSiteBundle\Entity\MainSlider;
  11. use DcSiteBundle\Entity\SalesContract;
  12. use DcSiteBundle\Entity\TermsMaintenance;
  13. use Doctrine\ORM\EntityManagerInterface;
  14. use PortalBundle\Model\SeoMetaTag;
  15. use Symfony\Component\Filesystem\Filesystem;
  16. use Symfony\Component\HttpFoundation\JsonResponse;
  17. use Symfony\Component\HttpFoundation\RedirectResponse;
  18. use Symfony\Component\HttpFoundation\Request;
  19. use Symfony\Component\HttpFoundation\RequestStack;
  20. use Symfony\Component\HttpFoundation\Response;
  21. use Symfony\Component\HttpFoundation\Session\SessionInterface;
  22. use Symfony\Component\Routing\RouterInterface;
  23. use Twig\Environment;
  24. use Twig_Error_Loader;
  25. use Twig_Error_Runtime;
  26. use Twig_Error_Syntax;
  27. class MainController extends BaseController
  28. {
  29.     public function __construct(CoreFormFactory $coreFormFactorySeoMetaTag $seoMetaTagRequestStack $requestStackRouterInterface $routerFormManager $formManagerEntityManagerInterface $emApiServer1C $apiServer1CSessionInterface $sessionFilesystem $filesystemMediaExtensionVidi $mediaExtensionVidiRepository $vehicleRepositoryVehicleFactory $vehicleFactoryEnvironment $twig)
  30.     {
  31.         parent::__construct($coreFormFactory$seoMetaTag$requestStack$router$formManager$em$apiServer1C$session$filesystem$mediaExtensionVidi$vehicleRepository$vehicleFactory$twig);
  32.     }
  33.     public function redirectYamaha(): RedirectResponse
  34.     {
  35.         return $this->redirectToRoute('yamaha_homepage', [], 301);
  36.     }
  37.     public function index(): ?Response
  38.     {
  39.         $postRepo $this->em->getRepository(Post::class);
  40.         $dealer $this->getDealer();
  41.         $slides $this->em->getRepository(MainSlider::class)->findBy(['dealer' => $this->getDealer(), 'state' => 1], ['position' => 'ASC']);
  42.         $news $postRepo->getNewsByDealer($dealer3);
  43.         $actions $postRepo->getActionsByDealer($dealernull3);
  44.         return $this->baseYamahaRender('@DcSite/Yamaha/Main/index.html.twig', [
  45.             'slides' => $slides,
  46.             'news' => $news,
  47.             'actions' => $actions,
  48.         ]);
  49.     }
  50.     public function footerMenuInit(Request $request): JsonResponse
  51.     {
  52.         $vehicles $this->vehicleRepository->getNewByDealer($this->getDealer());
  53.         $bodies = [];
  54.         foreach ($vehicles as $vehicle) {
  55.             $crafted $this->vehicleFactory->createByEntity($vehicle);
  56.             if (!$crafted) {
  57.                 continue;
  58.             }
  59.             $bodyId $crafted->getBodyType()->getId();
  60.             $bodyName $crafted->getBodyTypeName($request->getLocale());
  61.             $bodies[$bodyId] = [
  62.                 'id' => $bodyId,
  63.                 'name' => $bodyName,
  64.                 'link' => $this->router->generate('yamaha_catalog_all_groups_by_body', ['bodyId' => $bodyId]),
  65.             ];
  66.         }
  67.         return $this->json(['success' => true'bodies' => $bodies]);
  68.     }
  69.     public function notFound(Request $request): ?Response
  70.     {
  71.         $Response = new Response();
  72.         $Response->setStatusCode(Response::HTTP_NOT_FOUND);
  73.         return $this->baseYamahaRender('@DcSite/Yamaha/404.html.twig', ['_locale' => $request->getLocale()], $Response);
  74.     }
  75.     public function testDrive(): ?Response
  76.     {
  77.         return $this->baseYamahaRender('@DcSite/Yamaha/test-drive.html.twig', [
  78.             'testDrivePageForm' => $this->CoreFormFactory()->testDriveForm($this->getDealer(), null, [
  79.                 'child' => false,
  80.                 'widthTime' => true
  81.             ],
  82.                 true
  83.             )->createView(),
  84.         ]);
  85.     }
  86.     public function conditionOfSales(): ?Response
  87.     {
  88.         $filesByType $this->em->getRepository(SalesContract::class)->getFilesByTypes($this->getDealer());
  89.         return $this->baseYamahaRender('@DcSite/Yamaha/condition-of-sales.html.twig', [
  90.             'filesByType' => $filesByType,
  91.         ]);
  92.     }
  93.     public function termsMaintenance(): ?Response
  94.     {
  95.         $files $this->em->getRepository(TermsMaintenance::class)->findBy(['dealer' => $this->getDealer()], ['begin_date' => 'ASC']);
  96.         return $this->baseYamahaRender('@DcSite/Yamaha/terms-maintenance.html.twig', [
  97.             'mainFile' => array_pop($files),
  98.             'files' => $files,
  99.             'dealer' => $this->getDealer(),
  100.         ]);
  101.     }
  102. }