{% set phoneNumbersWithoutGeoLocations = offer.getPhoneNumbersWithoutGeoLocations() %}
{% extends 'Slivki/mobile/base.html.twig' %}
{% block styles %}
<link rel="stylesheet" href="/css/swiper/swiper.min.css"/>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/fancybox/3.3.5/jquery.fancybox.min.css"/>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.9.0/slick.min.css"/>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.9.0/slick-theme.min.css"/>
<link rel="stylesheet" href="/admin/plugins/datetimepicker/css/bootstrap-datetimepicker.min.css">
<link rel="stylesheet" href="/admin/plugins/datatables/jquery.dataTables.min.css"/>
<link rel="stylesheet" href="/admin/plugins/colorpicker/bootstrap-colorpicker.min.css"/>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.8.0/Chart.min.css">
{{ parent() }}
<link href="/css/delivery.min.css?v={{ delivery_css_version }}" rel="stylesheet" type="text/css"/>
<link href="/mobile/css/offers.min.css?v={{ mobile_offers_css }}" rel="stylesheet" type="text/css"/>
<link href="/css/foodForGift.css?v={{ food_for_gift_css }}" rel="stylesheet" type="text/css"/>
<link href="https://fonts.googleapis.com/css2?family=Montserrat:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap"
rel="stylesheet">
<link href=" /mobile/css/statistics_modal.css?v=3" rel="stylesheet" type="text/css"/>
{% endblock %}
{% block messenger %}{% endblock %}
{% block ogimage %}
{% if detailMediaList|length > 0 %}
<meta property="og:image"
content="{{ app.request.getSchemeAndHttpHost() }}{{ getImageURL(detailMediaList|first, 522, 322) }}"/>
<meta property="og:image:width" content="522"/>
<meta property="og:image:height" content="322"/>
{% else %}
{{ parent() }}
{% endif %}
{% endblock %}
{% set isBatchCodesAllowed = app.user and app.user.isBatchCodesAllowed %}
{% block content %}
{% set isPickupEnabled = offer.getOnlineOrderSettings().isPickupEnabled() is defined ? offer.getOnlineOrderSettings().isPickupEnabled() %}
{% set isDeliveryEnabled = offer.getOnlineOrderSettings().isDeliveryEnabled() is defined ? offer.getOnlineOrderSettings().isDeliveryEnabled() %}
{% if parentCategoryList %}
{% include 'Slivki/mobile/breadcrumbs.html.twig' with { 'parentCategoryList': parentCategoryList, 'supplierCategoryData': offer.getSupplierCategoryData() } only %}
{% endif %}
{% if isPickupEnabled or isDeliveryEnabled %}
<input id="deliveryMethodEnabled" type="hidden" value="{{ isDeliveryEnabled == '' ? '2' : '1' }}">
{% endif %}
<input id="offerPage" type="hidden" value="">
<input id="offerID" type="hidden" value="{{ offer.getID() }}">
<input id="isMedicalCenter" type="hidden"
value="{{ parentCategoryList and parentCategoryList[0].getID() == constant('Slivki\\Entity\\Category::MEDICAL_CENTER_CATEGORY_ID') }}">
<input type="hidden" id="stock-id" value="{{ offer.getID() }}">
<input type="hidden" id="stock-link" value="{{ app.request.getSchemeAndHttpHost() ~ app.request.getRequestUri() }}">
<div type="hidden" id="mobileVersionIndicator"></div>
{% if app.user and isSubscriber(app.user) %}
<input id="allowedCodesCountBySubscription" type="hidden" value="{{ allowedCodesCountBySubscription }}">
{% endif %}
{% if app.user %}
<input id="splitTotalCodesCountByUser" type="hidden" value="{{ app.user.getCodesCountByOffer(offer) }}">
<input type="hidden" id="customerID" value="{{ app.user.getID() }}"/>
{% endif %}
<meta content="{{ metaInfo.metaDescription }}"/>
<div id="offerDetails">
<div class="collapse-more-button"></div>
{% set isOfferFavourite = app.user ? app.user.isOfferFavourite(offer) : false %}
<div class="no-gutters pb-2">
<div class="col-12 col-sm-4">
<div id="offerImageSlider" class="m-0 swiper-container">
<div class="back-button" onclick="history.back();">
<img src="/images/back-violet.svg"/>
</div>
{% if app.user() %}
<div class="fovoutite-block"
onclick="onFavouriteClickOffer({{ offer.getID() }}, {{ isOfferFavourite ? 'true' : 'false' }})">
<img width="18" height="18"
src="{{ isOfferFavourite ? '/images/heart_active.svg' : '/images/heart.svg' }}"/>
</div>
{% endif %}
{% if not offer.isWithoutCodes() %}
<div class="discount-block">
{{ offer.getDiscount() }}
</div>
{% endif %}
{% if is_granted('ROLE_ADMIN') and not offer.isWithoutCodes() %}
<div id="statisticsButton" data-toggle="modal" data-target="#statisticOffersPopup">
<img width="37" height="37" src="/images/statistics.png"/>
</div>
{% endif %}
<div class="swiper-wrapper"
data-pixel={{ offer.getID() == constant('Slivki\\Entity\\Offer::BETERA_OFFER_ID') ? 'https://amc.yandex.ru/show?cmn_id=26372&plt_id=194140&crv_id=464042&evt_t=render&ad_type=banner&rnd=%system.random%' }}>
{% set medias = offer.getDetailMedias() %}
{% set mediaCount = medias|length %}
{% if mediaCount > 1 %}
{% for media in medias %}
<div class="swiper-slide">
{% if media.isYoutube() %}
<input class="js-src-video" type="hidden" value="https://www.youtube.com/embed/{{ media.getName() }}">
{% else %}
<img class="img-fluid lazyload" alt="{{ media.getDescription() }}"
src="{{ getImageURL(media, 1044, 644) }}"/>
{% endif %}
</div>
{% endfor %}
{% elseif mediaCount == 1 %}
<div>
<img class="img-fluid lazyload" alt="{{ medias[0].getDescription() }}"
src="{{ getImageURL(medias[0], 1044, 644) }}"/>
</div>
{% endif %}
</div>
{% if mediaCount > 1 %}
<div class="swiper-pagination mt-2"></div>
<div class="swiper-button-next"></div>
<div class="swiper-button-prev"></div>
{% endif %}
</div>
</div>
<div class="container-offers">
<div class="tags-offers">
{% if not offer.isWithoutCodes() %}
<div class="tags-offers-item"
data-toggle="tooltip"
data-placement="top"
data-html="true"
data-original-title="Взято кодов <br> Всего <a>{{ multiplePoolOfferUsedCodesCount is defined ? multiplePoolOfferUsedCodesCount : usedCodesCount }}</a> </br> За сутки {{ todayPurchaseCount }} </br> За месяц {{ getOfferMonthlyPurchaseCount(offer.getID(), 30) }}">
<img src="/images/offers/icon_people.svg"/>
<p class="mb-0"><a>{{ multiplePoolOfferUsedCodesCount is defined ? multiplePoolOfferUsedCodesCount : usedCodesCount }}</a></p>
</div>
{% endif %}
<div class="tags-offers-item view-count" class="view-count d-flex"
data-toggle="tooltip"
data-placement="top"
data-html="true"
data-original-title="Просмотров </br> За сутки {{ todayVisitCount }}<br> За месяц <span class='m-0'><a>{{ visitCount }}</a></span>">
<img src="/images/offers/statistic_1.svg"/>
<p class="mb-0">{{ visitCount }}</p>
</div>
{% if not offer.isWithoutCodes() %}
<div class="tags-offers-item"
data-toggle="tooltip"
data-placement="top"
data-html="true"
data-original-title="Кол-во продаж к кол-ву просмотров. <br> Конверсия за 30 дней">
<img src="/images/offers/conversion.svg"/>
<p class="mb-0">{{ getOfferConversion(offer.getID()) }}%</p>
</div>
{% endif %}
<div class="tags-offers-item rating-block"
data-html="true"
data-toggle="tooltip"
data-placement="top"
data-original-title="Рейтинг компании <br> за 90 дней">
<span>★</span>
<p class="mb-0">{{ offer.getRating() }}</p>
</div>
{% if not offer.isWithoutCodes() %}
<div class="tags-offers-item day-to-end"
data-toggle="tooltip"
data-placement="top"
data-html="true"
data-original-title="Дней до окончания <br> действия акции">
<img src="/images/offers/icon_time.svg"/>
<p class="mb-0">
{% if daysLeft > 0 %}
{{ daysLeft }} {{ ['день', 'дня', 'дней']|plural(daysLeft) }}
{% elseif daysLeft == 0 %}
<input type="hidden" id="daysLeft" value="{{ daysLeft }} "/>
<input type="hidden" id="hoursLeft" value="{{ hoursLeft }} "/>
<input type="hidden" id="minutesLeft" value="{{ minutesLeft }} "/>
<input type="hidden" id="secondsLeft"
value="{{ offer.getActiveTill().diff(date()).format('%s') }}"/>
<span id="hours">{{ hoursLeft }} </span>час{{ ['', 'а', 'ов']|plural(hoursLeft) }}
{% endif %}
</p>
</div>
{% endif %}
</div>
<p class="tittle-offers js-tittle-offer"
style="color: {{ offer.getTitleFontColor() }};">{{ offer.getTitle()|raw }}</p>
<div class="offers-description">
{% if not pastOffer and offer.getFreeCodesCount() > 0 %}
<div class="pb-3 d-flex border-bottom-gray">
<div class="col px-0 price-services-tittle">Стоимость:</div>
<del id="offerRegularPrice"
class="regular-price-offer">{{ offer.getRegularPrice() }}</del>
<div class="price-services-new">{{ offer.getOfferPrice()|replace({'(': '<span id="details-offer-price">(', ')': ')</span>'})|raw }}</div>
<input type="hidden" id="codeCost" value="{{ codeCost }}">
</div>
{% else %}
<div class="card border-0 mt-3">
<div class="card-body p-0 pl-2 text-center">
<i class="slivki-icon-minus-circled text-danger d-block h1 mb-0"></i>
Акция завершена
</div>
</div>
{% endif %}
</div>
</div>
</div>
{% if not pastOffer and offer.getFreeCodesCount() > 0 and offer.isOnlineOrderGiftEnabled() and offer.isFoodOnlineOrderAllowedOnSite() %}
<div class="col my-2">
<a class="button-gift" data-toggle="modal" data-target="#choiceGiftModal">
<div class="button-gift-text">
<p class="mb-0">ЕДА В ПОДАРОК 😋</p>
<p class="mb-0">Подарю сам или подарят мне</p>
</div>
</a>
</div>
{% endif %}
{% if not pastOffer and offer.isGiftCertificateOnlineOrderAllowedOnSite() and isServerFeatureEnabled(constant('Slivki\\Enum\\SwitcherFeatures::SLIVKI_PAY_FOR_CERTIFICATE'))
%}
<div class="col my-2">
{% if app.user %}
<a class="button-gift" href="/virtual-wallet-pay">
<div class="button-gift-text">
<p class="mb-0">ТЕПЕРЬ МОЖНО</p>
<p class="mb-0 color-violet">ОПЛАТИТЬ SLIVKI.PAY</p>
</div>
<div class="button-gift-item-button">
<div class="new">NEW</div>
</div>
</a>
{% else %}
<a class="button-gift" data-toggle="modal" data-target=".modal-auth">
<div class="button-gift-text">
<p class="mb-0">ТЕПЕРЬ МОЖНО</p>
<p class="mb-0 color-violet">ОПЛАТИТЬ SLIVKI.PAY</p>
</div>
<div class="button-gift-item-button">
<div class="new">NEW</div>
</div>
</a>
{% endif %}
</div>
{% endif %}
{% if offer.isFoodOnlineOrderAllowedOnSite() and offer.getOnlineOrderSettings() is not null and offer.getOnlineOrderSettings().allowedPaymentMethods['delivery'][4] == 1 and isServerFeatureEnabled(constant('Slivki\\Enum\\SwitcherFeatures::SLIVKI_PAY')) and not pastOffer or
offer.isFoodOnlineOrderAllowedOnSite() and offer.getOnlineOrderSettings() is not null and offer.getOnlineOrderSettings().allowedPaymentMethods['pickup'][4] == 1 and isServerFeatureEnabled(constant('Slivki\\Enum\\SwitcherFeatures::SLIVKI_PAY')) and not pastOffer %}
<div class="col my-2">
{% if app.user %}
<a class="button-gift" href="/virtual-wallet-pay">
<div class="button-gift-text">
<p class="mb-0">ТЕПЕРЬ МОЖНО</p>
<p class="mb-0 color-violet">ОПЛАТИТЬ SLIVKI.PAY</p>
</div>
<div class="button-gift-item-button">
<div class="new">NEW</div>
</div>
</a>
{% else %}
<a class="button-gift" data-toggle="modal" data-target=".modal-auth">
<div class="button-gift-text">
<p class="mb-0">ТЕПЕРЬ МОЖНО</p>
<p class="mb-0 color-violet">ОПЛАТИТЬ SLIVKI.PAY</p>
</div>
<div class="button-gift-item-button">
<div class="new">NEW</div>
</div>
</a>
{% endif %}
</div>
{% endif %}
<div class="sticky-element">
<div class="sticky-anchor"></div>
<div id="offerNavigation">
<ul class="nav-list">
<li class="nav-item"><a href="#offerDescriptionTab" class="nav-links active">
Условия
</a>
</li>
<li class="nav-item"><a href="#offerAddressTab" class="nav-links ">
Контакты
</a>
</li>
<li class="nav-item"><a href="#offerCommentTab" class="nav-links"><span></span>
Отзывы
</a>
</li>
</ul>
</div>
</div>
<div id="offerAccordion" class="accordion mt-2 px-2">
{% if not offer.isWithoutCodes() %}
<div id="fixedButtonsBottom" class="accordion fixed py-3">
{% if not offer.isBuyCodeDisable() %}
<div id="buyButtonCard" class="card">
<div class="card-header">
{% if offer.getID() == constant('Slivki\\Entity\\Offer::BOOKING_OFFER_ID') %}
<a href="#" class="m-0 card-link bg-slivki" data-toggle="modal"
data-target="#bookingItemPopup">
{{ offer.getBuyCodeButtonText() and offer.getBuyCodeButtonText() != '' ? offer.getBuyCodeButtonText() : 'Забронировать номер' }}
</a>
{% else %}
{% if not pastOffer and freeCodesCount > 0 %}
{% if not app.user %}
<a href="#" class="m-0 card-link bg-slivki by-code-button text-uppercase"
onclick="$('.modal-auth').modal()">
{% if offerIsFreeForUser %}
БЕСПЛАТНЫЙ ПРОМОКОД
{% else %}
{{ buyButtonLabel }}
{% endif %}
</a>
{% else %}
<a href="javascript:void(0)" id="buyCodeButtonFake"
class="m-0 d-none card-link bg-slivki by-code-button">
<img class="fixed-size" width="14" src="/images/loading-animation.gif"
alt=""/>
</a>
{% if (offer.getID() == constant('Slivki\\Entity\\Offer::PETROL_OFFER_ID')) %}
<a href="#"
onclick="showFakeButton(); if (window.google_tag_manager) {ga('send', 'event', 'Buy code', 'Click', '{{ getURL("Slivki:Default:details", offer.getID()) }}');} document.location='/oplata-promokoda-azs'"
class="m-0 card-link bg-slivki by-code-button" id="buyCodeButton">
{% if offerIsFreeForUser %}
БЕСПЛАТНЫЙ ПРОМОКОД
{% else %}
{{ buyButtonLabel }}
{% endif %}
</a>
{% else %}
{% if isAllowedByOnlyCode %}
{% if app.user and (isSubscriber(app.user) or isBatchCodesAllowed) and not offerIsFreeForUser and not offer.isBuyCodeInAppOnly() %}
<a href="#" onclick="$('#buyPromoPopup').modal()"
class="m-0 card-link bg-slivki by-code-button text-uppercase my-1"
id="buyCodeButton">
{{ buyButtonLabel }}
</a>
{% else %}
{% if not app.user %}
<a href="#" onclick="$('.modal-auth').modal()"
class="m-0 card-link bg-slivki by-code-button text-uppercase my-1"
id="buyCodeButton">
{{ buyButtonLabel }}
</a>
{% endif %}
{% if offer.isBuyCodeInAppOnly() %}
<a class="m-0 card-link bg-slivki by-code-button text-uppercase my-1"
id="buyCodeButton"
onclick="$('#byCodesAlwaysApp').modal()">
{{ buyButtonLabel }}
</a>
{% elseif not offer.isBuyCodeInAppOnly() %}
{% if isServerFeatureEnabled(constant('Slivki\\Enum\\SwitcherFeatures::PAYMENT_PAYME')) or isServerFeatureEnabled(constant('Slivki\\Enum\\SwitcherFeatures::PAYMENT_CLICK')) %}
<a href="#"
class="m-0 card-link bg-slivki by-code-button text-uppercase my-1"
id="buyCodeButtonPayMeMobile"
data-target="#buyPromoPopupPayMe"
data-toggle="modal">
{{ buyButtonLabel }}
</a>
{% else %}
<a href="#"
onclick="if (window.google_tag_manager) {ga('send', 'event', 'Buy code', 'Click', '{{ getURL("Slivki:Default:details", offer.getID()) }}');} showFakeButton();ym(20933521,'reachGoal','getcode-click'); document.location='{{ buyCodePopup == '#confirmBox' and canBuyFromBalance ? '/oplata-balance/' : '/oplata/' }}{{ offer.getID() }}'"
class="m-0 card-link bg-slivki by-code-button text-uppercase my-1"
id="buyCodeButton">
{{ buyButtonLabel }}
</a>
{% endif %}
{% endif %}
{% endif %}
{% endif %}
{% endif %}
{% endif %}
{% else %}
<a href="{{ categoryURL }}" class="m-0 card-link bg-slivki color-white">Посмотреть
похожие предложения</a>
{% endif %}
{% endif %}
</div>
</div>
{% endif %}
{% if items|length > 0 %}
<div id="buyItemsButtonCard" class="card">
<div class="card-header">
<a href="#" id="buyItemsButton" class="m-0 card-link bg-slivki" data-toggle="modal"
data-target="#offerItemsPopup">
{{ offer.getBuyItemsButtonText() and offer.getBuyItemsButtonText() != '' ? offer.getBuyItemsButtonText() : 'Оплатить сейчас по карте' }}
</a>
</div>
</div>
{% endif %}
{% if hasDelivery is defined and offer.getFreeCodesCount() > 0 %}
<div id="deliveryButtonCard" class="card">
<div class="card-header bg-transparent">
{% if not app.user %}
{% if offer.isTireOnlineOrderAllowedOnSite() %}
<a id="deliveryBtn" href="#" onclick="$('.modal-auth').modal()"
class="online-zapis js-buy-online card-link py-3 bg-violet text-white rounded-14 mx-0 text-uppercase{{ not offer.hasFreeCodes() ? ' opacity-05' }}">
Онлайн-запись
</a>
{% endif %}
{% if constant('Slivki\\Entity\\Offer::FREESTYLE_CERTIFICATE_OFFER_ID') == offer.getID() %}
<a href="#" onclick="$('.modal-auth').modal()"
class="card-link ml-0 py-3 bg-violet text-white rounded-14 text-uppercase{{ not offer.hasFreeCodes() ? ' opacity-05' }}">
ПОЛУЧИТЬ СКИДКУ {{ offer.getDiscount() }}
</a>
{% else %}
{% if offer.isGiftCertificateOnlineOrderAllowedOnSite() and not offer.isFoodOnlineOrderAllowedOnSite() and offer.getID() != 283213 and offer.getID() != 288763 and offer.getID() != 288779 and offer.getID() != 288772 %}
<a id="deliveryBtn" href="{{ deliveryLink }}"
class="js-buy-online card-link py-3 bg-violet text-white rounded-14 mx-0 text-uppercase{{ not offer.hasFreeCodes() ? ' opacity-05' }}">
Оплатить онлайн {{ offer.getDiscount() }}
</a>
{% elseif offer.isGiftCertificateOffer() and offer.getID() == 288763 or offer.isGiftCertificateOffer() and offer.getID() == 288779 or offer.isGiftCertificateOffer() and offer.getID() == 288772 %}
<a id="deliveryBtn" href="{{ deliveryLink }}"
class="js-buy-online card-link py-3 bg-violet text-white rounded-14 mx-0 text-uppercase{{ not offer.hasFreeCodes() ? ' opacity-05' }}">
Получить скидку {{ offer.getDiscount() }}
</a>
{% elseif not offer.isGiftCertificateOffer() and not offer.isTireOnlineOrderAllowedOnSite() %}
<a id="deliveryBtn" href="{{ deliveryLink }}"
class="js-buy-online card-link py-3 bg-violet text-white rounded-14 mx-0 text-uppercase{{ not offer.hasFreeCodes() ? ' opacity-05' }}">
Заказать онлайн {{ offer.getDiscount() }}
</a>
{% endif %}
{% endif %}
{% else %}
{% if offer.isTireOnlineOrderAllowedOnSite() %}
<a id="deliveryBtn" href="{{ offer.getOnlineRegistrationLink() }}"
class="online-zapis js-buy-online card-link py-3 bg-violet text-white rounded-14 mx-0 text-uppercase{{ not offer.hasFreeCodes() ? ' opacity-05' }}">
Онлайн-запись
</a>
{% endif %}
{% if offer.getID() in constant('Slivki\\Entity\\Offer::FREESTYLE_OFFER_IDS') %}
{% set deliveryBuyOnlyCodeLink = getLinkGiftCertificateOnlineOrderByOnlyCode(offer) %}
<a href="{{ deliveryBuyOnlyCodeLink }}"
onclick="document.location = `{{ deliveryBuyOnlyCodeLink }}`"
class="card-link ml-0 py-3 bg-violet text-white rounded-14 text-uppercase{{ not offer.hasFreeCodes() ? ' opacity-05' }}">
ПОЛУЧИТЬ СКИДКУ {{ offer.getDiscount() }}
</a>
{% else %}
{% if offer.isGiftCertificateOnlineOrderAllowedOnSite() and not offer.isFoodOnlineOrderAllowedOnSite() %}
{% if offer.isGiftCertificateOnlineOrderAllowedOnSite() and offer.getID() != 283213 and offer.getID() != 288763 and offer.getID() != 288779 and offer.getID() != 288772 or offer.isGiftCertificateOffer() and not offer.isFoodOnlineOrderAllowedOnSite() %}
<a href="{{ getLinkGiftCertificateOnlineOrder(offer) }}"
onclick="document.location = `{{ getLinkGiftCertificateOnlineOrder(offer) }}`"
class="js-buy-online card-link py-3 bg-violet text-white rounded-14 mx-0 text-uppercase{{ not offer.hasFreeCodes() ? ' opacity-05' }}">
Оплатить онлайн {{ offer.getDiscount() }}
</a>
{% elseif offer.isGiftCertificateOffer() and offer.getID() == 288763 or offer.isGiftCertificateOffer() and offer.getID() == 288779 or offer.isGiftCertificateOffer() and offer.getID() == 288772 %}
<a href="{{ getLinkGiftCertificateOnlineOrder(offer) }}"
onclick="document.location = `{{ getLinkGiftCertificateOnlineOrder(offer) }}`"
class="js-buy-online card-link py-3 bg-violet text-white rounded-14 mx-0 text-uppercase{{ not offer.hasFreeCodes() ? ' opacity-05' }}">
Получить скидку {{ offer.getDiscount() }}
</a>
{% endif %}
{% else %}
{% if not offer.isTireOnlineOrderAllowedOnSite() %}
<a href="{{ deliveryLink }}"
onclick="document.location = `{{ deliveryLink }}`"
class="js-buy-online card-link py-3 bg-violet text-white rounded-14 mx-0 text-uppercase{{ not offer.hasFreeCodes() ? ' opacity-05' }}">
Заказать онлайн {{ offer.getDiscount() }}
</a>
{% endif %}
{% endif %}
{% endif %}
{% endif %}
</div>
</div>
{% endif %}
</div>
{% endif %}
<div class="container-offers my-0 mx-0">
<div id="offerDescriptionTab" class="mx-2 active" style="max-height: fit-content;">
<div class="offer-titles mt-2"><h5>Условия</h5></div>
{% if not offer.isWithoutCodes() and offer.getID() != 140553 %}
{% set codeTill = offer.getCodeActiveTill() %}
{% set codeFrom = offer.getActiveTill()|date_modify('-1 day') %}
{% set codeFrom = codeFrom > codeTill ? codeTill : codeFrom %}
{% if not offer.isHideFeatures() %}
<p>- Получить промокод можно до {{ codeFrom|date('d.m') }}, воспользоваться {{ offer.getID() != 134390 ? 'до' }} {{ codeTill|date('d.m.y') }}.
<br/>
{% endif %}
{% if offer.isShowPriceInConditions() and not offerIsFreeForUser %}
- Стоимость промокода: {{ codeCost }} руб.
{% endif %}</p>
{% endif %}
{{ offer.getConditions()|raw }}
{# Таблица с прейскурантом для акции с квестами "Ящик Пандоры" #}
{% if offer.getID() == 143528 %}
<br>
{% include 'Slivki/offers/table_for_pandorra_box_offer2.html.twig' %}
<br>
{% elseif offer.getID() == 282234 %}
{% include 'Slivki/offers/table_for_pandorra_box_offer4.html.twig' %}
{% endif %}
{% if not offer.isHideFeatures() %}
{% if not offer.isWithoutCodes() %}
{% include "Slivki#{regional_template_path}/phrase_subscription_in_offer_page.html.twig" %}
{% endif %}
<br>
<div class="offer-titles"><h5>Особенности</h5></div>
<div class="offer-details-conditions">
{% if not offer.isWithoutCodes() %}
- Скидка предоставляется только при наличии промокода.
{% endif %}
{{ offer.getFeatures()|raw }}
</div>
- Поставщик несет полную ответственность перед потребителем за достоверность информации.
{% endif %}
<div id="endOfOfferCondition"></div>
</div>
</div>
{% if offer.getShopMedias()|length > 0 %}
<div class="gallery-title offer-titles"><h5>Галерея</h5></div>
{% endif %}
<div class="my-4 screenshots {{ offer.getShopMedias()|length == 0 or freeCodesCount == 0 ? 'empty' }}">
{% if offer.getShopMedias()|length > 0 %}
<div class="screenshot-container">
{% if galleryVideos.getVideos() is defined and galleryVideos.getVideos()|length > 0 %}
<div class="screenshot screenshot-story" data-toggle="modal"
data-target="#detailsStoryPopup">
<img src="{{ galleryVideos.getImageUrl() }}" width="158"
alt="Видео" border="0"/>
<div class="screenshot-story-btn"></div>
<div class="screenshot-story-tittle">{{ galleryVideos.getTitle() }}</div>
</div>
{% endif %}
{% for media in offer.getShopMedias() %}
<div class="screenshot">
<a data-fancybox="gallery1" href="{{ getImageURL(media, 0, 0) }}"
title="{{ media.getDescription() }}">
<img src="{{ getImageURL(media, 300, 0) }}" width="158"
alt="{{ media.getDescription() }}" border="0"/>
</a>
</div>
{% endfor %}
</div>
{% endif %}
</div>
<div id="examplesOfWorksBlock" class="examples-block-mobile">
<div class="headerBlockCategory examples d-none bg-white px-0 pb-0 examples-block-mobile-header">
<div class="offer-titles m-0"><h5>Фото
работ{# <div class="example-of-works-count-container"><span>1234</span></div> #}</h5></div>
<div class="examples-works-tooltip-filter">
<div class="tooltip-content">
<div class="tooltip-title border-bottom-f d-flex">Показать сначала:</div>
{% for key,sortItem in constant('Slivki\\Paginator\\WorkExample\\WorkExamplePaginatorInterface::SORT') %}
<div class="radio">
<input id="filter{{ key }}" type="radio" name="filter"
data-direction="{{ sortItem.direction }}"
value="{{ sortItem.field }}" {{ loop.first ? 'checked' }}>
<label for="filter{{ key }}" class="cursor-pointer">{{ sortItem.name }}</label>
</div>
{% endfor %}
<div class="tooltip-title border-top-f d-flex">Диапазон цены:</div>
<div id="workExamplePriceRangeInputs" class="price-range-inputs d-flex">
<div class="price-range-input"><input type="number" placeholder="Цена от" id="priceFrom"
name="priceFrom" min="0" max="199" step="1"></div>
<div class="price-range-input"><input type="number" placeholder="Цена до" id="priceTo"
name="priceTo" min="0" max="200" step="1"></div>
</div>
<div id="workExampleRangeSlider" class="range-slider">
<div class="range-labels">
<span id="workSimplesRangeLableStart" class="range-label range-label-start"></span>
<span>-</span>
<span id="workSimplesRangeLableEnd" class="range-label range-label-end"></span>
</div>
<input class="work-simples-input" type="range" min="" value="0" max="" name=""
id="startRange">
<input class="work-simples-input" type="range" min="" value="" max="" name=""
id="finishRange">
<div class="track-wrapper">
<div class="track"></div>
<div id="workSimplesSliderBetween" class="range-between"></div>
<div id="workSimplesTumbLeft" class="thumb left"></div>
<div id="workSimplesTumbRight" class="thumb right"></div>
</div>
</div>
<div id="buttonFilterBoxExamplesWork" class="buttonFilterBox">Показать</div>
</div>
<div id="buttonFilterBoxExamplesWork" class="d-flex cursor-pointer">Сортировка<img width="25" class="pl-2" src="/images/sort_image.svg"/></div>
</div>
</div>
{% include 'Slivki/works-examples/examples_of_works_gallery.html.twig' %}
</div>
<div id="beautyMastersBlock" class="beauty-masters-container beauty-masters-offer mob">
<div id="beautyMastersHeader"
class="tittleBlockCategory position-relative offer-titles mb-2 mt-0 d-none">
<h5> {{ parentCategoryList and parentCategoryList[0].getID() == constant('Slivki\\Entity\\Category::MEDICAL_CENTER_CATEGORY_ID') ? 'Врачи' : 'Найти своего мастера' }}</h5>
</div>
{% include 'Slivki/beauty/beauty_masters.html.twig' %}
</div>
<div id="offersDescription" class="offers-conditions mt-2 js-parallax-banner-after"
style="padding-bottom: 22px;">
{% if offer.isShowProductsInOfferDescription() %}
<div id="foodItemsBlock" class="my-3">
<div class="offer-titles mt-2"><h5>Описание</h5></div>
{% if isPickupEnabled and isDeliveryEnabled %}
<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;">
<div class="w-100 switch-delivery-pickup-block px-0 ">
<a data-type-delivery="1"
class="switch-delivery-pickup-item button-tab-delivery delivery-type active">
<p class="m-0">Доставка</p>
<small>удобно👌</small>
</a>
<a data-type-delivery="2"
class="switch-delivery-pickup-item pickup-type button-tab-pickup">
<p class="m-0"> Самовывоз</p>
<small>еще дешевле🔥</small>
</a>
</div>
</div>
{% endif %}
<div id="foodBlock"></div>
<div id="foodOptionsBlock"></div>
</div>
{% endif %}
<div class="description" id="descriptionText">
{% for offerDescription in offer.getDescriptionList() %}
{% set offerDescriptionSliderImages = offerDescription.getEntityDescriptionSliderImages() %}
{% if offerDescriptionSliderImages|length > 0 %}
<div class="sale-description-carousel">
<div id="saleDescriptionSliderFor{{ offerDescription.getID() }}"
class="sale-description-slider-for">
{% for offerDescriptionSliderImage in offerDescriptionSliderImages %}
<div><img data-lazy="{{ offerDescriptionSliderImage.getImageUrl() }}"/>
</div>
{% endfor %}
</div>
</div>
{% endif %}
{{ addLazyAndLightboxImagesInDescription(offerDescription.getDescription())|raw }}
{% endfor %}
</div>
</div>
<div id="offerAddressTab" class="mx-1 mt-5">
<div class="offer-titles"><h5 class="mb-2">Контакты</h5></div>
<div class="mb-4 logo-title">
{{ offer.getLogo()|raw }}
</div>
<div class="p-m-0">
{% if geoLocations.count() > 0 %}
{% if geoLocations|length > 0 %}
<div class="geo-location-block">
{% include 'Slivki/offers/geo_location_data.html.twig' with {'offer': offer} only %}
<div class="distance d-none" style="display: block">
<i class="slivki-icon slivki-icon-direction"></i> <img class='ajaxLoader'
src='/images/ajax-loader-16x16.gif'
alt='Загрузка...'/><span></span>
</div>
<div id="offerGeoLocationData" data-json="{{ offerGeoLocationData }}"></div>
<div id="offerMapWrapper" class="category-map-wrapper my-3">
<div id="offerMap" class="category-map"></div>
<a id="setUserLocationBtn" href="#">Указать местоположение</a>
<div id="zoomIn"></div>
<div id="zoomOut"></div>
<a id="mapEnterFullscreen" href="#" class="fullscreen-map-button">Развернуть</a>
<a id="mapExitFullscreen" href="#" class="fullscreen-map-button">Свернуть</a>
</div>
</div>
{% endif %}
{% endif %}
{% for geoLocation in geoLocations %}
<div class="mb-3 my-3">
<div class="sf-bold-font">{{ geoLocation.getCity() }}, {{ geoLocation.getStreet() }}
, {{ geoLocation.getHouse() }} {{ geoLocation.getLabel() }}</div>
{% set phoneNumbers = geoLocation.getPhoneNumbers() %}
{% if phoneNumbers|length > 0 %}
{% endif %}
{% for phoneNumber in phoneNumbers %}
{% include 'Slivki/mobile/offer/phone_number_btn.html.twig' with {'phoneNumber': phoneNumber, 'geoLocation': geoLocation} only %}
{% endfor %}
{% if geoLocation is defined and geoLocation.getCallbackChatId() and geoLocation.getCallbackChatId() != '' %}
<div class="callback-button" data-id="{{ geoLocation.getId() }}">Обратный звонок</div>
{% endif %}
{% if geoLocation.getWorkingHours()|trim != '' %}
<div>Время работы:</div> {{ geoLocation.getWorkingHours()|raw }}
{% endif %}
</div>
{% endfor %}
{% if phoneNumbersWithoutGeoLocations|length > 0 %}
{% if geoLocations|length > 0 %}
<br>
{% endif %}
<div id="phoneOffers" class="mb-2">
<div class="mb-2">
<strong>Телефон{{ phoneNumbersWithoutGeoLocations|length > 1 ? 'ы' }}:</strong>
</div>
{% for phoneNumber in phoneNumbersWithoutGeoLocations %}
{% include 'Slivki/mobile/offer/phone_number_btn.html.twig' with {'phoneNumber': phoneNumber} only %}
{% endfor %}
</div>
</div>
{% endif %}
{% set commonWoringHours = offer.getCommonWorkingHours() %}
{% if commonWoringHours != '' %}
<br>
<div><strong>Время работы:</strong></div>
{{ commonWoringHours|raw }}
<br><br>
{% endif %}
{{ offer.getLegal()|raw }}
<div class="offer-titles offer-titles-mobile mt-0 mb-0"><h5 class="mt-0 mb-0">Написать</h5></div>
<div class="col px-0">
<a class="tg-button offer-phone-mob btn btn-block bg-slivki text-white py-1 no-decoration my-2 d-flex justify-content-center align-items-center"
href="https://t.me/{{ offer.getTelegram() != null ? offer.getTelegram() : 'slivkislivkiby' }}"
style="width: 200px">
<img class="mr-2" src="/images/tg.svg" width="20" height="18">
<span class="float-right">Telegram</span>
</a>
{% set viberNumber = offer.getViber() != null ? offer.getViber() : '+375295084444' %}
<a class="vb-button offer-phone-mob btn btn-block bg-slivki text-white py-1 no-decoration my-2 d-flex justify-content-center align-items-center"
href='viber://chat?number=" {{ viberNumber }} "'
style="width: 200px">
<img class="mr-2" src="/images/vb.svg" width="20" height="18">
<span class="float-right">Viber</span>
</a>
</div>
</div>
{% include 'Slivki/offers/share.html.twig' %}
</div>
<div id="offerCommentTab" class="pt-2 px-0">
<div>
{{ comments|raw }}
</div>
</div>
</div>
</div>
{% if preview %}
<input type="hidden" id="offerPreview" value="1">
{% else %}
<input type="hidden" id="offerPreview" value="0">
{% endif %}
</div>
{% if showGlobalcard %}
{% include 'Slivki/mobile/offer/globalcard.html.twig' %}
{% elseif showGlobalcardFitness %}
{% include 'Slivki/mobile/offer/globalcard_fitness.html.twig' %}
{% endif %}
{% endblock %}
{% block popup %}
{% include 'Slivki/popups/header_offers.html.twig' %}
{% include 'Slivki/popups/mail_offers.html.twig' %}
{% include 'Slivki/popups/callback.html.twig' %}
{% include "Slivki#{regional_template_path}/jivosite/modal_mobile.html.twig" %}
{% if galleryVideos.getVideos() is defined and galleryVideos.getVideos()|length > 0 %}
{% include 'Slivki/popups/details-story-popup.html.twig' %}
{% endif %}
{% include 'Slivki/orderAsGift/foodForGift.html.twig' with {'deliveryLink': deliveryLink} %}
{% if isServerFeatureEnabled(constant('Slivki\\Enum\\SwitcherFeatures::PAYMENT_PAYME')) %}
{% include 'Slivki/uz/mobile/buy_promo.twig' %}
{% endif %}
{% if app.user %}
{% include 'Slivki/popups/rating_edit_popup.html.twig' %}
{% include 'Slivki/mobile/popup/popup_subscription_limited.html.twig' %}
{% include 'Slivki/mobile/subscription/buy_promo_popup.html.twig' %}
{% include 'Slivki/mobile/popup/confirm_subscription_card_popup.html.twig' with {'creditCards': app.user.getActiveCreditCards()} %}
{% include 'Slivki/mobile/popup/buy_codes_avways_app.html.twig' %}
{% include 'Slivki/popups/add_favourite_popup.html.twig' %}
{% include 'Slivki/popups/delete_favourite_popup.html.twig' %}
{% include 'Slivki/popups/delete_comment_popup.html.twig' with {id: 'deleteCommentConfirmPopup'} %}
{% else %}
{% include 'Slivki/popups/comment_only_registered_popup.html.twig' with {'id': 'onlyRegistered'} %}
{% endif %}
{% include 'Slivki/popups/comment_media_block_popup.html.twig' %}
{% include 'Slivki/mobile/popup/add_comment_popup.html.twig' %}
{% include 'Slivki/popups/edit_comment_popup.html.twig' with {'id': 'editVoteBox'} %}
{% include 'Slivki/popups/comment_censor_message.html.twig' with {'id': 'commentCensorMessage'} %}
{% include 'Slivki/mobile/share_block.html.twig' %}
{% include 'Slivki/mobile/popup/statistics_popup.html.twig' %}
{% include 'Slivki/mobile/delivery/modal/details.html.twig' with {'isOfferPage': true} %}
{% if items|length > 0 %}
{% include 'Slivki/mobile/offer/extension/item/items_popup.html.twig' %}
{% endif %}
{% if offer.getID() == constant('Slivki\\Entity\\Offer::BOOKING_OFFER_ID') %}
{% include 'Slivki/mobile/offer/booking_popup.html.twig' %}
{% endif %}
{{ parent() }}
{% if offer.isGiftCertificateOffer() %}
{% include 'Slivki/popups/step_buy_certificate.twig' with {'deliveryLink': deliveryLink} %}
{% endif %}
{% include 'Slivki/mobile/popup/loading_popup.html.twig' %}
{% include 'Slivki/mobile/popup/contact_popup.html.twig' %}
{% endblock %}
{% block brandingBanner %}
{% if not (app.user and app.user.hasRole(constant('\\Slivki\\Entity\\UserGroup::ROLE_ADS_FREE'))) %}
{% set brandingBanner = getBrandingBanner(app.user, brandingBannerCategoryIDs is defined ? brandingBannerCategoryIDs : [], offer is defined ? offer.getID()) %}
{% if brandingBanner and brandingBanner.getMobileDivider() %}
<input type="hidden" id="brandingBannerImage" value="{{ brandingBanner.getMobileDivider() }}"
data-oid="{{ brandingBanner.getID() }}" data-id="{{ brandingBanner.getBannerID() }}"
data-branding="{{ brandingBanner.getBannerID() }}" data-url="{{ brandingBanner.getUrl()|trim }}"
data-right-side-url="{{ brandingBanner.getRightSideUrl()|trim }}">
{% endif %}
{% endif %}
{% endblock %}
{% block javascripts %}
{{ parent() }}
<script src="/js/jquery.jcarousel.min.js?v=1"></script>
<script src="/js/story-slider/story-slider-js.js?v={{ story_slider_js_version }}"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery.lazyload/1.9.1/jquery.lazyload.min.js"
integrity="sha512-jNDtFf7qgU0eH/+Z42FG4fw3w7DM/9zbgNPe3wfJlCylVDTT3IgKW5r92Vy9IHa6U50vyMz5gRByIu4YIXFtaQ=="
crossorigin="anonymous" referrerpolicy="no-referrer"></script>
<script type="text/javascript">
$(function () {
$('#floatingBanner').addClass('offer-details-floating-banner');
});
</script>
<!-- Moment -->
<script src="/admin/plugins/moment/moment-with-locales.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.8.0/Chart.bundle.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/fancybox/3.3.5/jquery.fancybox.min.js"></script>
<script src="/js/swiper-js/swiper.min.js"></script>
<script src="/js/offer-new.js?v={{ offer_new_js_version }}"/>
<script src="https://api-maps.yandex.ru/2.1/?lang=ru_RU" type="text/javascript"></script>
<script src="https://yastatic.net/es5-shims/0.0.2/es5-shims.min.js"></script>
<script src="https://yastatic.net/share2/share.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery.countdown/2.2.0/jquery.countdown.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery.maskedinput/1.4.1/jquery.maskedinput.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/fecha/2.3.3/fecha.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.9.0/slick.min.js"></script>
<!-- date-time-picker -->
<script src="/admin/plugins/datetimepicker/js/bootstrap-datetimepicker.min.js"></script>
<!-- colorpicker -->
<script src="/admin/plugins/colorpicker/bootstrap-colorpicker.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-toast-plugin/1.3.2/jquery.toast.min.js"
integrity="sha512-zlWWyZq71UMApAjih4WkaRpikgY9Bz1oXIW5G0fED4vk14JjGlQ1UmkGM392jEULP8jbNMiwLWdM8Z87Hu88Fw=="
crossorigin="anonymous" referrerpolicy="no-referrer"></script>
<script src="/mobile/js/offer.min.js?v={{ offer_js_version }}"></script>
<script type="text/javascript" src="/js/statistics_offer/statistics_offer.js?v={{ statistics_offer_js_version }}"
charset="utf-8"></script>
<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>
<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>
<script src="/js/ajaxupload.3.5.js?v=1"></script>
<script src="/js/mobile-rating.js?v=2"></script>
<script>
uploadPhoto('/comment/image_upload', '/comment/image_remove');
initImageRemove();
</script>
<script type="text/javascript">
{% if app.request.query.has('checkOrder') %}
initCheckOfferOrderStatus({{ app.request.get('checkOrder') }});
{% endif %}
</script>
<script src="/js/offer/offerDescriptionItems.js?v={{ offer_description_items_js_version }}"></script>
<script type="module" src="/js/work_examples/work_examples.js?v={{ work_examples_js_version }}"></script>
<script type="module" src="/js/beauty/masters.js?v={{ beauty_masters_js_version }}"></script>
{% endblock %}
{% block RTBHouse %}
<script>
try {
(function () {
var prefix = "", hash = "TS5TS2S9bdSbgKBA4Q2H", rtbhTags = [];
rtbhTags.push("pr_" + hash + "_offer_" + document.getElementById('offerID').value);
rtbhTags.push("pr_" + hash + "_uid_" + document.getElementById('rtbhUID').value);
var key = "__rtbhouse.lid", lid = window.localStorage.getItem(key);
if (!lid) {
lid = "";
var pool = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
for (var i = 0; i < 20; i++) lid += pool.charAt(Math.floor(Math.random() * pool.length));
window.localStorage.setItem(key, lid);
}
rtbhTags.push("pr_" + hash + "_lid_" + lid);
var ifr = document.createElement("iframe"),
sr = encodeURIComponent(document.referrer ? document.referrer : ""),
su = encodeURIComponent(document.location.href ? document.location.href : ""),
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]);
}
ifrSrc += "&su=" + su + "&sr=" + sr + "&ts=" + tmstmp;
ifr.setAttribute("src", ifrSrc);
ifr.setAttribute("width", "1");
ifr.setAttribute("height", "1");
ifr.setAttribute("scrolling", "no");
ifr.setAttribute("frameBorder", "0");
ifr.setAttribute("style", "display:none");
ifr.setAttribute("referrerpolicy", "no-referrer-when-downgrade");
if (document.body) {
document.body.appendChild(ifr);
} else {
window.addEventListener('DOMContentLoaded', function () {
document.body.appendChild(ifr);
});
}
})();
} catch (e) {
} </script>
{% endblock %}