templates/layout.html.twig line 1

Open in your IDE?
  1. <!DOCTYPE html>
    <html lang="ru" prefix="og: http://ogp.me/ns#">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <meta name="facebook-domain-verification" content="rfprwv72ens5f058n8q3bn4qjoweif"/>
        <title>{% block title %}{% endblock %}</title>
        <meta name="description" content="{% block description %}{% endblock %}">
        <link href="{{ asset('img/favicon.ico') }}" type="image/x-icon" rel="icon"/>
        <link href="{{ asset('img/favicon.ico') }}" type="image/x-icon" rel="shortcut icon"/>
        <meta property="og:type" content="website"/>
        <meta property="og:url" content="{{ app.request.uri }}"/>
        <meta property="og:title" content="{{ block("title") }}"/>
        <meta property="og:image" content="{% block image %}{% endblock %}"/>
        <meta property="og:description" content="{{ block("description") }}"/>
        <meta property="fb:app_id" content="504306500551803"/>
        {% block customTags %}{% endblock %}
        {{ encore_entry_link_tags('app') }}
        {% if currentCustomer.mobile %}
            {{ encore_entry_link_tags('mobile-css') }}
        {% endif %}
        {% block header %}{% endblock %}
        {{ render(controller('App\\Controller\\Admin\\ExtScriptController::renderExtScripts',{'head':1})) }}
        {#    <script src="https://www.google.com/recaptcha/api.js?render=6LcbIpkaAAAAAJ96FSqgr84e8B_CY-OLwDi6vWra"></script> #}
        <script>
            function callback(token) {
                let list = document.getElementsByClassName('g-recaptcha-response');
                let n;
                for (n = 0; n < list.length; ++n) {
                    list[n].value = token;
                }
            }
    
            function onloadFunction() {
                if (!window.smartCaptcha) {
                    return;
                }
                window.smartCaptcha.render('captcha-container', {
                    sitekey: 'ysc1_6XIvBeFMb66O1saJSVGxAQw4roqm6nGvtbx1G1xQ3501bb68',
                    invisible: true,
                    hideShield: true,
                    callback: callback
                });
                window.smartCaptcha.execute();
    
            }
        </script>
        <script
                src="https://smartcaptcha.yandexcloud.net/captcha.js?render=onload&onload=onloadFunction"
                defer
        ></script>
    
    </head>
    <body>
    <section class="mobile__header">
        {% if currentCustomer.auth == false %}
            <div class="not-registered-row js-m2-open" data-modal="#js-m-reg">
                <span style="color: #ff3b77;font-weight: 900">+{{ settingsManager.registrationBonus }}</span><span
                        style="font-weight: 500">₽</span> бонусов при регистрации
            </div>
        {% endif %}
        <div class="m-header">
            <a href="#" class="m__header-menu js-m2-open" data-modal="#js-m-catalog-modal"></a>
            <div class="m-header__logo">
                <a href="{{ path('index') }}">
                    <img src="{{ settingsManager.logoPath }}" alt="Интернет магазин Перина Перони">
                </a>
            </div>
            <a href="javascript:;" class="m__header-search js-m2-open" data-modal="#js-m-search-modal"></a>
            <a href="javascript:;" class="m__header-geo js-m2-open" data-modal="#js-geo-modal"></a>
            <a href="tel:88005110650" class="m__header-phone"></a>
        </div>
    </section>
    <div class="container">
        <section class="top-menu wide-section">
            {{ render(controller('App\\Controller\\GeoController::renderGeo')) }}
            <ul class="top-menu__menu">
                <li><a href="https://perina-peroni.ru/info/perina-shop-vostochnaya">Магазины</a></li>
                <li><a href="https://perina-peroni.ru/info/about-opt">Юридическим лицам</a></li>
                <li><a href="{{ path('info_bonuses') }}">Бонусная программа</a></li>
                <li><a href="{{ path('brands') }}">Бренды</a></li>
                <li><a href="{{ path('gift_card') }}" style="color: #ef1255">Подарочные карты</a></li>
                <li><a class="delivery-lnk lnk-with-icon" href="{{ path('info_delivery') }}">Бесплатная доставка</a></li>
                <li><a class="phone-lnk lnk-with-icon" href="#">8 800 511 06 50</a></li>
            </ul>
        </section>
        <section id="js-h-stick" class="header">
            <div class="header__logo">
                <a href="{{ path('index') }}">
                    {#                <img src="{{ asset('img/logo.png') }}" alt="Интернет магазин Перина Перони" width="295" height="27"> #}
                    <img src="{{ settingsManager.logoPath }}" alt="Интернет магазин Перина Перони" width="295" height="auto">
    
                </a>
            </div>
            <div class="header-menu">
                <div class="header-menu-search">
                    <a href="javascript:;" class="header-menu__catalog-btn lnk-with-icon"
                       data-dropdown="#dropdown-menu">
                        Каталог
                    </a>
                    {% if currentCustomer.mobile == false %}
                        <form action="{{ path('search') }}" method="get" class="header-menu__search-form">
                            <input type="text" placeholder="Поиск товаров" data-dropdown="#js-search-results"
                                   autocomplete="off" name="q"
                                   class="header-menu__search-input dropdown-disabled" id="js-search-input">
                            <span id="js-search-spinner" style="    position: absolute;
        margin-right: 50px;
        margin-top: 7px;display: none;
        right: 0;"><img src="{{ asset('img/spinner.png') }}"></span>
                            <button type="submit" class="header-menu__search-panel-btn"></button>
                        </form>
                        <div class="cart-popup search__popup dropdown-menu dropdown-anchor-top-right dropdown-has-anchor"
                             data-add-y="-10" data-add-x="50"
                             id="js-search-results">
                        </div>
                    {% endif %}
                </div>
                {{ render(controller('App\\Controller\\PartsController::renderTopCatalog')) }}
                {{ render(controller('App\\Controller\\AuthController::renderAuthBlock')) }}
                <div class="header-menu__item-img header-menu__item--favorite pos-relative">
                    {% if currentCustomer.auth %}
                        <a href="{{ path('account_favorites') }}">Избранное</a>
                    {% else %}
                        <a href="{{ path('show_favorites') }}">Избранное</a>
                    {% endif %}
                    <span id="js-fav-num"
                          class="header-menu__num {% if currentCustomer.favoritesCount == 0 %} hidden {% endif %}">
                            {{ currentCustomer.favoritesCount }}
                        </span>
                </div>
                <div class="header-menu__item-img header-menu__item--viewed">
                    <a href="{{ path('show_viewed') }}">Просмотренные</a>
                </div>
                <div class="header-menu__item-img header-menu__item--cart pos-relative">
                    <a href="{{ path('cart') }}">Корзина</a>
                    <span {% if (currentCustomer.cartProductsCountWithDisabled == 0) %} style="display: none" {% endif %}
                                class="header-menu__num header-menu__num--cart js-cart-num">{{ currentCustomer.cartProductsCountWithDisabled }}</span>
                </div>
            </div>
        </section>
        <section class="top-catalog">
            {% set content = contentService.content(constant('App\\Component\\Content\\ContentPage::TOP_LINKS_ROW')) %}
            {{ content.contentMain|raw }}
        </section>
    
        {% block body %}{% endblock %}
    
        {% include 'subscribe/footer.form.html.twig' %}
    
        <a href="javascript:;" id="js-scroller" onclick="topFunction()" class="scroll-to-top"></a>
        <section class="footer">
            <div class="footer-body">
                <div class="footer-block">
                    <div class="footer-block-header">
                        Каталог
                    </div>
                    <ul class="footer-block-links">
                        {% for link in contentService.infoLinksByBlock(constant('App\\Component\\Admin\\InfoPage\\InfoBlock::CATALOG')) %}
                            <li><a href="{{ link.url }}">{{ link.anchor }}</a></li>
                        {% endfor %}
                    </ul>
                </div>
                <div class="footer-block">
                    <div class="footer-block-header">
                        О компании
                    </div>
                    <ul class="footer-block-links">
                        {% for link in contentService.infoLinksByBlock(constant('App\\Component\\Admin\\InfoPage\\InfoBlock::ABOUT_COMPANY')) %}
                            <li><a href="{{ link.url }}">{{ link.anchor }}</a></li>
                        {% endfor %}
                    </ul>
                </div>
                <div class="footer-block">
                    <div class="footer-block-header">
                        Помощь
                    </div>
                    <ul class="footer-block-links">
                        {% for link in contentService.infoLinksByBlock(constant('App\\Component\\Admin\\InfoPage\\InfoBlock::HELP')) %}
                            <li><a href="{{ link.url }}">{{ link.anchor }}</a></li>
                        {% endfor %}
                    </ul>
                </div>
                <div class="footer-block">
                    <div class="footer-block-header">
                        Покупателям
                    </div>
                    <ul class="footer-block-links">
                        {% for link in contentService.infoLinksByBlock(constant('App\\Component\\Admin\\InfoPage\\InfoBlock::TO_CUSTOMERS')) %}
                            <li><a href="{{ link.url }}">{{ link.anchor }}</a></li>
                        {% endfor %}
                    </ul>
                </div>
                <div class="footer-block">
                    <div class="footer-logo">
                        <img src="{{ settingsManager.logoPath }}" alt="Интернет магазин Перина Перони" width="210" height="auto">
                    </div>
                    <div class="footer-social">
                        {% include 'parts/social.links.html.twig' %}
                    </div>
                    <div class="footer-reviews">
                        {% include 'parts/reviews.links.html.twig' %}
                    </div>
                    <div class="footer-phone">
                        <a href="tel:88005110650">8 800 511 06 50</a>
                    </div>
                    <div class="footer-info">
                        Звонки по всей территории<br> России <b>БЕСПЛАТНО!</b>
                    </div>
                    <div class="footer-info footer-copyright">
                        © «Перина Перони» 1997 - {{ 'now' | date('Y') }}
                    </div>
                </div>
            </div>
        </section>
        <div class="m-subscribe" style="{% if hideSubscribeBanner is defined %} display: none {% endif %}">
            <div class="m-subscribe__title">Присоединяйтесь к нашей рассылке и получайте скидку 20% на первый заказ!</div>
            <form action="">
                <div class="m-subscribe__form-group">
                    <input class="m-subscribe__input" type="text" placeholder="Введите Ваш e-mail">
                    <button class="m-subscribe__btn">Подписаться</button>
                </div>
                <label class="m-checkbox">
                    <input type="checkbox"/>
                    <span class="m-subscribe__box"></span>
                    <span>Нажимая «Подписаться», я соглашаюсь получать рекламные и иные маркетинговые сообщения от «Перина Перони»
                    на условиях Политики конфиденциальности и Пользовательского соглашения.</span>
                </label>
                <input type="hidden" class="g-recaptcha-response" name="g-recaptcha-response"/>
            </form>
        </div>
        <div class="m-footer">
            <div class="m-accordion">
                <div class="m-accordion__item">
                    <div class="m-accordion__item-title js-m-accordion-lnk">Каталог</div>
                    <div class="m-accordion__items">
                        {% for link in contentService.infoLinksByBlock(constant('App\\Component\\Admin\\InfoPage\\InfoBlock::TO_CUSTOMERS')) %}
                            <a href="{{ link.url }}">{{ link.anchor }}</a>
                        {% endfor %}
                    </div>
                </div>
                <div class="m-accordion__item">
                    <div class="m-accordion__item-title js-m-accordion-lnk">О компании</div>
                    <div class="m-accordion__items">
                        {% for link in contentService.infoLinksByBlock(constant('App\\Component\\Admin\\InfoPage\\InfoBlock::ABOUT_COMPANY')) %}
                            <a href="{{ link.url }}">{{ link.anchor }}</a>
                        {% endfor %}
                    </div>
                </div>
                <div class="m-accordion__item">
                    <div class="m-accordion__item-title js-m-accordion-lnk">Помощь</div>
                    <div class="m-accordion__items">
                        {% for link in contentService.infoLinksByBlock(constant('App\\Component\\Admin\\InfoPage\\InfoBlock::HELP')) %}
                            <a href="{{ link.url }}">{{ link.anchor }}</a>
                        {% endfor %}
                    </div>
                </div>
                <div class="m-accordion__item">
                    <div class="m-accordion__item-title js-m-accordion-lnk">Покупателям</div>
                    <div class="m-accordion__items">
                        {% for link in contentService.infoLinksByBlock(constant('App\\Component\\Admin\\InfoPage\\InfoBlock::TO_CUSTOMERS')) %}
                            <a href="{{ link.url }}">{{ link.anchor }}</a>
                        {% endfor %}
                    </div>
                </div>
            </div>
            <div class="m-footer__logo">
                <a href="{{ path('index') }}"><img src="{{ settingsManager.logoPath }}" width="210" height="auto"
                                                   alt="Интернет магазин Перина Перони"></a>
    
            </div>
            <div class="m-footer__social">
                {% include 'parts/social.links.html.twig' %}
            </div>
            <div class="m-footer__phone">
                <a href="tel:88005110650">8 800 511 06 50</a>
            </div>
            <div class="m-footer__call-free">
                Звонки по всей территории России <span>бесплатно</span>!
            </div>
            <div class="m-footer__copyright">
                © «Перина Перони» 1997 - {{ 'now' | date('Y') }}
            </div>
        </div>
        <div class="hystmodal qview-modal" id="quickView" aria-hidden="true">
            <div class="hystmodal__wrap">
                <div class="hystmodal__window qview-modal__body" role="dialog" aria-modal="true">
                    <button data-hystclose class="hystmodal__close">Закрыть</button>
                    <div id="js-q-view">
                    </div>
                </div>
            </div>
        </div>
        {% if currentCustomer.auth == false and currentCustomer.mobile == false %}
            {% if isLoginPage() == false %}
                {% include 'auth/login.modal.html.twig' %}
            {% endif %}
        {% endif %}
    </div>
    <section class="mobile__footer">
        <div class="m-footer-menu" id="js-footer-menu">
            <a href="{{ path('index') }}" class="m-footer-menu__item m-footer-menu__item--home">
                Главная
            </a>
            <a class="m-footer-menu__item m-footer-menu__item--catalog js-m2-open" data-modal="#js-m-catalog-modal">
                Каталог
            </a>
            <a class="m-footer-menu__item m-footer-menu__item--cart" href="{{ path('cart') }}">
                Корзина
                <span class="js-cart-num"
                        {% if (currentCustomer.cartProductsCount == 0) %} style="display: none" {% endif %}>
                    {{ currentCustomer.cartProductsCount }}
                </span>
            </a>
            <a href="{{ path('show_favorites') }}"
               class="m-footer-menu__item m-footer-menu__item--fav {% if currentCustomer.auth == false %} js-m2-open {% endif %}"
               data-modal="#js-m-login">
                Избранное
                <span {% if currentCustomer.favoritesCount == 0 %} style="display: none;"{% endif %}>
                    {{ currentCustomer.favoritesCount }}</span>
            </a>
            {% if currentCustomer.auth %}
                <a href="{{ path('account') }}" class="m-footer-menu__item m-footer-menu__item--login">
                    Профиль
                    <span id="js-fav-num" class="bonus-info {% if currentCustomer.customerEntity.bonusNumber == 0 %}hidden{% endif %}">
                    {{ currentCustomer.customerEntity.bonusNumber }}</span>
                </a>
            {% else %}
                <a class="m-footer-menu__item m-footer-menu__item--login js-m2-open" data-modal="#js-m-login">
                    Войти
                </a>
            {% endif %}
        </div>
        {% if currentCustomer.mobile %}
            <div class="m-modal2" id="js-m-catalog-modal">
                <a href="javascript:;" class="m-modal__closer js-m-modal2-closer">Назад</a>
                <a href="javascript:;" class="m-modal__closer m-modal-menu__link" id="js-m-menu-back">В главное меню</a>
                <div class="m-modal__menu active m-modal__menu-l1" id="js-m-menu-item1">
                    {{ render(controller('App\\Controller\\PartsController::renderMobileCatalog')) }}
                </div>
            </div>
            <div class="m-modal2" id="js-geo-modal">
                {{ render(controller('App\\Controller\\GeoController::renderGeo')) }}
            </div>
            <div class="m-modal2" id="js-m-search-modal">
                <div class="m-back-link">
                    <a href="javascript:;" class="m-modal__closer js-m-modal2-closer">Назад</a>
                </div>
                <div class="m-modal__header">Поиск:</div>
                <div class="m-geo__input">
                    <form action="{{ path('search') }}" method="get">
                        <input type="text" name="q" placeholder="Поиск товаров" data-dropdown="#js-search-results"
                               autocomplete="off"
                               class="header-menu__search-input dropdown-disabled" id="js-search-input">
                        <button class="m-color-btn m-modal__search-btn">Найти</button>
                        <div class="cart-popup search__popup dropdown-menu dropdown-anchor-top-right dropdown-has-anchor"
                             data-add-y="10" data-add-x="0"
                             id="js-search-results">
                        </div>
                    </form>
                </div>
            </div>
            <div class="m-modal2" id="js-m-menu-modal">
                <div class="m-back-link">
                    <a href="javascript:;" class="m-modal__closer js-m-modal2-closer">Назад</a>
                </div>
                <div class="m-modal-menu-l2-item">
                    <div class="m-modal-menu-l2-title m-modal__menu-info-title js-m-menu-l2-item">
                        О компании
                    </div>
                    <div class="m-modal-menu-l2-bag m-modal__menu-info-link">
                        {% for link in contentService.infoLinksByBlock(constant('App\\Component\\Admin\\InfoPage\\InfoBlock::ABOUT_COMPANY')) %}
                            <a href="{{ link.url }}">{{ link.anchor }}</a>
                        {% endfor %}
                    </div>
                </div>
                <div class="m-modal-menu-l2-item">
                    <div class="m-modal-menu-l2-title m-modal__menu-info-title js-m-menu-l2-item">
                        Помощь
                    </div>
                    <div class="m-modal-menu-l2-bag m-modal__menu-info-link">
                        {% for link in contentService.infoLinksByBlock(constant('App\\Component\\Admin\\InfoPage\\InfoBlock::HELP')) %}
                            <a href="{{ link.url }}">{{ link.anchor }}</a>
                        {% endfor %}
                    </div>
                </div>
                <div class="m-modal-menu-l2-item">
                    <div class="m-modal-menu-l2-title m-modal__menu-info-title js-m-menu-l2-item">
                        Покупателям
                    </div>
                    <div class="m-modal-menu-l2-bag m-modal__menu-info-link">
                        {% for link in contentService.infoLinksByBlock(constant('App\\Component\\Admin\\InfoPage\\InfoBlock::TO_CUSTOMERS')) %}
                            <a href="{{ link.url }}">{{ link.anchor }}</a>
                        {% endfor %}
                    </div>
                </div>
            </div>
        {% endif %}
    </section>
    <script src="{{ asset('js/hystmodal.min.js') }}"></script>
    
    <script>
        function topFunction() {
            document.body.scrollTop = 0; // For Safari
            document.documentElement.scrollTop = 0; // For Chrome, Firefox, IE and Opera
        }
    
        function getSlidersToShow() {
            let slidesToShow = 6;
            let width = window.screen.availWidth;
            if (width < 1280) {
                slidesToShow = 5;
            }
            if (width < 900) {
                slidesToShow = 2;
            }
    
            return slidesToShow;
        }
    
        const fullCartUrl = '{{ path('get_full_cart') }}';
        const lkReviews = '{{ path('account',{'section':'reviews'}) }}';
        const citySearchUrl = '{{ path('city_autocomplete') }}';
        const checkCodeUrl = '{{ path('register_code_send') }}';
        const mainSearchUrl = '{{ path('search_autocomplete') }}';
        const phoneConfirm = '{{ path('auth_phone_confirm') }}';
        const deliveryChangeUrl = '{{ path('set-delivery') }}';
        const loginUrl = '{{ path('auth_phone_confirm_request') }}';
        const checkoutProfileUrl = '{{ path('checkout_step3') }}';
        const checkCallUrl = '{{ path('auth_login_call_check') }}';
    
        const myModal = new HystModal({
            linkAttributeName: "data-hystmodal",
            waitTransitions: true,
            backscroll: false
        });
        {% if currentCustomer.subscribed %}
        const isSubscribed = 1;
        {% else %}
        const isSubscribed = 0;
        {% endif %}
    
        function setCookie(name, value, days) {
            var expires = "";
            if (days) {
                var date = new Date();
                date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
                expires = "; expires=" + date.toUTCString();
            }
            document.cookie = name + "=" + (value || "") + expires + "; path=/";
        }
    
        function getCookie(name) {
            var nameEQ = name + "=";
            var ca = document.cookie.split(';');
            for (var i = 0; i < ca.length; i++) {
                var c = ca[i];
                while (c.charAt(0) == ' ') c = c.substring(1, c.length);
                if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length, c.length);
            }
            return null;
        }
    
        function eraseCookie(name) {
            document.cookie = name + '=; Path=/; Expires=Thu, 01 Jan 1970 00:00:01 GMT;';
        }
    
        function updateTopCartCounter(num) {
            let cartNumElements = document.getElementsByClassName('js-cart-num');
            for (let i = 0; i < cartNumElements.length; i++) {
                cartNumElements.item(i).innerText = num;
                if (parseInt(num) > 0) {
                    cartNumElements.item(i).style.display = '';
                } else {
                    cartNumElements.item(i).style.display = 'none';
                }
            }
        }
    
        document.addEventListener("DOMContentLoaded", function (event) {
            {#   grecaptcha.ready(function () {
                grecaptcha.execute('6LcbIpkaAAAAAJ96FSqgr84e8B_CY-OLwDi6vWra', {action: 'login'}).then(function (token) {
                    let list = document.getElementsByClassName('g-recaptcha-response');
                    let n;
                    for (n = 0; n < list.length; ++n) {
                        list[n].value = token;
                    }
                });
            });    #}
        });
    
    </script>
    
    
    {{ render(controller('App\\Controller\\Admin\\ExtScriptController::renderExtScripts',{'head':0})) }}
    {% block scripts %}{% endblock %}
    {{ encore_entry_script_tags('app') }}
    <div class="hystmodal login-modal" id="subscribeModal" aria-hidden="true">
        <div class="hystmodal__wrap">
            <div class="hystmodal__window login-modal__body" style="padding: 0;width: 970px;background-color: transparent;"
                 role="dialog"
                 aria-modal="true">
                <a href="#" data-hystclose class="login-modal__closer" id="js-subscribe-modal-closer">&times;</a>
                {% if currentCustomer.mobile %}
                    {% include 'subscribe/popup-mobile.html.twig' %}
                {% else %}
                    {% include 'subscribe/popup.html.twig' %}
                {% endif %}
            </div>
        </div>
    </div>
    <div class="cookie-agree" id="js-cookie-agree-block" style="
        background-color: #0ea9bd;display: none;
        color: white;
        padding: 15px 0;
        text-align: center;
        font-size: 14px;
        opacity: .93;
        position: fixed;z-index: 99999999999;
        bottom: 0;
        width: 100%;"
    >
        <div style="display: flex;
        align-items: center;
        justify-content: center;">
            <div>
                Нажмите «Ок», если вы соглашаетесь с <a href="https://perina-peroni.ru/info/personal-data" target="_blank">условиями обработки
                    cookie и ваших
                    данных о поведении на сайте</a>, необходимых для аналитики. Запретить обработку cookie вы можете через браузер.
            </div>
            <button id="js-cookie-agree-btn" class="white-btn"
                    style="border: 1px solid #ffffff;background-color: #6ecbd7;color: white;margin-left: 20px">ОK
            </button>
        </div>
    </div>
    {% include 'parts/writeMeWidget.html.twig' %}
    <div id="captcha-container"></div>
    
    </body>
    </html>