src/DcSiteBundle/Controller/Ford/MainController.php line 74

Open in your IDE?
  1. <?php
  2. namespace DcSiteBundle\Controller\Ford;
  3. use DcSiteBundle\Entity\ReplacementCarCondition;
  4. use DcSiteBundle\Entity\SalesContract;
  5. use DcSiteBundle\Entity\TermsMaintenance;
  6. use Symfony\Component\HttpFoundation\RedirectResponse;
  7. use Symfony\Component\HttpFoundation\JsonResponse;
  8. use Symfony\Component\HttpFoundation\Request;
  9. use Symfony\Component\HttpFoundation\Response;
  10. use Symfony\Component\Routing\Router;
  11. class MainController extends BaseController
  12. {
  13.     public function redirectFord(): RedirectResponse
  14.     {
  15.         return $this->redirectToRoute('ford_homepage',[],301);
  16.     }
  17.     public function index(): Response
  18.     {
  19.         return $this->baseFordRender('@DcSite/Ford/Main/index.html.twig');
  20.     }
  21.     public function loadModels(Request $request): JsonResponse
  22.     {
  23.         $menu $this->getModelMenuItems($request->getLocale(),'small');
  24.         foreach ($menu as &$category) {
  25.             unset($category['url']);
  26.             foreach($category['cars'] as &$car) {
  27.                 $url $this->router->generate('ford_one_car', ['car' => $car['url']], Router::ABSOLUTE_URL);
  28.                 $currentUrl $request->server->get('HTTP_REFERER');
  29.                 $car['url'] = $url == $currentUrl '#' $url;
  30.                 $car['testDriveUrl'] = $this->router->generate('ford_service_consultation', ['carId' => $car['id']]);
  31.             }
  32.         }
  33.         return new JsonResponse($menu);
  34.     }
  35.     public function initMenu(Request $request): JsonResponse
  36.     {
  37.         $menu $this->getModelMenuItems($request->getLocale(),'small');
  38.         foreach ($menu as &$category) {
  39.             unset($category['url']);
  40.             foreach($category['cars'] as &$car) {
  41.                 $url $this->router->generate('ford_one_car', ['car' => $car['url']], Router::ABSOLUTE_URL);
  42.                 $currentUrl $request->server->get('HTTP_REFERER');
  43.                 $car['url'] = $url == $currentUrl '#' $url;
  44.             }
  45.         }
  46.         return new JsonResponse($menu);
  47.     }
  48.     public function pageNotFound(Request $request): Response
  49.     {
  50.         $Response = new Response();
  51.         $Response->setStatusCode(Response::HTTP_NOT_FOUND);
  52.         return $this->baseFordRender('@DcSite/Ford/404.html.twig', ['_locale' => $request->getLocale()],$Response);
  53.     }
  54.     public function conditionOfSales(): Response
  55.     {
  56.         $filesByType $this->em->getRepository(SalesContract::class)->getFilesByTypes($this->getDealer());
  57.         return $this->baseFordRender('@DcSite/Ford/condition-of-sales.html.twig', [
  58.             'filesByType' => $filesByType,
  59.         ]);
  60.     }
  61.     public function termsMaintenance(): Response
  62.     {
  63.         $files $this->em->getRepository(TermsMaintenance::class)->findBy(['dealer' => $this->getDealer()], ['begin_date' => 'ASC']);
  64.         return $this->baseFordRender('@DcSite/Ford/terms-maintenance.html.twig', [
  65.             'mainFile' => array_pop($files),
  66.             'files' => $files,
  67.             'dealer' => $this->getDealer(),
  68.         ]);
  69.     }
  70.     public function termsReplacement(): Response
  71.     {
  72.         $files $this->em->getRepository(ReplacementCarCondition::class)->findBy(['dealer' => $this->getDealer()], ['begin_date' => 'DESC']);
  73.         return $this->baseFordRender('@DcSite/Ford/Terms/terms-providing-replacement-car.html.twig', [
  74.             'files' => $files,
  75.         ]);
  76.     }
  77. }