src/Controller/PageController.php line 26

Open in your IDE?
  1. <?php
  2. namespace Slivki\Controller;
  3. use Slivki\Entity\City;
  4. use Slivki\Services\City\CityProvider;
  5. use Symfony\Component\HttpFoundation\Response;
  6. use Slivki\Entity\InfoPage;
  7. use Slivki\Util\CommonUtil;
  8. use Symfony\Component\HttpFoundation\Request;
  9. use Symfony\Component\HttpKernel\KernelInterface;
  10. class PageController extends SiteController
  11. {
  12.     private const CONTACTS_PHONE_VERSION_SESSION_KEY 'contactsPhoneNumbersVersion';
  13.     public CityProvider $cityProvider;
  14.     public KernelInterface $kernel;
  15.     public function __construct(CityProvider $cityProviderKernelInterface $kernel)
  16.     {
  17.         parent::__construct($kernel);
  18.         $this->cityProvider $cityProvider;
  19.     }
  20.     public function detailsAction(Request $request): Response
  21.     {
  22.         $response = new Response();
  23.         $defaultCityId $this->cityProvider->getDefaultCityId();
  24.         $isMobileDevice CommonUtil::isMobileDevice($request);
  25.         $pathInfo $request->getPathInfo();
  26.         $seoEntityID $this->getSeoRepository()->getByAlias($pathInfo)->getEntityID();
  27.         $data['infoPage'] = $this->getDoctrine()->getManager()->getRepository(InfoPage::class)->find($seoEntityID);
  28.         $data['text'] = $data['infoPage']->getContent();
  29.         $data['director'] = $data['infoPage']->getDirector();
  30.         if ($seoEntityID == InfoPage::ADVERTISER_PAGE_ID) {
  31.             $data['text'] = $this->renderView($isMobileDevice 'Slivki/mobile/info_pages/advertiser.html.twig'
  32.                 'Slivki/pages/content/advertiser.html.twig');
  33.         } elseif ($seoEntityID == InfoPage::INSTAGRAM_PAGE_ID) {
  34.             $data['text'] = $this->renderView($isMobileDevice 'Slivki/mobile/info_pages/instagram.html.twig'
  35.                 'Slivki/pages/content/instagram.html.twig');
  36.         } elseif (InfoPage::USER_AGREEMENT_PAGE_ID === $seoEntityID && $defaultCityId === City::TASHKENT_CITY_ID) {
  37.             $data['text'] = $this->renderView('Slivki/uz/pages/user_agreement.twig');
  38.         }
  39.         if (InfoPage::CONTACT_PAGE_ID === $seoEntityID) {
  40.             $data['text'] = \str_replace(
  41.                 '[user_email]',
  42.                 $this->getUser() ? $this->getUser()->getEmail() : '',
  43.                 $data['text']
  44.             );
  45.         }
  46.         $view 'Slivki/pages/pages.html.twig';
  47.         if ($seoEntityID == InfoPage::CONTACT_PAGE_ID && self::getMobileDevice($request)) {
  48.             $session $request->getSession();
  49.             $contactsPhoneNumbersVersion $session->get(self::CONTACTS_PHONE_VERSION_SESSION_KEY0);
  50.             $contactsPhoneNumbersVersion++;
  51.             if ($contactsPhoneNumbersVersion 2) {
  52.                 $contactsPhoneNumbersVersion 1;
  53.             }
  54.             $session->set(self::CONTACTS_PHONE_VERSION_SESSION_KEY$contactsPhoneNumbersVersion);
  55.             $data['text'] = $this->renderView('Slivki/mobile/info_pages/contacts.html.twig', ['contactsPhoneNumbersVersion' => $contactsPhoneNumbersVersion]);
  56.         }
  57.         if ($isMobileDevice) {
  58.             $view 'Slivki/mobile/info_pages/base.html.twig';
  59.         }
  60.         $response->setContent($this->renderView($view$data));
  61.         return $response;
  62.     }
  63. }