templates/Slivki/offers/details.html.twig line 1

Open in your IDE?
  1. {% extends 'base.html.twig' %}
  2. {% block title %}{{ parent() }}{{ currentPage is defined and currentPage != 1 ? ' - Страница №' ~ currentPage }}{% endblock %}
  3. {% block messenger %}{% endblock %}
  4. {% block stylesheets %}
  5.     <link rel="stylesheet" href="/css/statistics_modal.css?v=4"/>
  6.     <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.9.0/slick.min.css"/>
  7.     <link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/morris.js/0.5.1/morris.css">
  8.     <link rel="stylesheet" href="/admin/plugins/datetimepicker/css/bootstrap-datetimepicker.min.css">
  9.     <link rel="stylesheet" href="/admin/plugins/datatables/jquery.dataTables.min.css"/>
  10.     <link rel="stylesheet" href="/admin/plugins/colorpicker/bootstrap-colorpicker.min.css"/>
  11.     <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.8.0/Chart.min.css">
  12.     <link rel="stylesheet" href="/css/swiper/swiper.min.css"/>
  13.     <link href="//maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" type="text/css" rel="stylesheet">
  14.     <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datetimepicker/4.17.37/css/bootstrap-datetimepicker-standalone.min.css" integrity="sha512-L0/PNISezIYAoqFXBGP9EJ4qLH8XF356+Lo92vzloQqk7HUpZ4FN1x1dUOnsUAUjHTSxXxeaD0HXfrANhtJOEA==" crossorigin="anonymous" referrerpolicy="no-referrer" />
  15.     {{ parent() }}
  16.     <link href="/css/offers.css?v={{ offers_css }}" rel="stylesheet" type="text/css"/>
  17.     <link href="/css/foodForGift.css?v={{ food_for_gift_css }}" rel="stylesheet" type="text/css"/>
  18.     <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/animate.css/4.1.1/animate.min.css"
  19.           integrity="sha512-c42qTSw/wPZ3/5LBzD+Bw5f7bSF2oxou6wEb+I/lqeaKV5FDIfMvvRp772y4jcJLKuGUOpbJMdg/BTl50fJYAw=="
  20.           crossorigin="anonymous" referrerpolicy="no-referrer"/>
  21. {% endblock %}
  22. {% set isOfferFavourite = app.user ? app.user.isOfferFavourite(offer) : false %}
  23. {% set subscribed = app.user and isSubscriber(app.user) %}
  24.     {% block ogimage %}
  25.         {% if detailMediaList|length > 0 %}
  26.             <meta property="og:image"
  27.                   content="{{ app.request.getSchemeAndHttpHost() }}{{ getImageURL(detailMediaList|first, 522, 322) }}"/>
  28.             <meta property="og:image:width" content="522"/>
  29.             <meta property="og:image:height" content="322"/>
  30.         {% else %}
  31.             {{ parent() }}
  32.         {% endif %}
  33.     {% endblock %}
  34. {% block header %}
  35.     {% embed 'header.html.twig' %}
  36.         {% block headerTopMenu %}
  37.             {{ parent() }}
  38.         {% endblock %}
  39.     {% endembed %}
  40. {% endblock %}
  41. {% block mainColumnClass %} one-column bg-white{% endblock %}
  42. {% block main_content %}
  43.     {% set isPickupEnabled = offer.getOnlineOrderSettings().isPickupEnabled() is defined ? offer.getOnlineOrderSettings().isPickupEnabled() %}
  44.     {% set isDeliveryEnabled = offer.getOnlineOrderSettings().isDeliveryEnabled() is defined ? offer.getOnlineOrderSettings().isDeliveryEnabled() %}
  45.     {% set ratingWithCount = getEntityRatingWithCount(constant('Slivki\\Entity\\Category::OFFER_CATEGORY_ID'), offer.getID()) %}
  46.     {% if isPickupEnabled or isDeliveryEnabled %}
  47.         <input id="deliveryMethodEnabled" type="hidden" value="{{ isDeliveryEnabled == '' ? '2' : '1' }}">
  48.     {% endif %}
  49.     <input id="offerID" type="hidden" value="{{ offer.getID() }}">
  50.     <input type="hidden" id="stock-id" value="{{ offer.getID() }}">
  51.     <input type="hidden" id="stock-link" value="{{ app.request.getSchemeAndHttpHost() ~ app.request.getRequestUri() }}">
  52.     {% if subscribed %}
  53.         <input id="allowedCodesCountBySubscription" type="hidden" value="{{ allowedCodesCountBySubscription }}">
  54.     {% endif %}
  55.     {% if app.user %}
  56.         <input type="hidden" id="customerID" value="{{ app.user.getID() }}"/>
  57.     {% endif %}
  58.     <input type="hidden" id="codeCost" value="{{ codeCost }}">
  59.     <input type="hidden" class="buyOrderAmount form-element" type="text"
  60.            value="{{ codeCost }}"/>
  61.     <div class="content-wrapper">
  62.         <div class="content-wrapper-offers" itemscope itemtype="https://schema.org/Product">
  63.             <div class="d-flex pb-2" style="padding: 10px 34px;">
  64.                 <div class="col-6">
  65.                     {% include 'Slivki/breadcrumbs.html.twig' with { 'parentCategoryList': parentCategoryList, 'supplierCategoryData': offer.getSupplierCategoryData() } only %}
  66.                 </div>
  67.             </div>
  68.             <h3 class="offers-tittle" style="color: {{ offer.getTitleFontColor() }};">{{ offer.getTitle()|raw }}</h3>
  69.             <div class="content-offers-top">
  70.                 <div class="left-top-block">
  71.                     <div class="content-wrapper-carousel position-relative" style="margin-bottom: 28px">
  72.                         <div class="stock-image">
  73.                             <div id="carousel-example-generic" class="carousel slide" data-ride="carousel" data-interval="3000">
  74.                                 <div class="background-opacity"></div>
  75.                                 {% if detailMediaList|length > 1 %}
  76.                                     <ol class="carousel-indicators">
  77.                                         {% for media in detailMediaList %}
  78.                                             {% set active = "" %}
  79.                                             {% if loop.index0 == 0 %}
  80.                                                 {% set active = "active" %}
  81.                                             {% endif %}
  82.                                             <li data-target="#carousel-example-generic"
  83.                                                 data-slide-to="{{ loop.index0 }}" class="{{ active }}"></li>
  84.                                         {% endfor %}
  85.                                     </ol>
  86.                                 {% endif %}
  87.                                 <div class="carousel-inner" role="listbox">
  88.                                     {% for media in detailMediaList %}
  89.                                         {% set active = "" %}
  90.                                         {% if loop.index0 == 0 %}
  91.                                             {% set active = "active" %}
  92.                                         {% endif %}
  93.                                         <div class="item {{ active }}">
  94.                                             <img itemprop="image" class="w-100 br-14 lazyload" loading="lazy"
  95.                                                  src="{{ getImageURL(media, 1180, 728) }}"
  96.                                                  alt="{{ media.getDescription() }}"/>
  97.                                             <div class="carousel-caption ">
  98.                                                 {{ media.getDescription() }}
  99.                                             </div>
  100.                                         </div>
  101.                                     {% endfor %}
  102.                                 </div>
  103.                                 {% if detailMediaList|length > 1 %}
  104.                                     <a class="left carousel-control" href="#carousel-example-generic" role="button"
  105.                                        data-slide="prev">
  106.                                         <div class="sr-only">Назад</div>
  107.                                     </a>
  108.                                     <a class="right carousel-control" href="#carousel-example-generic" role="button"
  109.                                        data-slide="next">
  110.                                         <div class="sr-only">Далее</div>
  111.                                     </a>
  112.                                 {% endif %}
  113.                             </div>
  114.                         </div>
  115.                         <div class="discount-block">
  116.                             {{ offer.isWithoutCodes() ? 'пока без скидки' : offer.getDiscount() }}
  117.                         </div>
  118.                         {% if offer.isWithoutCodes() %}
  119.                             <div class="button-add-follow button-add-follow-teaser fovoutite-block"
  120.                                  onclick="onFavouriteClickOffer({{ offer.getID() }}, {{ isOfferFavourite ? 'true' : 'false' }})"
  121.                                  data-html="true"
  122.                                  data-toggle="tooltip"
  123.                                  data-placement="top"
  124.                                  data-original-title="Добавить в <br> избранное"
  125.                             >
  126.                                 <img src="{{ isOfferFavourite ? '/images/heart_active.svg' : '/images/offers/follow.svg' }}">
  127.                             </div>
  128.                         {% endif %}
  129.                     </div>
  130.                 </div>
  131.                 <div class="right-top-block">
  132.                     <div class="offers-description">
  133.                         {% if pastOffer or offer.getFreeCodesCount() == 0 %}
  134.                             <div class="past-offer mt-5 pt-5">
  135.                                 <i class="slivki-icon-minus-circled"></i>
  136.                                 <p>Упс, акция завершена!</p>
  137.                                 <a href="#offersConditions" class="buttons-link-offers">
  138.                                     Условия
  139.                                 </a>
  140.                                 <a href="#conditionAddress" class="buttons-link-offers">
  141.                                     Адрес, телефоны
  142.                                 </a>
  143.                                 <a href="#offersReview" class="buttons-link-offers">
  144.                                     Отзывы
  145.                                 </a>
  146.                             </div>
  147.                         {% else %}
  148.                             {% if not offer.isInFreeCodesCategory() and not offer.isWithoutCodes() %}
  149.                                 <div class="d-flex statistic-block {% if is_granted('ROLE_ADMIN') %}justify-content-between{% endif %} col px-2 my-0">
  150.                                     {% if is_granted('ROLE_ADMIN') %}
  151.                                         <div id="statisticsButton" data-toggle="modal"
  152.                                              data-target="#statisticOffersPopup">
  153.                                             Расширенная статистика →
  154.                                         </div>
  155.                                     {% endif %}
  156.                                     <p class="text-dark-violet font-size-0750 text-end w-auto"
  157.                                        data-toggle="tooltip"
  158.                                        data-html="true" data-placement="top"
  159.                                        data-original-title="Кол-во продаж к кол-ву просмотров. <br> Конверсия за 30 дней">
  160.                                         Конверсия {{ getOfferConversion(offer.getID()) }}%</p>
  161.                                 </div>
  162.                             {% endif %}
  163.                         {% if not offer.isWithoutCodes() %}
  164.                                 <div class="d-flex offers-description--item">
  165.                                     <div class="col">
  166.                                         <p class="color-dark-gray px-0 mb-0">Взято всего:</p>
  167.                                     </div>
  168.                                     <div class="col font-bold text-end">
  169.                                         <p> {{ multiplePoolOfferUsedCodesCount is defined ? multiplePoolOfferUsedCodesCount : usedCodesCount }}
  170.                                             {{ ['промокод', 'промокода', 'промокодов']|plural(usedCodesCount) }} из {{ allCodesCount }}</p>
  171.                                     </div>
  172.                                 </div>
  173.                                 <div class="d-flex px-2 my-0">
  174.                                     <div class="col">
  175.                                         <p class="color-dark-gray mb-0">Взято за сутки (за месяц):</p>
  176.                                     </div>
  177.                                     <div class="col font-bold text-end pl-2">
  178.                                         <p>{{ todayPurchaseCount }} {{ ['промокод', 'промокода', 'промокодов']|plural(todayPurchaseCount) }} ({{ getOfferMonthlyPurchaseCount(offer.getID(), 30) > 0 ? getOfferMonthlyPurchaseCount(offer.getID(), 30) : 0  }})</p>
  179.                                     </div>
  180.                                 </div>
  181.                         {% endif %}
  182.                                 <div class="d-flex {{ offer.isWithoutCodes() ? 'pl-2' : 'offers-description--item' }}">
  183.                                     <div class="col">
  184.                                         <p class="color-dark-gray">Просмотров:</p>
  185.                                     </div>
  186.                                     <div class="col font-bold text-end">
  187.                                         <p>{{ visitCount }} ({{ todayVisitCount }} за сутки)</p>
  188.                                     </div>
  189.                                 </div>
  190.                         {% if not offer.isWithoutCodes() %}
  191.                                 <div class="d-flex px-2 my-0">
  192.                                 <div class="col">
  193.                                     <p class="color-dark-gray">До завершения:&nbsp;</p>
  194.                                 </div>
  195.                                 <div class="col text-end">
  196.                                     {% if freeCodesCount > 0 %}
  197.                                         <input type="hidden" id="daysLeft" value="{{ daysLeft }} &nbsp;"/>
  198.                                         <input type="hidden" id="hoursLeft" value="{{ hoursLeft }} &nbsp;"/>
  199.                                         <input type="hidden" id="minutesLeft" value="{{ minutesLeft }} &nbsp;"/>
  200.                                         <input type="hidden" id="secondsLeft"
  201.                                                value="{{ offer.getActiveTill().diff(date()).format('%s') }}"/>
  202.                                         <span id="days">{{ daysLeft }}
  203.                                         &nbsp</span>{{ ['день', 'дня', 'дней']|plural(daysLeft) }},&nbsp;
  204.                                         <span id="hours">{{ hoursLeft }}&nbsp</span>час{{ ['', 'а', 'ов']|plural(hoursLeft) }}&nbsp;
  205.                                     {% endif %}
  206.                                 </div>
  207.                             </div>
  208.                         {% endif %}
  209.                             <div class="d-flex offers-description--item js-to-review-block">
  210.                                 <div class="col">
  211.                                     <p class="color-dark-gray">Отзывов:</p>
  212.                                 </div>
  213.                                 <div class="col font-bold text-end">
  214.                                     <p>{{ commentsAmount }} (<r data-html="true"
  215.                                                                 data-toggle="tooltip"
  216.                                                                 data-placement="top"
  217.                                                                 data-original-title="Рейтинг компании <br> за 90 дней">
  218.                                             <span class="yellow-span">★</span>{{ offer.getRating() }}</r>)</p>
  219.                                 </div>
  220.                             </div>
  221.                             <div class="d-flex offer-price-block">
  222.                                 <div class="col px-2">
  223.                                     <p class="color-dark-gray">Стоимость:</p>
  224.                                 </div>
  225.                                 <div class="col text-end">
  226.                                     <span id="offerRegularPrice"
  227.                                           class="regular-price">{{ offer.getRegularPrice() }}</span>
  228.                                     <span class="discount-price">&nbsp;&nbsp;{{ offer.getOfferPrice()|replace({'(': '<span id="details-offer-price">(', ')': ')</span>'})|raw }}</span>
  229.                                 </div>
  230.                             </div>
  231.                             {% if offer.isWithoutCodes() %}
  232.                                 <a href="/moya_akciya" target="_blank">
  233.                                     <img class="mt-3" src="/images/without_codes.png"/>
  234.                                 </a>
  235.                             {% endif %}
  236.                         {% endif %}
  237.                     </div>
  238.                     {% if offer.getFreeCodesCount() > 0 and not offer.isWithoutCodes() %}
  239.                         <div class="buttons-wrapper-offers">
  240.                         {% if hasDelivery is defined %}
  241.                             {% if not offer.isBuyCodeDisable() %}
  242.                                 {% include 'Slivki/offers/buy_button.html.twig' %}
  243.                             {% endif %}
  244.                             {% if offer.isFoodOnlineOrderAllowedOnSite() %}
  245.                                 <a id="deliveryBtn" href="{{ getLinkFoodOnlineOrder(offer) }}"
  246.                                    class="d-flex justify-content-center align-items-center text-uppercase button-by-code button">
  247.                                     Заказать онлайн {{ offer.getDiscount() }}
  248.                                 </a>
  249.                             {% endif %}
  250.                             {% if offer.isGiftCertificateOnlineOrderAllowedOnSite() %}
  251.                                 {% if offer.getID() == constant('Slivki\\Entity\\Offer::MINSK_WORLD_CERTIFICATE_OFFER_ID') %}
  252.                                     <a id="deliveryBtn" href="{{ getLinkGiftCertificateOnlineOrder(offer) }}"
  253.                                        class="d-flex justify-content-center align-items-center text-uppercase button-by-code button">
  254.                                         Получить скидку {{ offer.getDiscount() }}
  255.                                     </a>
  256.                                 {% elseif offer.getID() in constant('Slivki\\Entity\\Offer::FREESTYLE_OFFER_IDS') %}
  257.                                     <a id="deliveryBtn2" href="{{ getLinkGiftCertificateOnlineOrderByOnlyCode(offer) }}"
  258.                                        class="d-flex justify-content-center align-items-center text-uppercase button-by-code button">
  259.                                         ПОЛУЧИТЬ СКИДКУ {{ offer.getDiscount() }}
  260.                                     </a>
  261.                                 {% elseif not offer.isFoodOnlineOrderAllowedOnSite() %}
  262.                                     <a id="deliveryBtn" href="{{ getLinkGiftCertificateOnlineOrder(offer) }}"
  263.                                        class="d-flex justify-content-center align-items-center text-uppercase button-by-code button">
  264.                                         Оплатить онлайн {{ offer.getDiscount() }}
  265.                                     </a>
  266.                                 {% endif %}
  267.                             {% endif %}
  268.                             {% if offer.isTireOnlineOrderAllowedOnSite() %}
  269.                                 <a id="deliveryBtn" href="/online-zapis/{{ offer.getID() }}"
  270.                                    class="d-flex justify-content-center align-items-center text-uppercase button-by-code button">
  271.                                     Онлайн-запись
  272.                                 </a>
  273.                             {% endif %}
  274.                         {% elseif isAllowedByOnlyCode %}
  275.                             <div class="col">
  276.                                 {% include 'Slivki/offers/buy_button.html.twig' %}
  277.                             </div>
  278.                         {% endif %}
  279.                            {% if not pastOffer and offer.getFreeCodesCount() > 0 and offer.isOnlineOrderGiftEnabled() and offer.isFoodOnlineOrderAllowedOnSite()  %}
  280.                                 <div class="col">
  281.                                     <a class="button-gift" data-toggle="modal" data-target="#choiceGiftModal">
  282.                                         <div class="button-gift-text">
  283.                                             <p>ЕДА В ПОДАРОК 😋</p>
  284.                                             <p>Подарю сам или подарят мне</p>
  285.                                         </div>
  286.                                         <div class="button-gift-item-button">
  287.                                             <div class="new">NEW</div>
  288.                                         </div>
  289.                                     </a>
  290.                                 </div>
  291.                            {% endif %}
  292.                         {% if app.user() and not pastOffer %}
  293.                             <div class="button-add-follow fovoutite-block"
  294.                                  onclick="onFavouriteClickOffer({{ offer.getID() }}, {{ isOfferFavourite ? 'true' : 'false' }})"
  295.                                  data-html="true"
  296.                                  data-toggle="tooltip"
  297.                                  data-placement="top"
  298.                                  data-original-title="Добавить в <br> избранное"
  299.                             >
  300.                                 <img src="{{ isOfferFavourite ? '/images/heart_active.svg' : '/images/offers/follow.svg' }}">
  301.                             </div>
  302.                         {% endif %}
  303.                     </div>
  304.                     {% endif %}
  305.                 </div>
  306.             </div>
  307.             <div id="conditions_offers" class="d-flex" style="{{ pastOffer ? 'display: none!important' : '' }}">
  308.                 <div class="content-wrapper-col-left">
  309.                     <div id="offersConditions" class="offers-conditions active" style="max-height: fit-content;">
  310.                         <div class="offer-titles mb-2 mt-0"><h2>Условия</h2></div>
  311.                         {% set isOfferFavourite = app.user ? app.user.isOfferFavourite(offer) : false %}
  312.                         <div id="startOfOfferCondition"></div>
  313.                         {% if offer.getID() != 239232 %}
  314.                         {% endif %}
  315.                         {% if not offer.isWithoutCodes() and offer.getID() != 140553 %}
  316.                             <p>
  317.                                 {% set codeTill = offer.getCodeActiveTill() %}
  318.                                 {% set codeFrom = offer.getActiveTill()|date_modify('-1 day') %}
  319.                                 {% set codeFrom = codeFrom > codeTill ? codeTill : codeFrom %}
  320.                                 {% if not offer.isHideFeatures() %}
  321.                                     - Получить промокод можно до {{ codeFrom|date('d.m') }}, воспользоваться {{ offer.getID() != 134390 ? 'до' }} {{ codeTill|date('d.m.y') }}
  322.                                     <br/>
  323.                                 {% endif %}
  324.                                 {% if offer.isShowPriceInConditions() and not offerIsFreeForUser %}
  325.                                     - Стоимость промокода: {{ codeCost }} руб.
  326.                                 {% endif %}
  327.                             </p>
  328.                         {% endif %}
  329.                         <div class="offer-details-conditions offers-conditions p-0">
  330.                             {{ offer.getConditions()|raw }}
  331.                             {# Таблица с прейскурантом для акции с квестами "Ящик Пандоры" #}
  332.                             {% if offer.getID() == 143528 %}
  333.                                 {% include 'Slivki/offers/table_for_pandorra_box_offer2.html.twig' %}
  334.                             {% elseif offer.getID() == 282234 %}
  335.                                 {% include 'Slivki/offers/table_for_pandorra_box_offer4.html.twig' %}
  336.                             {% endif %}
  337.                             {% if not offer.isWithoutCodes() %}
  338.                                 {% include "Slivki#{regional_template_path}/phrase_subscription_in_offer_page.html.twig" %}
  339.                             {% endif %}
  340.                             {% if not offer.isHideFeatures() %}
  341.                                 </br>
  342.                                 <div class="offer-titles mb-2 mt-0"><h2>Особенности</h2></div>
  343.                                 <div class="offer-details-conditions">
  344.                                     {% if not offer.isWithoutCodes() %}
  345.                                         - Скидка предоставляется только при наличии промокода.
  346.                                     {% endif %}
  347.                                     {{ offer.getFeatures()|raw }}
  348.                                 </div>
  349.                                 - Поставщик несет полную ответственность перед потребителем за достоверность информации.
  350.                             {% endif %}
  351.                         </div>
  352.                         <div id="endOfOfferCondition"></div>
  353.                         <div class="clear"></div>
  354.                     </div>
  355.                     {% if offer.getShopMedias()|length > 0 %}
  356.                     <div class="offer-titles mb-2 mt-0"><h2>Галерея</h2></div>
  357.                     {% endif %}
  358.                     <div id="offerConditionsSlider" class="my-4 screenshots {{ offer.getShopMedias()|length == 0 or freeCodesCount == 0 ? 'empty' }}">
  359.                         {% if offer.getShopMedias()|length > 0 %}
  360.                             <div class="screenshot-container">
  361.                                 {% if  galleryVideos.getVideos() is defined and galleryVideos.getVideos()|length > 0 %}
  362.                                     <div class="screenshot screenshot-story" data-toggle="modal" data-target="#detailsStoryPopup">
  363.                                         <img src="{{ galleryVideos.getImageUrl() }}" width="300"
  364.                                              alt="Видео" border="0"/>
  365.                                         <div class="screenshot-story-btn"></div>
  366.                                         <div class="screenshot-story-tittle">{{ galleryVideos.getTitle() }}</div>
  367.                                     </div>
  368.                                 {% endif %}
  369.                                 {% for media in offer.getShopMedias() %}
  370.                                     <div class="screenshot">
  371.                                         <a href="{{ getImageURL(media, 0, 0) }}" title="{{ media.getDescription() }}"
  372.                                            data-lightbox="image">
  373.                                             <img src="{{ getImageURL(media, 300, 0) }}" width="300"
  374.                                                  alt="{{ media.getDescription() }}" border="0"/>
  375.                                         </a>
  376.                                     </div>
  377.                                 {% endfor %}
  378.                             </div>
  379.                         {% endif %}
  380.                     </div>
  381.                     <div id="examplesOfWorksBlock" class="">
  382.                         <div class="headerBlockCategory examples d-none bg-white px-0 pb-0 bg-transpanent examples-block-offer-header">
  383.                             <div class="offer-titles"><h5 class="m-0">Примеры работ{#<div class="example-of-works-count-container"><span>1234</span></div>#}</h5></div>
  384.                             <div class="examples-works-tooltip-filter">
  385.                                 <div class="tooltip-content">
  386.                                     <div class="tooltip-title border-bottom-f d-flex">Показать сначала:</div>
  387.                                     <div class="radio">
  388.                                         <input id="dateFilter" type="radio" name="filter" checked data-direction="DESC" value="workExample.createdAt">
  389.                                         <label for="dateFilter" class="cursor-pointer">По дате добавления</label>
  390.                                     </div>
  391.                                     <div class="radio">
  392.                                         <input id="locationFilter" type="radio" name="filter" data-direction="ASC" value="distance">
  393.                                         <label for="locationFilter" class="cursor-pointer">Поблизости</label>
  394.                                     </div>
  395.                                     <div class="radio">
  396.                                         <input id="priceUpFilter" type="radio" name="filter" data-direction="ASC" value="workExample.price">
  397.                                         <label for="priceUpFilter" class="cursor-pointer">По возврастанию цены</label>
  398.                                     </div>
  399.                                     <div class="radio">
  400.                                         <input id="priceDownFilter" type="radio" name="filter" data-direction="DESC" value="workExample.price">
  401.                                         <label for="priceDownFilter" class="cursor-pointer">По убыванию цены</label>
  402.                                     </div>
  403.                                     <div class="tooltip-title border-top-f d-flex">Диапазон цены:</div>
  404.                                     <div id="workExamplePriceRangeInputs" class="price-range-inputs d-flex">
  405.                                         <div class="price-range-input"><input type="number" placeholder="Цена от" id="priceFrom" name="priceFrom" min="0" max="199" step="1"></div>
  406.                                         <div class="price-range-input"><input type="number" placeholder="Цена до" id="priceTo" name="priceTo" min="0" max="200" step="1"></div>
  407.                                     </div>
  408.                                     <div id="workExampleRangeSlider" class="range-slider">
  409.                                         <div class="range-labels">
  410.                                             <span id="workSimplesRangeLableStart" class="range-label range-label-start"></span>
  411.                                             <span>-</span>
  412.                                             <span id="workSimplesRangeLableEnd" class="range-label range-label-end"></span>
  413.                                         </div>
  414.                                         <input class="work-simples-input" type="range" name="startRange" id="startRange">
  415.                                         <input class="work-simples-input" type="range" name="finishRange" id="finishRange">
  416.                                         <div class="track-wrapper">
  417.                                             <div class="track"></div>
  418.                                             <div id="workSimplesSliderBetween" class="range-between"></div>
  419.                                             <div id="workSimplesTumbLeft"  class="thumb left"></div>
  420.                                             <div id="workSimplesTumbRight" class="thumb right"></div>
  421.                                         </div>
  422.                                     </div>
  423.                                     <div id="buttonFilterBoxExamplesWork" class="buttonFilterBox">Показать</div>
  424.                                 </div>
  425.                                 <div id="buttonFilterBoxExamplesWork" class="examples-works-filter"></div>
  426.                             </div>
  427.                         </div>
  428.                         {% include 'Slivki/works-examples/examples_of_works_gallery.html.twig' %}
  429.                     </div>
  430.                     <div id="beautyMastersBlock" class="beauty-masters-container beauty-masters-offer desk">
  431.                         <div id="beautyMastersHeader" class="tittleBlockCategory position-relative offer-titles mb-2 mt-0 d-none"><h2>Мастера</h2></div>
  432.                         {% include 'Slivki/beauty/beauty_masters.html.twig' %}
  433.                     </div>
  434.                     <div id="offersDescription" class="offers-conditions mt-3">
  435.                         {% if offer.isShowProductsInOfferDescription() %}
  436.                             <div id="foodItemsBlock">
  437.                             <div class="offer-titles mb-2 mt-0"><h2>Описание</h2></div>
  438.                             {% if isPickupEnabled and isDeliveryEnabled %}
  439.                                 <div id="fixedFiltersOffer" class="w-auto px-2 d-flex" style="position: relative;background: linear-gradient(180deg, #A839FF 0%, #6747e5 100%), #6747E5;border-radius: 8px;padding: 10px 0;">
  440.                                     <div class="col d-flex align-items-center text-white justify-content-end px-0"></div>
  441.                                     <div class="switch-delivery-pickup-block px-0 ">
  442.                                         <a data-type-delivery="1" class="switch-delivery-pickup-item button-tab-delivery delivery-type active">
  443.                                             <p class="m-0">Доставка</p>
  444.                                             <small>удобно👌</small>
  445.                                         </a>
  446.                                         <a data-type-delivery="2" class="switch-delivery-pickup-item pickup-type button-tab-pickup">
  447.                                             <p class="m-0"> Самовывоз</p>
  448.                                             <small>еще дешевле🔥</small>
  449.                                         </a>
  450.                                     </div>
  451.                                 </div>
  452.                             {% endif %}
  453.                             <div id="foodBlock"></div>
  454.                             <div id="foodOptionsBlock"></div>
  455.                         </div>
  456.                         {% endif %}
  457.                         <div class="description" id="descriptionText">
  458.                             {% for offerDescription in offer.getDescriptionList() %}
  459.                                 {% set offerDescriptionSliderImages = offerDescription.getEntityDescriptionSliderImages() %}
  460.                                 {% if offerDescriptionSliderImages|length > 0 %}
  461.                                     <div class="sale-description-carousel">
  462.                                         <div id="saleDescriptionSliderFor{{ offerDescription.getID() }}"
  463.                                              class="sale-description-slider-for">
  464.                                             {% for offerDescriptionSliderImage in offerDescriptionSliderImages %}
  465.                                                 <div><img data-lazy="{{ offerDescriptionSliderImage.getImageUrl() }}"/>
  466.                                                 </div>
  467.                                             {% endfor %}
  468.                                         </div>
  469.                                     </div>
  470.                                 {% endif %}
  471.                                 {{ addLazyAndLightboxImagesInDescription(offerDescription.getDescription())|raw }}
  472.                                 {#                                <div id="showMoreDescription"#}
  473.                                 {#                                     class="{{ addLazyAndLightboxImagesInDescription(offerDescription.getDescription())|raw == "" or addLazyAndLightboxImagesInDescription(offerDescription.getDescription())|raw == '<p><span style="color: #ecf0f1;">.</span></p>' ? 'd-none' : "" }}">#}
  474.                                 {#                                    <div class="w-100 position-absolute bottom-0"#}
  475.                                 {#                                         style="background: linear-gradient(360deg, #FFFFFF 15.15%, rgba(255, 255, 255, 0) 206.06%);"></div>#}
  476.                                 {#                                    <p class="w-100 position-absolute bottom-0">Подробнее</p>#}
  477.                                 {#                                </div>#}
  478.                             {% endfor %}
  479.                         </div>
  480.                     </div>
  481.                     <div class="tab-pane fade" id="offerLocationTab">
  482.                         <i class="fa fa-spinner fa-spin"></i>
  483.                     </div>
  484.                     <div id="offersReview" class="offers-review">
  485.                         {{ comments|raw }}
  486.                     </div>
  487.                 </div>
  488.                 <div class="content-wrapper-col-right">
  489.                     <div id="conditionAddress">
  490.                         <div class="offer-titles mb-2 mt-0"><h2>Контакты</h2></div>
  491.                         <div style="display:none">{{ offer.getAddress() }}</div>
  492.                         <div id="offerConditionLogo">
  493.                             {{ offer.getLogo()|raw }}
  494.                         </div>
  495.                         <div id="dataFromLocation">
  496.                             <div class="move-data">
  497.                                 {% if geoLocations|length > 0 %}
  498.                                     <div class="geo-location-block" style="display: block">
  499.                                         {% include 'Slivki/offers/geo_location_data.html.twig' with {'offer': offer} only %}
  500.                                         <div id="offerGeoLocationData" data-json="{{ offerGeoLocationData }}"></div>
  501.                                         <div class="distance">
  502.                                             <i class="slivki-icon slivki-icon-direction"></i> <img class='ajaxLoader'
  503.                                                                                                    src='/images/ajax-loader-16x16.gif'
  504.                                                                                                    alt='Загрузка...'/><span></span>
  505.                                         </div>
  506.                                         <div class="offer-details-map category-map-wrapper category-map"
  507.                                              id="offerMapCanvas">
  508.                                             <div id="mapCollapseBtn" class="button button--map-collapse capsuled"
  509.                                                  onclick="offerMapToggleSize();">Развернуть
  510.                                             </div>
  511.                                             <a id="setUserLocationBtn" href="#" class="capsuled">Указать
  512.                                                 местоположение</a>
  513.                                             <div id="zoomIn"></div>
  514.                                             <div id="zoomOut"></div>
  515.                                         </div>
  516.                                     </div>
  517.                                 {% endif %}
  518.                                 <div class="before-map" style="clear:both;"></div>
  519.                             </div>
  520.                         </div>
  521.                         {% if (offer.getLocation()|preg_replace("/<[^>]*>/", '')|replace({"\n": '', "\r": '', '&nbsp;': '', ' ': ''}) != '') %}
  522.                             {{ offer.getLocation()|raw }}
  523.                             {% set phoneNumbers = offer.getPhoneNumbers() %}
  524.                             {% if phoneNumbers.count() > 0 %}
  525.                                 <div class="text-bold">Телефон{{ phoneNumbers.count() > 1 ? 'ы' }}:</div>
  526.                             {% endif %}
  527.                             {% for phoneNumber in phoneNumbers %}
  528.                                 {{ phoneNumber.getNumber() }} {{ phoneNumber.getLabel() }}<br/>
  529.                             {% endfor %}
  530.                         {% else %}
  531.                             {% set geoLocationsCount = geoLocations.count() %}
  532.                             {% set commonWoringHours = offer.getCommonWorkingHours() %}
  533.                             {% if commonWoringHours != '' %}
  534.                                 <br>
  535.                                 <div class="text-bold">Время работы:</div>
  536.                                 {{ commonWoringHours|raw }}
  537.                             {% endif %}
  538.                             {% for geoLocation in geoLocations %}
  539.                                 {% set margin = false %}
  540.                                 <div class="offer-details-geolocation-item my-3">
  541.                                     <div class="font-bold font-size-17">г. {{ geoLocation.getCity() }}, {{ geoLocation.getStreet() }}, {{ geoLocation.getHouse() }}<br>{{ geoLocation.getLabel() }}</div>
  542.                                     <div class="location-more-info {{ geoLocationsCount > 2 ? 'hidden' }}">
  543.                                         {% if geoLocation.getWorkingHours()|trim != '' %}
  544.                                             {% set margin = true %}
  545.                                             <div class="offer-details-work-hours">Время работы:
  546.                                             </div> {{ geoLocation.getWorkingHours()|nl2br|raw }}
  547.                                         {% endif %}
  548.                                         {% set phoneNumbers = geoLocation.getPhoneNumbers() %}
  549.                                         {% if phoneNumbers.count() > 0 %}
  550.                                         {% set margin = true %}
  551.                                         <span>
  552.                                             <div class="offer-details-phone-item">
  553.                                                 <div class="short-phone-item" style="display: inline-block">
  554.                                                     {% if phoneNumbers|length > 0 %}
  555.                                                         {{ phoneNumbers[0].getShortPhoneNumber() }}...
  556.                                                     {% endif %}
  557.                                                 </div>
  558.                                                 <div class="full-phone-item" style="display: none">
  559.                                                     {% for phoneNumber  in phoneNumbers %}
  560.                                                         {{ phoneNumber.getNumber() }} {{ phoneNumber.getLabel() }}<br/>
  561.                                                     {% endfor %}
  562.                                                 </div>
  563.                                                 <a data-offer-id="{{ offer.getID() }}"
  564.                                                    class="text-slivki location-more-info-toggle">Показать номер</a>
  565.                                             </div>
  566.                                         {% endif %}
  567.                                             {% if margin %}
  568.                                                 <br>
  569.                                             {% endif %}
  570.                                             </span>
  571.                                     </div>
  572.                                     {% if geoLocationsCount > 2 %}
  573.                                         <a data-id="{{ geoLocation.getID() }}"
  574.                                            class="text-slivki location-more-info-toggle">Подробнее</a>
  575.                                     {% endif %}
  576.                                 </div>
  577.                             {% endfor %}
  578.                             {# {% if geoLocationsCount > 4 %} #}
  579.                             {# <div class="text-center"> #}
  580.                             {# <a id="showMoreAddressInDetailsLink" class="button" href="#">Еще адреса</a> #}
  581.                             {# </div> #}
  582.                             {# {% endif %} #}
  583.                             {% set phoneNumbersWithoutGeoLocations = offer.getPhoneNumbersWithoutGeoLocations() %}
  584.                             {% if phoneNumbersWithoutGeoLocations|length > 0 %}
  585.                                 <div class="text-bold">Телефон{{ phoneNumbersWithoutGeoLocations|length > 1 ? 'ы' }}:
  586.                                 </div>
  587.                                 <div class="offer-details-phone-item">
  588.                                     <div class="short-phone-item" style="display: inline-block">
  589.                                         {% if phoneNumbersWithoutGeoLocations|length > 0 %}
  590.                                             {{ phoneNumbersWithoutGeoLocations[0].getShortPhoneNumber() }}...
  591.                                         {% endif %}
  592.                                     </div>
  593.                                     <div class="full-phone-item" style="display: none">
  594.                                         {% for phoneNumber  in phoneNumbersWithoutGeoLocations %}
  595.                                             {{ phoneNumber.getNumber() }} {{ phoneNumber.getLabel() }}<br/>
  596.                                         {% endfor %}
  597.                                     </div>
  598.                                     <a data-offer-id="{{ offer.getID() }}"
  599.                                        class="text-slivki location-more-info-toggle">Показать номер</a>
  600.                                 </div>
  601.                             {% endif %}
  602.                         {% endif %}
  603.                         <div class="offer-details-legal-info">{{ offer.getLegal()|raw }}</div>
  604.                         {% if offer.getTelegram() != null or offer.getViber() != null %}
  605.                             <div class="contact-container d-flex py-2 px-1">
  606.                                 {% if offer.getTelegram() != null %}
  607.                                     <a href="https://t.me/{{ offer.getTelegram() }}" target="_blank">
  608.                                         <img alt="Telegram" src="/images/telegram-icon-stretch.png"/>
  609.                                         <p>Написать в Telegram</p>
  610.                                     </a>
  611.                                 {% endif %}
  612.                                 {% if offer.getViber() != null %}
  613.                                     <a href="viber://chat?number={{ offer.getViber() }}" target="_blank">
  614.                                         <img alt="Viber" src="/images/viber-icon-stretch.png"/>
  615.                                         <p>Написать в Viber</p>
  616.                                     </a>
  617.                                 {% endif %}
  618.                             </div>
  619.                         {% endif %}
  620.                     </div>
  621.                     {% include 'Slivki/offers/share.html.twig' %}
  622.                     {% include "Slivki#{regional_template_path}/jivosite/button_offers_page.html.twig" %}
  623.                     <p class="tittle-messenger-offers d-none">Мы всегда рады помочь: служба поддержки Slivki.by ответит на
  624.                         любой
  625.                         ваш вопрос</p>
  626.                 </div>
  627.             </div>
  628.         </div>
  629.         {% if (pastOffer or freeCodesCount == 0) and relatedOfferListHtml is defined %}
  630.             <div class="col px-3">
  631.                 <div class="related-offers-title">Другие похожие предложения:</div>
  632.                 <div class="related-offers-list stock-group-list">
  633.                     {{ relatedOfferListHtml|raw }}
  634.                 </div>
  635.             </div>
  636.         {% endif %}
  637.     </div>
  638.     {% if lastPurchaseText is defined %}
  639.         <div id="lastPurchaseNofify"><a href="#"><i class="slivki-icon-close-thin"></i></a>Последний раз промокод<br>получен {{ lastPurchaseText }}
  640.         </div>
  641.     {% endif %}
  642. {% endblock %}
  643. {% block popups %}
  644.     {{ parent() }}
  645.     {% if not pastOffer %}
  646.         {% include 'Slivki/popups/header_offers.html.twig' %}
  647.     {% endif %}
  648.     {% include 'Slivki/share_block.html.twig' %}
  649.     {% include 'Slivki/orderAsGift/foodForGift.html.twig' %}
  650.     {% if  galleryVideos.getVideos() is defined and galleryVideos.getVideos()|length > 0 %}
  651.         {% include 'Slivki/popups/details-story-popup.html.twig' %}
  652.     {% endif %}
  653.     {% include 'Slivki/popups/comment_media_block_popup.html.twig' %}
  654.     {% include 'Slivki/popups/statistics_popup.html.twig' %}
  655.     {% include 'Slivki/mobile/popup/buy_codes_avways_app.html.twig' %}
  656.     {% include 'Slivki/delivery/modal/details.html.twig' with {'isOfferPage': true} %}
  657.     {% if offer.isGiftCertificateOffer() %}
  658.         {% include 'Slivki/popups/step_buy_certificate.twig' with {'deliveryLink': deliveryLink} %}
  659.     {% endif %}
  660.     {% if app.user %}
  661.         {% include 'Slivki/popups/mail_offers.html.twig' %}
  662.         {% include 'Slivki/popups/rating_edit_popup.html.twig' %}
  663.         {% include 'Slivki/popups/popup_subscription_limited.html.twig' %}
  664.         {% if not isMobileDevice() or offerIsFreeForUser %}
  665.             {% if not codeCostInCurrency is defined and codeCostInCurrency is not null  %}
  666.                 {% set codeCostInCurrency = null %}
  667.             {% endif %}
  668.             {% include 'Slivki/popups/confirm_box.html.twig' with {'codeCost': codeCost, 'offerID': offer.getID(), 'codeCostInCurrency': codeCostInCurrency} %}
  669.             {% include 'Slivki/popups/confirm_subscription_card_popup.html.twig' with {'creditCards': app.user.getActiveCreditCards()} %}
  670.         {% endif %}
  671.         {% if not isMobileDevice() %}
  672.             {% include 'Slivki/popups/add_comment_popup.html.twig' with {'id': 'addVoteBox'} %}
  673.             {% include 'Slivki/popups/edit_comment_popup.html.twig' with {'id': 'editVoteBox'} %}
  674.             {% include 'Slivki/popups/comment_censor_message.html.twig' with {'id': 'commentCensorMessage'} %}
  675.         {% endif %}
  676.     {% else %}
  677.         {% if not isMobileDevice() %}
  678.             {% include 'Slivki/popups/comment_only_registered_popup.html.twig' with {'id': 'onlyRegistered'} %}
  679.         {% endif %}
  680.     {% endif %}
  681. {% endblock %}
  682. {% block javascripts %}
  683.     <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery.lazyload/1.9.1/jquery.lazyload.min.js"
  684.             integrity="sha512-jNDtFf7qgU0eH/+Z42FG4fw3w7DM/9zbgNPe3wfJlCylVDTT3IgKW5r92Vy9IHa6U50vyMz5gRByIu4YIXFtaQ=="
  685.             crossorigin="anonymous" referrerpolicy="no-referrer"></script>
  686.     <script src="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.9.0/slick.min.js"></script>
  687.     <script src="//api-maps.yandex.ru/2.1.29/?lang=ru-RU" type="text/javascript"></script>
  688.     <script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.22.2/moment.min.js"></script>
  689.     <script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.27.0/locale/ru.min.js" integrity="sha512-QezkC2mljFGA2zQBPe+FrNA7i2RVFaYOfdQHk6icEap1TZX/Q6MNx+0AOTr9msSec0LsMrpURxfgJSbodYoiLg==" crossorigin="anonymous"></script>
  690.     <script src="https://cdnjs.cloudflare.com/ajax/libs/fecha/2.3.3/fecha.min.js"></script>
  691.     <script src="/js/hotel-datepicker-3.6.5/hotel-datepicker.min.js"></script>
  692.     <script src="/js/swiper-js/swiper.min.js"></script>
  693.     <script src="/js/story-slider/story-slider-js.js?v={{ story_slider_js_version }}"></script>
  694.     {{ parent() }}
  695.     <script src="/js/offer.js?v={{ offer_js_version }}"></script>
  696.     <script src="/js/offer/offerDescriptionItems.js?v={{ offer_description_items_js_version }}"></script>
  697.     <script src="/js/common-old.js?v={{ common_old_js_version }}"></script>
  698.     <script type="text/javascript">
  699.         {% if preview is defined and preview %}
  700.         var offerPreview = 1;
  701.         {% else %}
  702.         var offerPreview = 0;
  703.         {% endif %}
  704.         {% if app.request.query.has('checkOrder') %}
  705.         initCheckOfferOrderStatus({{ app.request.get('checkOrder') }});
  706.         {% endif %}
  707.     </script>
  708.     <script src="/js/offer-new.js?v={{ offer_new_js_version }}"/>
  709. {% endblock %}
  710. {% block assetsBottom %}
  711.     {{ parent() }}
  712.     <script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datetimepicker/4.17.37/js/bootstrap-datetimepicker.min.js" integrity="sha512-Y+0b10RbVUTf3Mi0EgJue0FoheNzentTMMIE2OreNbqnUPNbQj8zmjK3fs5D2WhQeGWIem2G2UkKjAL/bJ/UXQ==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
  713.     <script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>
  714.     <script type="text/javascript" src="//yastatic.net/share2/share.js" charset="utf-8"></script>
  715.     <script async src="//embedr.flickr.com/assets/client-code.js" charset="utf-8"></script>
  716.     <script type="text/javascript" src="/js/statistics_offer/statistics_offer.js?v={{ statistics_offer_js_version }}" charset="utf-8"></script>
  717.     <script src="https://cdnjs.cloudflare.com/ajax/libs/easy-pie-chart/2.1.6/jquery.easypiechart.min.js" integrity="sha512-DHNepbIus9t4e6YoMBSJLwl+nnm0tIwMBonsQQ+W9NKN6gVVVbomJs9Ii3mQ+HzGZiU5FyJLdnAz9a63ZgZvTQ==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
  718.     <script src="https://cdnjs.cloudflare.com/ajax/libs/easy-pie-chart/2.1.6/easypiechart.min.js" integrity="sha512-1yldf7W5suy0ko2u4OGU1qyeGrzh9+A3uyWGH4ws8MbndaWxZsgnzy6uqqBq7NUU/ImI1Js5kqDbunovCN1JqA==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
  719.     <script src="https://cdn.jsdelivr.net/npm/chart.js@2.9.4/dist/Chart.min.js"></script>
  720.     <script type="module" src="/js/work_examples/work_examples.js?v={{ work_examples_js_version }}"></script>
  721.     <script type="module" src="/js/beauty/masters.js?v={{ beauty_masters_js_version }}"></script>
  722. {% endblock %}
  723. {% block RTBHouse %}
  724.     <script>
  725.         try {
  726.             (function () {
  727.                 var prefix = "", hash = "TS5TS2S9bdSbgKBA4Q2H", rtbhTags = [];
  728.                 rtbhTags.push("pr_" + hash + "_offer_" + document.getElementById('offerID').value);
  729.                 rtbhTags.push("pr_" + hash + "_uid_" + document.getElementById('rtbhUID').value);
  730.                 var key = "__rtbhouse.lid", lid = window.localStorage.getItem(key);
  731.                 if (!lid) {
  732.                     lid = "";
  733.                     var pool = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
  734.                     for (var i = 0; i < 20; i++) lid += pool.charAt(Math.floor(Math.random() * pool.length));
  735.                     window.localStorage.setItem(key, lid);
  736.                 }
  737.                 rtbhTags.push("pr_" + hash + "_lid_" + lid);
  738.                 var ifr = document.createElement("iframe"),
  739.                     sr = encodeURIComponent(document.referrer ? document.referrer : ""),
  740.                     su = encodeURIComponent(document.location.href ? document.location.href : ""),
  741.                     ifrSrc = "https://" + prefix + "creativecdn.com/tags?type=iframe",
  742.                     tmstmp = encodeURIComponent("" + Date.now());
  743.                 for (var i = 0; i < rtbhTags.length; i++) {
  744.                     ifrSrc += "&id=" + encodeURIComponent(rtbhTags[i]);
  745.                 }
  746.                 ifrSrc += "&su=" + su + "&sr=" + sr + "&ts=" + tmstmp;
  747.                 ifr.setAttribute("src", ifrSrc);
  748.                 ifr.setAttribute("width", "1");
  749.                 ifr.setAttribute("height", "1");
  750.                 ifr.setAttribute("scrolling", "no");
  751.                 ifr.setAttribute("frameBorder", "0");
  752.                 ifr.setAttribute("style", "display:none");
  753.                 ifr.setAttribute("referrerpolicy", "no-referrer-when-downgrade");
  754.                 if (document.body) {
  755.                     document.body.appendChild(ifr);
  756.                 } else {
  757.                     window.addEventListener('DOMContentLoaded', function () {
  758.                         document.body.appendChild(ifr);
  759.                     });
  760.                 }
  761.             })();
  762.         } catch (e) {
  763.         } </script>
  764. {% endblock %}