templates/Slivki/mobile/base.html.twig line 408

Open in your IDE?
  1. {% set metaInfo = getMetaInfo() %}
  2. {% set path = app.request.requestUri|url_encode %}
  3. {% if app.request.query.get('path') %}
  4.     {% set path = app.request.query.get('path')|url_encode %}
  5. {% endif %}
  6. {% if path != '%2F' %}
  7.     {% set path = '?path=' ~ path %}
  8. {% else %}
  9.     {% set path = '' %}
  10. {% endif %}
  11. <!DOCTYPE html>
  12. <html lang="ru">
  13. <head>
  14.     {% include "Slivki#{regional_template_path}/mobile/meta_block.html.twig" %}
  15.     <link href="/css/flowersHotLent.css?v={{ flowers_hot_lent_css_version }}" rel="stylesheet" type="text/css" />
  16.     <link rel="stylesheet" href="/css/beauty/beauty-masters.css?v={{ beauty_masters_css_version }}" type="text/css"/>
  17.     {% block meta %}{% endblock %}
  18.     <link href="/css/bootstrap4.3.1.min.css" rel="stylesheet">
  19.     <link href="/js/jgallery-1.5.5/dist/css/font-awesome.min.css" rel="stylesheet" type="text/css" />
  20.     <link rel="stylesheet" href="/css/swiper/swiper.min.css"/>
  21.     <link href="/css/jform-styler/vanillaSelectBox.css" rel="stylesheet">
  22.     <link rel="stylesheet" href="/css/botstrap-dropdowns-v3/dropdowns.css"/>
  23.     <link href="https://ajax.googleapis.com/ajax/libs/jqueryui/1.11.3/themes/smoothness/jquery-ui.css" rel="stylesheet">
  24.     <link rel="stylesheet" href="/css/intTelInput.css?v=2" />
  25.     <link rel="stylesheet" href="/css/slick.min.css"/>
  26.     <link rel="stylesheet" href="/css/slick-theme.min.css" />
  27.     <link rel="stylesheet" href="/css/jquery.toast.min.css" />
  28.     <link href=" /css/universal-parallax.min.css " rel="stylesheet">
  29.     {% block styles %}
  30.         <link href="/mobile/css/style.min.css?v={{ mobile_style_css_version }}" rel="stylesheet">
  31.         <link href="/css/new_popup.css?v={{ new_popup_css_version }}" rel="stylesheet" type="text/css" />
  32.         {% if app.request.getPathInfo() == '/profile' %}
  33.             <link href="/css/crt-fonts.css?v={{ crt_fonts_css_version }}" rel="stylesheet" type="text/css" />
  34.             <link href="/css/certificate-creator/certificate-creator.css" rel="stylesheet" type="text/css" />
  35.         {% endif %}
  36.     {% endblock %}
  37.     {% block favicon %}
  38.         <link type="image/x-icon" rel="shortcut icon" href="/images/favicon/favicon.ico">
  39.         <link type="image/png" sizes="72x72" rel="icon" href="/images/favicon/android-icon-72x72.png">
  40.         <link type="image/png" sizes="96x96" rel="icon" href="/images/favicon/android-icon-96x96.png">
  41.         <link type="image/png" sizes="144x144" rel="icon" href="/images/favicon/android-icon-144x144.png">
  42.         <link type="image/png" sizes="192x192" rel="icon" href="/images/favicon/android-icon-192x192.png">
  43.         <link type="image/png" sizes="512x512" rel="icon" href="/images/favicon/android-icon-512x512.png">
  44.         <link sizes="57x57" rel="apple-touch-icon" href="/images/favicon/apple-touch-icon-57x57.png">
  45.         <link sizes="60x60" rel="apple-touch-icon" href="/images/favicon/apple-touch-icon-60x60.png">
  46.         <link sizes="72x72" rel="apple-touch-icon" href="/images/favicon/apple-touch-icon-72x72.png">
  47.         <link sizes="76x76" rel="apple-touch-icon" href="/images/favicon/apple-touch-icon-76x76.png">
  48.         <link sizes="114x114" rel="apple-touch-icon" href="/images/favicon/apple-touch-icon-114x114.png">
  49.         <link sizes="120x120" rel="apple-touch-icon" href="/images/favicon/apple-touch-icon-120x120.png">
  50.         <link sizes="144x144" rel="apple-touch-icon" href="/images/favicon/apple-touch-icon-144x144.png">
  51.         <link sizes="152x152" rel="apple-touch-icon" href="/images/favicon/apple-touch-icon-152x152.png">
  52.         <link sizes="180x180" rel="apple-touch-icon" href="/images/favicon/apple-touch-icon-180x180.png">
  53.     {% endblock %}
  54.     <meta name="google-site-verification" content="LZdJyY-ROJZoDrU1Akiha-FF7W_PmSiN4mJRSyWexog" />
  55.     <link rel="manifest" href="/manifest.json?v=0">
  56.     <script src="//code-eu1.jivosite.com/widget/nNpsUw68ys" async></script>
  57.     <script src="https://api-maps.yandex.ru/2.1/?lang=ru_RU&apikey=ced3d85f-6a99-4208-93d6-b578ba5e8f8a"></script>
  58.     <!-- TikTok Code -->
  59.     <script>
  60.         !function (w, d, t) {
  61.             w.TiktokAnalyticsObject=t;var ttq=w[t]=w[t]||[];ttq.methods=["page","track","identify","instances","debug","on","off","once","ready","alias","group","enableCookie","disableCookie"],ttq.setAndDefer=function(t,e){t[e]=function(){t.push([e].concat(Array.prototype.slice.call(arguments,0)))}};for(var i=0;i<ttq.methods.length;i++)ttq.setAndDefer(ttq,ttq.methods[i]);ttq.instance=function(t){for(var e=ttq._i[t]||[],n=0;n<ttq.methods.length;n++
  62.             )ttq.setAndDefer(e,ttq.methods[n]);return e},ttq.load=function(e,n){var i="https://analytics.tiktok.com/i18n/pixel/events.js";ttq._i=ttq._i||{},ttq._i[e]=[],ttq._i[e]._u=i,ttq._t=ttq._t||{},ttq._t[e]=+new Date,ttq._o=ttq._o||{},ttq._o[e]=n||{};n=document.createElement("script");n.type="text/javascript",n.async=!0,n.src=i+"?sdkid="+e+"&lib="+t;e=document.getElementsByTagName("script")[0];e.parentNode.insertBefore(n,e)};
  63.             ttq.load('CAEQUGBC77U9MLGRE66G');
  64.             ttq.page();
  65.         }(window, document, 'ttq');
  66.     </script>
  67.     <!-- End TikTok Code -->
  68.     <!-- Meta Pixel Code -->
  69.     <script>
  70.         !function(f,b,e,v,n,t,s)
  71.         {if(f.fbq)return;n=f.fbq=function(){n.callMethod?
  72.             n.callMethod.apply(n,arguments):n.queue.push(arguments)};
  73.             if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0';
  74.             n.queue=[];t=b.createElement(e);t.async=!0;
  75.             t.src=v;s=b.getElementsByTagName(e)[0];
  76.             s.parentNode.insertBefore(t,s)}(window, document,'script',
  77.             'https://connect.facebook.net/en_US/fbevents.js');
  78.         fbq('init', ${currentCity.getID() > 1 ? '675534651528670' : '1202694461570299'});
  79.         fbq('track', 'PageView');
  80.     </script>
  81.     <noscript><img height="1" width="1" style="display:none"
  82.                    src="https://www.facebook.com/tr?id=1202694461570299&ev=PageView&noscript=1"
  83.         /></noscript>
  84.     <!-- End Meta Pixel Code -->
  85.     <noscript>
  86.         <img height="1" width="1" src="https://www.facebook.com/tr?id=1884900258504761&ev=PageView&noscript=1" style="display: none;"/>
  87.     </noscript>
  88.     <!-- End Facebook Pixel Code -->
  89.     <script type="text/javascript">(window.Image ? (new Image()) : document.createElement('img')).src = 'https://vk.com/rtrg?p=VK-RTRG-167315-4IspB';</script>
  90.     {% if fitnessOffer is defined %}
  91.         <script>
  92.             !function(f,b,e,v,n,t,s)
  93.             {if(f.fbq)return;n=f.fbq=function(){n.callMethod?
  94.                 n.callMethod.apply(n,arguments):n.queue.push(arguments)};
  95.                 if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0';
  96.                 n.queue=[];t=b.createElement(e);t.async=!0;
  97.                 t.src=v;s=b.getElementsByTagName(e)[0];
  98.                 s.parentNode.insertBefore(t,s)}(window, document,'script',
  99.                 'https://connect.facebook.net/en_US/fbevents.js');
  100.             fbq('init', '1615676305118909');
  101.             fbq('track', 'PageView');
  102.         </script>
  103.         <noscript><img height="1" width="1" style="display:none" src="https://www.facebook.com/tr?id=1615676305118909&ev=PageView&noscript=1"/></noscript>
  104.         <script type="text/javascript">(window.Image ? (new Image()) : document.createElement('img')).src = 'https://vk.com/rtrg?p=VK-RTRG-170417-8Uj6y';</script>
  105.     {% endif %}
  106.     <script>
  107.         var userAgent = navigator.userAgent || navigator.vendor || window.opera;
  108.         if (userAgent.indexOf('FBAN') == -1 && userAgent.indexOf('FBAV') == -1 && userAgent.indexOf('Instagram') == -1 &&
  109.             userAgent.indexOf('Skype') == -1 && userAgent.indexOf('Viber') == -1 && userAgent.indexOf('WhatsApp') == -1) {
  110.             var d = document,
  111.                 h = d.getElementsByTagName('head')[0],
  112.                 s = d.createElement('script');
  113.             s.type = 'text/javascript';
  114.             s.async = true;
  115.             s.src = '//cdn.sendpulse.com/js/push/260be6a77276a4d176159328b4b7175c_1.js?v=0';
  116.             h.appendChild(s);
  117.         }
  118.     </script>
  119.     <!-- Global site tag (gtag.js) - Google Analytics -->
  120.     {% set currentCity = getCurrentCity() %}
  121.     <!-- Google tag (gtag.js) -->
  122.     <script async src="https://www.googletagmanager.com/gtag/js?id=AW-978097094"></script>
  123.     <script>
  124.         window.dataLayer = window.dataLayer || [];
  125.         function gtag(){dataLayer.push(arguments);}
  126.         gtag('js', new Date());
  127.         gtag('config', 'AW-978097094');
  128.     </script>
  129.     {% if category is not defined and offer is not defined %}
  130.         <script src="/js/smart-app-banner.js"></script>
  131.         <script type="text/javascript">
  132.             new SmartBanner({
  133.                 daysHidden: 15,   // days to hide banner after close button is clicked (defaults to 15)
  134.                 daysReminder: 90, // days to hide banner after "VIEW" button is clicked (defaults to 90)
  135.                 appStoreLanguage: 'ru', // language code for the App Store (defaults to user's browser language)
  136.                 title: 'Slivki - промокоды и скидки',
  137.                 author: 'Slivki',
  138.                 button: 'Посмотреть',
  139.                 store: {
  140.                     ios: 'On the App Store',
  141.                     android: 'В Google Play',
  142.                     windows: 'In Windows store'
  143.                 },
  144.                 price: {
  145.                     ios: 'FREE',
  146.                     android: 'FREE',
  147.                     windows: 'FREE'
  148.                 }
  149.                 // , theme: '' // put platform type ('ios', 'android', etc.) here to force single theme on all device
  150.                 , icon: '/images/app-icon.png' // full path to icon image if not using website icon image
  151.                 // , force: 'ios' // Uncomment for platform emulation
  152.             });
  153.         </script>
  154.     {% endif %}
  155. </head>
  156. {% set bodyClass =  '' %}
  157. {% if noToken is not defined and is_granted('ROLE_ADMIN_USER') %}
  158.     {% set bodyClass =  'a-u' %}
  159. {% endif %}
  160. <body class="{{ bodyClass }}">
  161. {% if app.debug %}
  162.     <input type="hidden" id="debugMode" value="1"/>
  163. {% endif %}
  164. <script>
  165.     (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
  166.         (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
  167.         m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
  168.     })(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
  169.     ga('create', 'UA-185332166-1', 'auto');
  170.     ga('send', 'pageview');
  171.     {% if app.user %}
  172.         ga('set', 'userId', '{{ app.user.getID() }}');
  173.     {% endif %}
  174. </script>
  175. {% if app.user %}
  176.     <input type="hidden" id="customerID" value="{{ app.user.getID() }}"/>
  177.     {% if app.user.getEmail() != '' %}
  178.         <input class="sp_push_custom_data" type="hidden" name="email" value="{{ app.user.getEmail() }}">
  179.     {% else %}
  180.         <input class="sp_push_custom_data" type="hidden" name="email" value="{{ app.user.getPhone() }}">
  181.     {% endif %}
  182. {% endif %}
  183. <input type="hidden" id="serverTime" value="{{ 'now'|date('Y-m-d H:i:s') }}">
  184. <input type="hidden" id="cityID" value="{{ currentCity.getID() }}">
  185. <input id="cityName" type="hidden" value="{{ currentCity.getID() in [constant('Slivki\\Entity\\City::DEFAULT_CITY_ID'), constant('Slivki\\Entity\\City::TASHKENT_CITY_ID')] ? '/' : getURL(constant('Slivki\\Repository\\SeoRepository::RESOURCE_URL_CITY'), currentCity.getID()) }}"/>
  186. <input type="hidden" id="rtbhUID" value="{{ getRTBHouseUID(app.user) }}">
  187. <input id="userId" type="hidden" value=" {{ app.user is not null ? app.user.ID : null }}">
  188. <input id="metricaUrl" type="hidden" value=" {{ slivki_metrica_url }}/api/v1/metric">
  189. {% set geoIpLocation = getIPLocationData() %}
  190. <input type="hidden" id="geoIpLatitude" value="{{ geoIpLocation[0] }}"/>
  191. <input type="hidden" id="geoIpLongitude" value="{{ geoIpLocation[1] }}"/>
  192. {% set subscription = app.user ? getSubscription(app.user) : null %}
  193. {% block linkToStore %}
  194.     {% if category is defined and currentCity.getID() != 4 or offer is defined and currentCity.getID() != 4 %}
  195.         <div id="linkToStore" class="d-flex">
  196.             <img src="/images/logo/logo_mob.svg" height="35" alt="">
  197.             <div class="col pl-0">
  198.                 <p class="sf-bold-font">Slivki: промокоды  и скидки</p>
  199.                 <p>В приложении</p>
  200.             </div>
  201.             <div id="deepLinksHeader" class="button-store-index-page">Открыть</div>
  202.         </div>
  203.     {% endif %}
  204. {% endblock %}
  205. {% block linkToPartner %}
  206.     {% if app.user and is_granted('ROLE_SUPPLIER') %}
  207.         <div class="bg-gray text-violet text-center py-3 px-4 sf-font font-size-14">
  208.             <div>Здравствуйте, <span class="sf-bold-font">{{ app.user.getFirstName() }}!</span></div>
  209.             <div>Здесь вы можете проверить промокод</div>
  210.             <a class="d-block text-white font-weight-bold bg-violet text-white rounded-14 py-2 px-3 text-uppercase mt-2" href="{{ base_url }}/partner">перейти в кабинет партнера</a>
  211.         </div>
  212.     {% endif %}
  213. {% endblock %}
  214. {% block messenger %}
  215.     {% include 'Slivki/jivosite/button_mobile.html.twig' %}
  216.     {% include "Slivki#{regional_template_path}/jivosite/modal_mobile.html.twig" %}
  217. {% endblock %}
  218. {% block headerBanner %}
  219.     {% if not (app.user and app.user.hasRole(constant('\\Slivki\\Entity\\UserGroup::ROLE_ADS_FREE'))) %}
  220.         <div id="headerBanner" class="head-banner-container">
  221.             {{ getTopSiteBanner(brandingBannerCategoryIDs is defined ? brandingBannerCategoryIDs : [], true, true) }}
  222.         </div>
  223.     {% endif %}
  224. {% endblock %}
  225. {% block header %}
  226. <div id="headerWrapper">
  227.     <div id="header" class="{{ app.request.get('_route') == 'deliveryOrder' ? 'no-fixed' }}">
  228.         <nav id="headerTop" class="navbar navbar-expand p-0">
  229.             <a class="navbar-brand mx-3" href="{{ base_url }}"><img src="/images/logo/logo_mob.svg" height="35" alt=""></a>
  230.             <div class="navbar-collapse collapse">
  231.                 <form id="headerSearchForm" class="d-inline w-100" action="{{ base_url }}/search">
  232.                     <div class="input-group">
  233.                         <input id="headerSearchInput" name="text" type="text" class="search-input form-control py-1" placeholder="Я ищу..." value="{{ app.request.query.get('text', '') }}">
  234.                         <button class="input-group-append button-search-landing" type="submit">
  235.                             <img alt="" src="/images/searchNewWhite.svg" />
  236.                         </button>
  237.                         <button class="voice-search-btn" type="button"></button>
  238.                         {% include 'search_equalizer.html.twig' with {'barCount': 36, 'barPadding': 6} only %}
  239.                     </div>
  240.                     <input type="hidden" name="sortBy" id="sortBy" value="{{ app.request.query.get('sortBy', 'default') }}">
  241.                     <input type="hidden" name="distance" id="distance" value="{{ app.request.query.get('distance', '0') }}">
  242.                     <input type="hidden" name="isVoice" id="searchByVoice"  value="false"/>
  243.                 </form>
  244.                 <ul class="list-unstyled navbar-nav">
  245.                     {% if not app.user %}
  246.                         <li class="nav-item focus-tel">
  247.                             <a href="#" class="nav-link" data-toggle="modal" data-target=".modal-auth">Войти</a>
  248.                         </li>
  249.                     {% else %}
  250.                         <li class="nav-item d-none d-sm-block">
  251.                             <a id="headerUserName" class="nav-link" href="{{ path('profile') }}">{{ app.user.getFirstName() }}</a>
  252.                         </li>
  253.                     {% endif %}
  254.                     <li class="nav-item">
  255.                         <a class="nav-link p-0" href="#" id="sidebarMenuLink">
  256.                             <i class="slivki-icon-menu text-black"></i>
  257.                         </a>
  258.                     </li>
  259.                 </ul>
  260.             </div>
  261.         </nav>
  262.         {% include "Slivki/mobile/#{regional_template_path}/header_menu.html.twig" %}
  263.     </div>
  264. </div>
  265. {% endblock %}
  266. <main id="content" class="container-fluid">
  267.     <div id="topContent" class="row no-gutters">
  268.         <div class="col-12">
  269.             {% block topContent %}{% endblock %}
  270.         </div>
  271.     </div>
  272.     <div class="row no-gutters">
  273.         <div class="col-12">
  274.             {% block content %}{% endblock %}
  275.         </div>
  276.     </div>
  277. </main>
  278. {% block footer %}
  279.     {% include "Slivki/mobile#{regional_template_path}/footer.html.twig" %}
  280. {% endblock %}
  281. <nav id="sidebarMenu">
  282.     {% set landingUrl = '/subscription-landing?utm_source=main_menu' %}
  283.     {% if app.user %}
  284.         {% set landingUrl = '/profile/subscription/manage?utm_source=main_menu' %}
  285.     {% endif %}
  286.     <div class="row sf-font h-100">
  287.         <div class="col-10 bg-white px-0 side-bar-menu">
  288.             {% if app.user and is_granted('ROLE_SUPPLIER') %}
  289.                 <div class="col w-fit-content my-3 ml-3">
  290.                     <a class="d-block text-white text-center font-weight-bold bg-violet text-white rounded-14 py-2 px-3 text-uppercase mt-2" href="/partner">кабинет партнера</a>
  291.                     <p class="text-violet sf-font mb-0 mt-1">Войдите для проверки промокода</p>
  292.                 </div>
  293.             {% endif %}
  294.             <div class="bg-light-gray p-2 d-flex user-info__wrapper">
  295.                 {% if app.user %}
  296.                     <a class="w-100" href="{{ path('profile') }}">
  297.                         <div id="userTopInfo" class="user-info">
  298.                             <p class="user-info__title"><strong>Личный кабинет</strong></p>
  299.                             <p id="username">{{ app.user.getPhone() ? '***' ~ app.user.getPhone()|phone[3:] : app.user.getEmail() }}</p>
  300.                             {% if is_granted('IS_IMPERSONATOR') %}
  301.                                 <a class="text-danger pl-2" href="{{ impersonation_exit_path(path('homepage')) }}"><i class="slivki-icon-off text-danger p-0"></i> Вернутся в свой акк</a>
  302.                             {% endif %}
  303.                         </div>
  304.                     </a>
  305.                 {% else %}
  306.                     <i class="slivki-icon-user-o user-avatar"></i>
  307.                     <a href="#" data-toggle="modal" data-target=".modal-auth" class="my-auto">Вход/Регистрация</a></li>
  308.                 {% endif %}
  309.             </div>
  310.             <ul class="list-unstyled menu-list__wrapper">
  311.                 {% if app.user and isServerFeatureEnabled(constant('Slivki\\Enum\\SwitcherFeatures::REPLENISHMENT_BALANCE')) %}
  312.                     <li>
  313.                         <a href={{ isServerFeatureEnabled(constant('Slivki\\Enum\\SwitcherFeatures::VIRTUAL_WALLET_REPLENISHMENT'))  ? '/profile/oplata-pay' : '/oplata'}}>
  314.                             <img class="side-bar-menu-icons" alt="Баланс" src="/images/money.svg">
  315.                             <lable style="font-weight: bold; font-size: 16px">
  316.                                 <span id="balance">{{ app.user.getFullBalance()|number_format(2, ',', '') }}</span> р{% if isServerFeatureEnabled(constant('Slivki\\Enum\\SwitcherFeatures::VIRTUAL_WALLET_REPLENISHMENT')) %}/<span id="balance">{{ (app.user.virtualWalletAmount + app.user.virtualWalletCashBack)|number_format(2, ',', '') }}</span> р{% endif %}
  317.                             </lable>
  318.                             <br>
  319.                             <a href={{ isServerFeatureEnabled(constant('Slivki\\Enum\\SwitcherFeatures::VIRTUAL_WALLET_REPLENISHMENT'))  ? '/profile/oplata-pay' : '/oplata'}} class="text-violet" style="margin-left: 0.5rem;">Пополнить и получить бонус</a>
  320.                         </a>
  321.                     </li>
  322.                     <li><a href="{{ path('profile') }}#profilePromocodesTab"><img class="side-bar-menu-icons" src="/images/promo-code.svg" alt="Промокод">Мои промокоды</a></li>
  323.                 {% endif %}
  324.                 {% include "Slivki/mobile#{regional_template_path}/select_city_opener.html.twig" %}
  325.                 {% include "Slivki/mobile#{regional_template_path}/translate_block.html.twig" %}
  326.                 {% if isServerFeatureEnabled(constant('Slivki\\Enum\\SwitcherFeatures::SUBSCRIPTION')) and (not app.user or (app.user and subscription is not null and subscription.status == constant('Slivki\\Bundle\\SubscriptionBundle\\Enum\\SubscriptionStatus::CANCELED'))) %}
  327.                     <li>
  328.                         <a href="{{ landingUrl }}">
  329.                             <div class="d-flex subscription-button-sidebar">
  330.                                 <div class="icon-lightning align-self-center"></div>
  331.                                 <div class="col">
  332.                                     <div class="text-violet">ПОДПИСКА</div>
  333.                                     <div>1 промокод  5 копеек</div>
  334.                                 </div>
  335.                             </div>
  336.                         </a>
  337.                     </li>
  338.                 {% endif %}
  339.                 <li class="bg-light-gray menu-list__title">
  340.                     Интересное на сайте
  341.                 </li>
  342.                 {% if getActiveSubCategories(0)|length > 1 %}
  343.                     <li><a href="javascript:void(0)" role="button" data-toggle="modal" data-target="#offerCategoryMenuPopup"><img class="side-bar-menu-icons" alt="Промокод" src="/images/category-promo.svg">Категории</a></li>
  344.                 {% else %}
  345.                     <li><a href="{{ getCurrentCityURL() }}" role="button"><i class="slivki-icon-percentage"></i>Категории</a></li>
  346.                 {% endif %}
  347.                 {% set menuItem = getTestMenuItem(2) %}
  348.                 {% if isServerFeatureEnabled(constant('Slivki\\Enum\\SwitcherFeatures::SALES')) %}
  349.                     <li><a href="{{ base_url }}{{ path('sales') }}"><img class="side-bar-menu-icons" alt="Новости" src="/images/new-news.svg">Новости скидок</a></li>
  350.                 {% endif %}
  351.                 {% if isServerFeatureEnabled(constant('Slivki\\Enum\\SwitcherFeatures::FLIERS')) %}
  352.                     <li><a href="{{ getURL(constant('Slivki\\Repository\\SeoRepository::RESOURCE_URL_SALE_CATEGORY'), constant('Slivki\\Entity\\Category::FLIER_SALE_CATEGORY_ID')) }}"><img class="side-bar-menu-icons" alt="Листовки" src="/images/listovki.svg">Листовки</a></li>
  353.                 {% endif %}
  354.                 {% if not isServerFeatureEnabled(constant('Slivki\\Enum\\SwitcherFeatures::PAYMENT_PAYME')) %}
  355.                     <li class="py-2">
  356.                         <a href="{{ landingUrl }}">
  357.                             <div class="d-flex pl-2">
  358.                                 <div class="icon-lightning align-self-center"></div>
  359.                                 <div class="col pl-2">
  360.                                     <div>Подписка</div>
  361.                                 </div>
  362.                             </div>
  363.                         </a>
  364.                     </li>
  365.                 {% endif %}
  366.                 <li><a href="/moya_akciya" onclick="ga('send', 'event', 'create-own-offer-button--mobile-menu', 'Click', '1');"><img class="side-bar-menu-icons" src="/images/add-offer.svg" alt="Добавление">Разместить свою акцию</a></li>
  367.                 {% if app.user and is_granted('ROLE_ADMIN_USER') %}
  368.                     <li><a href="/admin"><img class="side-bar-menu-icons" alt="Администрирование" src="/images/admin-new-icon.svg">Администрирование</a></li>
  369.                     <li><a href="/admin/past_offers"><img class="side-bar-menu-icons" alt="Прошедшее" src="/images/past-new.svg">Прошедшие акции</a></li>
  370.                     <li><a href="/admin/past_sales"><img class="side-bar-menu-icons" alt="Прошедшее" src="/images/past-new.svg">Прошедшие НС</a></li>
  371.                 {% endif %}
  372.                 {% if app.user and is_granted('ROLE_SUPPLIER') %}
  373.                     <li class="mar-b-5"><a href="{{ path('partner') }}"><img class="side-bar-menu-icons" src="/images/partner.svg" alt="Кабинет партнера">Кабинет партнера</a></li>
  374.                 {% endif %}
  375.             </ul>
  376.         </div>
  377.         <div class="col-2 bg-modal px-0 sidebar-overlay">
  378.             <div class="sidebar-close__wrapper">
  379.                 <i id="sidebarOverlay" class="slivki-icon-close-thin sidebar-close" data-dismiss="modal"></i>
  380.             </div>
  381.         </div>
  382.     </div>
  383. </nav>
  384. {% block popup %}
  385.     {% include 'Slivki/mobile/popup/loading_popup.html.twig' %}
  386.     {{ getMainMenu(false, false) }}
  387.     {% if app.session.flashbag.get("showMogilevMailingBonusPopup")|length > 0 %}
  388.         {% include 'Slivki/mobile/popup/mogilev_mailing_popup.html.twig' %}
  389.     {% endif %}
  390.     {% include 'Slivki/mobile/select_city.html.twig' %}
  391.     {% include 'Slivki/mobile/popup/push.html.twig' %}
  392.     {% if not app.user %}
  393.         {% include 'Slivki/mobile/popup/login.html.twig' %}
  394.         {% include 'Slivki/mobile/popup/restore_password.html.twig'%}
  395.         {% include 'Slivki/mobile/popup/succes_restore_password.html.twig'%}
  396.     {% endif %}
  397.     {% include 'Slivki/popups/deep_links_popup.html.twig' %}
  398. {% endblock %}
  399. {% block brandingBanner %}{% endblock %}
  400. {% block floatingMobileBanner %}
  401.     {% if not (app.user and app.user.hasRole(constant('\\Slivki\\Entity\\UserGroup::ROLE_ADS_FREE'))) %}
  402.         {{ getMobileFloatingBanner(brandingBannerCategoryIDs is defined ? brandingBannerCategoryIDs : [])|raw }}
  403.     {% endif %}
  404. {% endblock %}
  405. {% include 'Slivki/mobile/popup/confirm_popup.html.twig' %}
  406. {% include 'Slivki/delivery/modal/questions.html.twig' %}
  407. {% include 'Slivki/mobile/popup/alert_popup.html.twig' %}
  408. {% include 'Slivki/popups/examples_of_works_popup_small.html.twig' %}
  409. {% include 'Slivki/popups/examples_of_works_popup.html.twig' %}
  410. {% include 'Slivki/mobile/popup/new_alert_popup.html.twig' %}
  411. {% include 'Slivki/mobile/popup/mail_popup.html.twig' %}
  412. {% include "Slivki/mobile#{regional_template_path}/popup/info_message_popup.html.twig" %}
  413. {% include 'Slivki/beauty/beauty_master_popup.html.twig' %}
  414. {% include 'Slivki/mobile/payment/oplati/oplati_renew_codes.html.twig' %}
  415. {% include 'Slivki/add_batch_codes/error.html.twig' %}
  416. {% include 'Slivki/add_batch_codes/success.html.twig' %}
  417. {% include 'Slivki/add_batch_codes/auth.html.twig' %}
  418. <!-- Yandex.Metrika counter -->
  419. <script type="text/javascript" >
  420.     (function(m,e,t,r,i,k,a){m[i]=m[i]||function(){(m[i].a=m[i].a||[]).push(arguments)};
  421.         m[i].l=1*new Date();k=e.createElement(t),a=e.getElementsByTagName(t)[0],k.async=1,k.src=r,a.parentNode.insertBefore(k,a)})
  422.     (window, document, "script", "https://mc.yandex.ru/metrika/tag.js", "ym");
  423.     ym(20933521, "init", {
  424.         clickmap:true,
  425.         trackLinks:true,
  426.         accurateTrackBounce:true
  427.     });
  428. </script>
  429. <noscript><div><img src="https://mc.yandex.ru/watch/20933521" style="position:absolute; left:-9999px;" alt="" /></div></noscript>
  430. <!-- /Yandex.Metrika counter -->
  431. <script src="/js/jquery-3.3.1.min.js"></script>
  432. {% set coordinate = currentCity.getCoordinate() %}
  433. <input type="hidden" id="cityCoord" value="[{{ coordinate.getLatitude() }}, {{ coordinate.getLongitude() }}]">
  434. {% block javascripts %}
  435.     <script src="/js/menuAim/main.min.js"></script>
  436. {#    <script src="/js/jquery-ui.min.js"></script>#}
  437.     <script src="/js/jquery-ui-1.8.16.custom.min.js"></script>
  438.     <script src="/mobile/js/parallax.js"></script>
  439.     <script src="/js/voices/app.js?v=4"></script>
  440.     <script src="/js/voices/recorder.js"></script>
  441.     <script src="/js/bodyScrollLock.min.js?v=1"></script>
  442.     <script type="module" src="/js/botsrap-custom-dropdowns/custom-dropdowns.js"></script>
  443.     <script src="/js/jform-styler/vanillaSelectBox.min.js"></script>
  444.     <script src="/js/swiper-js/swiper.min.js"></script>
  445.     <script src="/mobile/js/paralax.min.js"></script>
  446.     <script src="/js/slick.min.js"></script>
  447.     <script src="/js/jquery.mobile-events.min.js"></script>
  448.     <script src="/js/popper.min.js"></script>
  449.     <script src="/js/js.cookie.min.js"></script>
  450.     <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js"></script>
  451.     <script src="/js/jquery.lazyload.min.js?v=2"></script>
  452.     <script src="/js/lottie_light.min.js"></script>
  453.     <script src="/js/jquery.maskedinput.min.js"></script>
  454.     <script src="/js/jquery.inputmask.min.js"></script>
  455.     <script src="/js/helper.js?v={{ helper_version_js }}"></script>
  456.     <script src="/js/captcha/main.js?v=2"></script>
  457.     <script type="text/javascript" src="/js/jquery.cookie.js"></script>
  458.     <script src="https://yastatic.net/pcode/adfox/loader.js" crossorigin="anonymous"></script>
  459.     <script src="/js/jquery.matchHeight-min.js"></script>
  460.     <script src="/js/intlTelInput-jquery.min.js"></script>
  461.     <script src="/js/utils.min.js"></script>
  462.    <script src="/js/recaptcha_api.js"></script>
  463.     <script src="/js/common.min.js?v={{ common_js_version }}"></script>
  464.     <script type="module" src="/js/time_block_category/main.js?v={{ time_block_category_js }}"></script>
  465.     <script src="/mobile/js/script.min.js?v={{ mobile_script_js_version }}"></script>
  466.     <script src="//translate.google.com/translate_a/element.js?cb=TranslateInit"></script>
  467.     <script src="/js/gtranslate.js"></script>
  468.     <script src="/js/subscription.js?v={{ subscription_js_version }}"></script>
  469.     <script src="/js/maps_index_page/roundedControlls.js?v=1"></script>
  470.     <script src="/js/jquery.sameheight.js"></script>
  471.     <script type="module" src="/js/flowersCategoryCarousel.js?v={{ flowers_category_carousel_js_version }}"></script>
  472.     <script src="/js/moment.min.js"></script>
  473.     <script type="module" src="/js/family_subscription/api_family_subscription.js?v={{ family_subscription_js_version }}"></script>
  474.     <script type="module" src="/js/family_subscription/family_subscription.js?v={{ family_subscription_js_version }}"></script>
  475.     <script src="//translate.google.com/translate_a/element.js?cb=TranslateInit"></script>
  476.     <script type="module" src="/js/work_examples/api_work_examples.js?v={{ api_work_examples_js_version }}"></script>
  477.     <script src="/js/maps_index_page/roundedControlls.js?v=5"></script>
  478.     <script type="module" src="/js/beauty/mainMapBeauty.js?v={{ main_map_beauty_js_version }}"></script>
  479.     <script type="module" src="/js/beauty/masters.js?v={{ beauty_masters_js_version }}"></script>
  480.     <script type="module" src="/js/oplati/main.js?v={{ oplati_js_version }}" />
  481.     <script src="/js/jquery.toast.min.js"></script>
  482. {% endblock %}
  483. {% if app.user and app.user.isGeoLocationAccepted() == null %}
  484.     <input type="hidden" id="storeGeoLocationData"/>
  485. {% endif %}
  486. <div type="hidden" id="mobileVersionIndicator"></div>
  487. <div type="hidden" id="newMobileVersionIndicator"></div>
  488. {% block RTBHouse %}
  489.     <script>
  490.         try{ (function() {
  491.             var prefix = "", hash = "TS5TS2S9bdSbgKBA4Q2H", rtbhTags = []; rtbhTags.push("pr_"+hash+""); rtbhTags.push("pr_"+hash+"_uid_"+document.getElementById('rtbhUID').value);
  492.             var key = "__rtbhouse.lid", lid = window.localStorage.getItem(key); if (!lid) {
  493.                 lid = ""; var pool = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
  494.                 for (var i = 0; i < 20; i++) lid += pool.charAt(Math.floor(Math.random() * pool.length)); window.localStorage.setItem(key, lid);}
  495.             rtbhTags.push("pr_"+hash+"_lid_" + lid);
  496.             var ifr = document.createElement("iframe"),
  497.                 sr = encodeURIComponent(document.referrer ? document.referrer : ""),
  498.                 su = encodeURIComponent(document.location.href ? document.location.href : ""),
  499.                 ifrSrc = "https://"+prefix+"creativecdn.com/tags?type=iframe", tmstmp = encodeURIComponent("" + Date.now()); for(var i=0; i<rtbhTags.length; i++) {ifrSrc += "&id=" + encodeURIComponent(rtbhTags[i]);}
  500.             ifrSrc += "&su=" + su + "&sr=" + sr + "&ts=" + tmstmp;
  501.             ifr.setAttribute("src", ifrSrc); ifr.setAttribute("width", "1");
  502.             ifr.setAttribute("height", "1"); ifr.setAttribute("scrolling", "no");
  503.             ifr.setAttribute("frameBorder", "0"); ifr.setAttribute("style", "display:none");
  504.             ifr.setAttribute("referrerpolicy", "no-referrer-when-downgrade"); if(document.body){document.body.appendChild(ifr);}
  505.             else{window.addEventListener('DOMContentLoaded', function(){document.body.appendChild(ifr);});}
  506.         })();} catch(e) {} </script>
  507. {% endblock %}
  508. {% block metrikaEvent %}{% endblock %}
  509. </body>
  510. </html>