src/PortalBundle/Controller/ContactsController.php line 25

Open in your IDE?
  1. <?php
  2. namespace PortalBundle\Controller;
  3. use CoreBundle\Component\CoreFormFactory;
  4. use CoreBundle\Component\FormManager;
  5. use CoreBundle\Entity\Dealer;
  6. use CoreBundle\Model\Vehicles\Repository;
  7. use CoreBundle\Services\MediaExtensionVidi;
  8. use Doctrine\ORM\EntityManagerInterface;
  9. use PortalBundle\Services\ServiceService;
  10. use Symfony\Component\HttpFoundation\JsonResponse;
  11. use Symfony\Component\HttpFoundation\Request;
  12. use Symfony\Component\HttpFoundation\RequestStack;
  13. use Symfony\Component\HttpFoundation\Response;
  14. use Symfony\Component\Routing\RouterInterface;
  15. class ContactsController extends BaseController
  16. {
  17.     public function __construct(CoreFormFactory $coreFormFactoryRequestStack $requestStackRouterInterface $router,
  18.                                 Repository $vehicleRepositoryServiceService $serviceService)
  19.     {
  20.         parent::__construct($coreFormFactory$requestStack$router$vehicleRepository$serviceService);
  21.     }
  22.     public function contacts(Request $requestEntityManagerInterface $emMediaExtensionVidi $mediaExtensionVidi): Response
  23.     {
  24.         $locale $request->getLocale();
  25.         $dealers $em->getRepository(Dealer::class)->getCarDealerOutputOrder();
  26.         $dealers array_filter($dealers, fn($dealer) => $dealer->getId() !== 39);
  27.         usort($dealers, fn($dealer1$dealer2) => $dealer1->getOutputOrder() === null :
  28.             ($dealer2->getOutputOrder() === null ? -:
  29.                 $dealer1->getOutputOrder() <=> $dealer2->getOutputOrder()
  30.             ));
  31.         foreach ($dealers as $dealer){
  32.             $vueDealers[] = [
  33.                 'id' => $dealer->getId(),
  34.                 'name' => $dealer->getNameByLocale($locale),
  35.                 'brandId' => $dealer->getBrand()->getId(),
  36.                 'brandName' => $dealer->getBrand()->getName(),
  37.                 'domain' => $dealer->getDomain(),
  38.                 'cityId' => ($dealer->getCity()) ? $dealer->getCity()->getId() : null,
  39.                 'cityName' => ($dealer->getCity()) ? $dealer->getCity()->getCityByLocale($locale) : null,
  40.                 'logo' => $mediaExtensionVidi->getPath($dealer->getBrand()->getLogo(), 'reference'),
  41.                 'img' => $mediaExtensionVidi->getPath($dealer->getImageServiceCenter(), 'reference'),
  42.                 'address' => $dealer->getAddressByLocale($locale),
  43.                 'phone' => $dealer->getPhone(),
  44.                 'openTime' => $dealer->getOpenTime(),
  45.                 'closeTime' => $dealer->getCloseTime(),
  46.                 'mapUrl' => 'https://maps.google.com/maps?q=' $dealer->getLat() . ',' $dealer->getLng() . '&hl='.$locale,
  47.                 'detail_url' => $dealer->getSeoUrl()?$this->generateUrl('portal_contacts_single', ['seo_url' => $dealer->getSeoUrl()]):'',
  48.             ];
  49.         }
  50.         return $this->basePortalRender('@Portal/Contacts/contacts.html.twig',[
  51.             'vueDealers' => $vueDealers,
  52.         ]);
  53.     }
  54.     public function supportSave(Request $requestFormManager $formManager): JsonResponse
  55.     {
  56.         return $formManager->saveSupportForm($request);
  57.     }
  58. }