src/DcSiteBundle/Controller/Toyota/AboutController.php line 155

Open in your IDE?
  1. <?php
  2. namespace DcSiteBundle\Controller\Toyota;
  3. use CoreBundle\Component\CoreFormFactory;
  4. use CoreBundle\Component\FormManager;
  5. use CoreBundle\Entity\Forms;
  6. use CoreBundle\Factory\Vehicle as VehicleFactory;
  7. use CoreBundle\Model\Api\OnlineService\ApiServer1C;
  8. use CoreBundle\Model\Post;
  9. use CoreBundle\Model\Vehicles\Repository;
  10. use CoreBundle\Model\ViDiWorkerModel;
  11. use CoreBundle\Services\MediaExtensionVidi;
  12. use DateTime;
  13. use DcSiteBundle\Entity\Vacancy;
  14. use DcSiteBundle\Services\NewsService;
  15. use Doctrine\ORM\EntityManagerInterface;
  16. use PortalBundle\Model\SeoMetaTag;
  17. use Symfony\Component\Filesystem\Filesystem;
  18. use Symfony\Component\HttpFoundation\JsonResponse;
  19. use Symfony\Component\HttpFoundation\Request;
  20. use Symfony\Component\HttpFoundation\RequestStack;
  21. use Symfony\Component\HttpFoundation\Response;
  22. use Symfony\Component\HttpFoundation\Session\SessionInterface;
  23. use Symfony\Component\Routing\RouterInterface;
  24. use Twig\Environment;
  25. class AboutController extends BaseController
  26. {
  27.     public function __construct(CoreFormFactory $coreFormFactorySeoMetaTag $seoMetaTagRequestStack $requestStackRouterInterface $routerFormManager $formManagerEntityManagerInterface $emApiServer1C $apiServer1CSessionInterface $sessionFilesystem $filesystemMediaExtensionVidi $mediaExtensionVidiRepository $vehicleRepositoryVehicleFactory $vehicleFactoryEnvironment $twig)
  28.     {
  29.         parent::__construct($coreFormFactory$seoMetaTag$requestStack$router$formManager$em$apiServer1C$session$filesystem$mediaExtensionVidi$vehicleRepository$vehicleFactory$twig);
  30.     }
  31.     public function dealerCenter(Request $requestViDiWorkerModel $viDiWorkerModel): ?Response
  32.     {
  33.         $workers $viDiWorkerModel->getAllByDealer($this->getDealer(), $request->getLocale());
  34.         return $this->baseToyotaRender('@DcSite/Toyota/About/about-us.html.twig', [
  35.             'workers' => $workers,
  36.             'privacyUrl' => $this->router->generate('toyota_personal_data_agreement'),
  37.         ]);
  38.     }
  39.     public function quality(): ?Response
  40.     {
  41.         return $this->baseToyotaRender('@DcSite/Toyota/About/quality.html.twig');
  42.     }
  43.     public function myToyota(): ?Response
  44.     {
  45.         return $this->baseToyotaRender('@DcSite/Toyota/About/mytoyota.html.twig');
  46.     }
  47.     public function news(Request $requestNewsService $newsService): ?Response
  48.     {
  49.         $rows $newsService
  50.             ->setLocale($request->getLocale())
  51.             ->getNews($this->getDealer());
  52.         return $this->baseToyotaRender('@DcSite/Toyota/About/news.html.twig', [
  53.             'posts' => $rows
  54.         ]);
  55.     }
  56.     public function vacancies(): ?Response
  57.     {
  58.         $vacancies $this->em->getRepository(Vacancy::class)->getByDealer($this->getDealer());
  59.         return $this->baseToyotaRender('@DcSite/Toyota/About/vacancies.html.twig', [
  60.             'vacancies' => $vacancies
  61.         ]);
  62.     }
  63.     public function contacts(): ?Response
  64.     {
  65.         return $this->baseToyotaRender('@DcSite/Toyota/About/contacts.html.twig');
  66.     }
  67.     public function singleNews(Request $requestPost $modelstring $url): ?Response
  68.     {
  69.         $post $model->initByUrl($this->getDealer(), $urlPost::POST_TYPE_NEWS);
  70.         if (empty($post)) {
  71.             throw $this->createNotFoundException();
  72.         }
  73.         return $this->baseToyotaRender('@DcSite/Toyota/Stocks/single-post.html.twig', [
  74.             'isNews' => $model->isNews(),
  75.             'post' => [
  76.                 'seoTitle' => $post->getSeoTitle($request->getLocale()),
  77.                 'seoDescription' => $post->getSeoDescription($request->getLocale()),
  78.                 'title' => $post->getTitle($request->getLocale()),
  79.                 'dateStart' => $post->getDateStart(),
  80.                 'content' => $post->getContent($request->getLocale()),
  81.                 'image' => $this->mediaExtensionVidi->getPath($post->getImage($request->getLocale()), 'reference'),
  82.                 'image_webp' => $this->mediaExtensionVidi->pathWebp($post->getImage($request->getLocale()), 'reference')
  83.             ]
  84.         ]);
  85.     }
  86.     public function singleVacancies($id): ?Response
  87.     {
  88.         $vacancy $this->em->getRepository(Vacancy::class)->getByID($id);
  89.         return $this->baseToyotaRender('@DcSite/Toyota/About/single-vacancies.html.twig', [
  90.             'vacancy' => $vacancy,
  91.             'vacancyForm' => $this->CoreFormFactory()->vacancyForm($this->getDealer(), $vacancy)->createView()
  92.         ]);
  93.     }
  94.     public function staff(Request $requestViDiWorkerModel $viDiWorkerModel): ?Response
  95.     {
  96.         $workers $viDiWorkerModel->getAllByDealer($this->getDealer(), $request->getLocale());
  97.         return $this->baseToyotaRender('@DcSite/Toyota/About/staff.html.twig', [
  98.             'workers' => $workers,
  99.             'callbackForm' => $this->CoreFormFactory()->orderCallForm(null$this->getDealer())->createView(),
  100.         ]);
  101.     }
  102.     public function personalData(): ?Response
  103.     {
  104.         return $this->baseToyotaRender('@DcSite/Toyota/About/personal-data-policy.html.twig', ['dealer' => $this->getDealer()]);
  105.     }
  106.     public function saveFeedbackForm(Request $request): JsonResponse
  107.     {
  108.         $dealer $this->getDealer();
  109.         $feedbackForm = new Forms();
  110.         $feedbackForm->setDateCreate(new DateTime());
  111.         $feedbackForm->setType(FormManager::TYPE_COMMON_FORM);
  112.         $feedbackForm->setName($request->request->get('name'));
  113.         $feedbackForm->setPhone($request->request->get('phone'));
  114.         $feedbackForm->setEmail($request->request->get('email'));
  115.         $feedbackForm->setDomain($request->getHost());
  116.         $params json_encode([
  117.             'comment' => $request->request->get('question'),
  118.         ]);
  119.         $feedbackForm->setData($params);
  120.         $feedbackForm->setDealer($dealer);
  121.         $this->em->persist($feedbackForm);
  122.         $this->em->flush();
  123.         return new JsonResponse(['success' => true]);
  124.     }
  125.     public function publicOffer(): ?Response
  126.     {
  127.         return $this->baseToyotaRender('@DcSite/Toyota/About/public-offer.html.twig', ['dealer' => $this->getDealer()]);
  128.     }
  129.     public function returnRefundPolicies(): ?Response
  130.     {
  131.         return $this->baseToyotaRender('@DcSite/Toyota/About/return-refund-policies.html.twig');
  132.     }
  133. }