src/PortalBundle/Controller/BaseController.php line 33

Open in your IDE?
  1. <?php
  2. namespace PortalBundle\Controller;
  3. use CoreBundle\Component\CoreFormFactory;
  4. use CoreBundle\Controller\ViDiController;
  5. use CoreBundle\Model\Vehicles\Repository;
  6. use CoreBundle\Model\Vehicles\VehicleType;
  7. use PortalBundle\Services\ServiceService;
  8. use Symfony\Component\HttpFoundation\RequestStack;
  9. use Symfony\Component\HttpFoundation\Response;
  10. use Symfony\Component\Routing\RouterInterface;
  11. class BaseController extends ViDiController
  12. {
  13.     protected RequestStack $requestStack;
  14.     protected RouterInterface $router;
  15.     protected Repository      $vehicleRepository;
  16.     protected ServiceService      $serviceService;
  17.     public function __construct(CoreFormFactory $coreFormFactoryRequestStack $requestStackRouterInterface $router,
  18.                                 Repository      $vehicleRepositoryServiceService $serviceService)
  19.     {
  20.         parent::__construct($coreFormFactory);
  21.         $this->requestStack $requestStack;
  22.         $this->router $router;
  23.         $this->vehicleRepository $vehicleRepository;
  24.         $this->serviceService $serviceService;
  25.     }
  26.     protected function basePortalRender(string $view, array $parameters = [], Response $response null): Response
  27.     {
  28.         $request $this->requestStack->getCurrentRequest();
  29.         $subdomain explode('.'$request->server->get('HTTP_HOST'))[0];
  30.         $isSubdomainShop $subdomain === "shop";
  31.         $compareCookie $request->cookies->get('compare');
  32.         $countCompare = ($compareCookie) ? count(explode(','$compareCookie)) : '';
  33.         $parameters array_merge($parameters, [
  34.             'backLoginUrl' => $request->getUri(),
  35.             'countCompare' => $countCompare,
  36.             'privacyUrl' => $this->router->generate('portal_privacy_policy'),
  37.             'isSubdomainShop' => $isSubdomainShop
  38.         ]);
  39.         if (isset($parameters['forms'])) {
  40.             $parameters['forms'] = array_merge($parameters['forms'], $this->buildForms());
  41.         } else {
  42.             $parameters array_merge($parameters, ['forms' => $this->buildForms()]);
  43.         }
  44.         $brandsItem $this->vehicleRepository->getAvailBrands(true0VehicleType::DEFAULT_TYPE);
  45.         $parameters['announcementBar'] = $this->serviceService->getAnnouncementBar();
  46.         foreach ($brandsItem as $row) {
  47.             if (!$row['url']) {
  48.                 continue;
  49.             }
  50.             $brands[] = [
  51.                 'name' => $row['name'],
  52.                 'url' => $this->router->generate('portal_new_catalog_b', ['brand' => $row['url'], 'state' => 'new''type' => 'car'])
  53.             ];
  54.         }
  55.         $vehicleType = new VehicleType();
  56.         $parameters array_merge($parameters, ['globalBrands' => $brands'vehicleType' => $vehicleType]);
  57.         if (null === $response) {
  58.             $response = new Response();
  59.         }
  60.         $defaultType VehicleType::getTypeDataById(VehicleType::DEFAULT_TYPE);
  61.         $catalogUrl $this->router->generate('portal_new_catalog_b', ['state' => 'new''type' => $defaultType['url'], 'brand' => 'all']);
  62.         $parameters['catalogUrl'] = $catalogUrl;
  63.         return parent::render($view$parameters$response);
  64.     }
  65.     public function buildForms(): array
  66.     {
  67.         return [
  68.             'supportForm' => $this->CoreFormFactory()
  69.                 ->supportForm(null$this->requestStack->getCurrentRequest()->getLocale())
  70.                 ->createView(),
  71.         ];
  72.     }
  73. }