- <?php
- namespace Slivki\Controller;
- use Slivki\Entity\City;
- use Slivki\Services\City\CityProvider;
- use Symfony\Component\HttpFoundation\Response;
- use Slivki\Entity\InfoPage;
- use Slivki\Util\CommonUtil;
- use Symfony\Component\HttpFoundation\Request;
- use Symfony\Component\HttpKernel\KernelInterface;
- class PageController extends SiteController
- {
-     private const CONTACTS_PHONE_VERSION_SESSION_KEY = 'contactsPhoneNumbersVersion';
-     public CityProvider $cityProvider;
-     public KernelInterface $kernel;
-     public function __construct(CityProvider $cityProvider, KernelInterface $kernel)
-     {
-         parent::__construct($kernel);
-         $this->cityProvider = $cityProvider;
-     }
-     public function detailsAction(Request $request): Response
-     {
-         $response = new Response();
-         $defaultCityId = $this->cityProvider->getDefaultCityId();
-         $isMobileDevice = CommonUtil::isMobileDevice($request);
-         $pathInfo = $request->getPathInfo();
-         $seoEntityID = $this->getSeoRepository()->getByAlias($pathInfo)->getEntityID();
-         $data['infoPage'] = $this->getDoctrine()->getManager()->getRepository(InfoPage::class)->find($seoEntityID);
-         $data['text'] = $data['infoPage']->getContent();
-         $data['director'] = $data['infoPage']->getDirector();
-         if ($seoEntityID == InfoPage::ADVERTISER_PAGE_ID) {
-             $data['text'] = $this->renderView($isMobileDevice ? 'Slivki/mobile/info_pages/advertiser.html.twig'
-                 : 'Slivki/pages/content/advertiser.html.twig');
-         } elseif ($seoEntityID == InfoPage::INSTAGRAM_PAGE_ID) {
-             $data['text'] = $this->renderView($isMobileDevice ? 'Slivki/mobile/info_pages/instagram.html.twig'
-                 : 'Slivki/pages/content/instagram.html.twig');
-         } elseif (InfoPage::USER_AGREEMENT_PAGE_ID === $seoEntityID && $defaultCityId === City::TASHKENT_CITY_ID) {
-             $data['text'] = $this->renderView('Slivki/uz/pages/user_agreement.twig');
-         }
-         if (InfoPage::CONTACT_PAGE_ID === $seoEntityID) {
-             $data['text'] = \str_replace(
-                 '[user_email]',
-                 $this->getUser() ? $this->getUser()->getEmail() : '',
-                 $data['text']
-             );
-         }
-         $view = 'Slivki/pages/pages.html.twig';
-         if ($seoEntityID == InfoPage::CONTACT_PAGE_ID && self::getMobileDevice($request)) {
-             $session = $request->getSession();
-             $contactsPhoneNumbersVersion = $session->get(self::CONTACTS_PHONE_VERSION_SESSION_KEY, 0);
-             $contactsPhoneNumbersVersion++;
-             if ($contactsPhoneNumbersVersion > 2) {
-                 $contactsPhoneNumbersVersion = 1;
-             }
-             $session->set(self::CONTACTS_PHONE_VERSION_SESSION_KEY, $contactsPhoneNumbersVersion);
-             $data['text'] = $this->renderView('Slivki/mobile/info_pages/contacts.html.twig', ['contactsPhoneNumbersVersion' => $contactsPhoneNumbersVersion]);
-         }
-         if ($isMobileDevice) {
-             $view = 'Slivki/mobile/info_pages/base.html.twig';
-         }
-         $response->setContent($this->renderView($view, $data));
-         return $response;
-     }
- }