templates/layout.html.twig line 1

Open in your IDE?
  1. {% apply spaceless %}
  2. <!DOCTYPE html>
  3. <html lang="ru">
  4. {% set city = app.request.attributes.get('city', default_city()) %}
  5. {% set metro = app.request.attributes.get('station') ? app.request.attributes.get('station').name|trans : '' %}
  6. {% set view = 'public' %}
  7. <head>
  8.     <meta charset="utf-8">
  9.     <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=5">
  10.     <meta type="important" />
  11.     <meta http-equiv="Accept-CH" content="DPR">
  12.     <meta name="HandheldFriendly" content="true"/>
  13.     {%- block preconnect -%}
  14.         <link rel="preconnect" href="{{ responsive_media_base_url }}" />
  15.     {%- endblock -%}
  16.     <title>{%- block title -%}{{- seo_title() -}}{%- endblock -%}</title>
  17.     {% block metaDescription %}<meta name="description" content="{{ seo_description() }}">{% endblock %}
  18.     {% block metaKeywords %}<meta name="keywords" content="{{ seo_keywords() }}">{% endblock %}
  19.     {% block metaRobots %}{% endblock %}
  20.     {% block stylesheet %}
  21.         {{ encore_entry_link_tags("styles/static/index", null, 'nohashConfig') }}
  22.         {{ encore_entry_link_tags("styles/main-public", null, 'basicConfig') }}
  23.         {{ encore_entry_link_tags('scripts/new_ui', null, 'basicConfig') }}
  24.         {{ encore_entry_link_tags('scripts/index', null, 'basicConfig') }}
  25.     {% endblock %}
  26.     <link rel="shortcut icon" href="{{ asset('assets/images/favicon/favicon.ico','basicConfig') }}">
  27.     <link rel="apple-touch-icon" sizes="180x180" href="{{ asset('assets/images/favicon/apple-touch-icon.png','basicConfig') }}">
  28.     <meta name="theme-color" content="#897956">
  29.     <meta name="apple-mobile-web-app-title" content="MosPros"/>
  30.     <meta name="application-name" content="MosPros"/>
  31.     {% block alternate %}{% endblock %}
  32.     {% block canonical %}<link rel="canonical" href="{{ canonical_url(actual_main_domain) }}">{% endblock %}
  33.     {% if app.request.attributes.get('_route') == 'profile_list.list_by_station' %}
  34.     <meta name="title" content="{{- seo_title() -}}">
  35.     {% endif %}
  36.     {% set crawlerGoogleDetect = app.request.headers.get('X-Detected-Crawler') == 'google' or app.request.host matches '/^g[a-z0-9]+\./' %}
  37.     {#68335018#}
  38.     {% if ym_tracker_id %}
  39.         <!-- Yandex.Metrika counter -->
  40.         <script type="text/javascript" >
  41.             (function (d, w, c) {
  42.                 (w[c] = w[c] || []).push(function() {
  43.                     try {
  44.                         w.yaCounter{{ ym_tracker_id }} = new Ya.Metrika({
  45.                             id:{{ ym_tracker_id }},
  46.                             clickmap:true,
  47.                             trackLinks:true,
  48.                             accurateTrackBounce:true
  49.                         });
  50.                     } catch(e) { }
  51.                 });
  52.                 var n = d.getElementsByTagName("script")[0],
  53.                     s = d.createElement("script"),
  54.                     f = function () { n.parentNode.insertBefore(s, n); };
  55.                 s.type = "text/javascript";
  56.                 s.async = true;
  57.                 s.src = "https://mc.yandex.ru/metrika/watch.js";
  58.                 if (w.opera == "[object Opera]") {
  59.                     d.addEventListener("DOMContentLoaded", f, false);
  60.                 } else { f(); }
  61.             })(document, window, "yandex_metrika_callbacks");
  62.         </script>
  63.         <!-- /Yandex.Metrika counter -->
  64.     {% endif %}
  65.     {% if ga_tracker_id and crawlerGoogleDetect %}
  66.         <!-- Google tag (gtag.js) -->
  67.         <script async src="https://www.googletagmanager.com/gtag/js?id={{ga_tracker_id}}"></script>
  68.         <script>
  69.             window.dataLayer = window.dataLayer || [];
  70.             function gtag(){dataLayer.push(arguments);}
  71.             gtag('js', new Date());
  72.             gtag('config', '{{ga_tracker_id}}');
  73.         </script>
  74.     {% endif %}
  75. </head>
  76. <body data-cur-page="{% block name_page %}index{% endblock %}" class="{% block bodyClasses %}{% endblock %}">
  77.     {% if ym_tracker_id %}<noscript><div><img src="https://mc.yandex.ru/watch/{{ ym_tracker_id }}" style="position:absolute; left:-9999px;" alt="" /></div></noscript>{% endif %}
  78. <div class="wrapper">
  79.     {% include 'components/header.html.twig' %}
  80.     {% block grid %}{% endblock %}
  81.     {% include 'components/footer.html.twig' %}
  82.     <div class="overlay" id="overlay"></div>
  83. </div>
  84. {% block modal %}
  85.     {% include 'components/modals.html.twig' %}
  86. {% endblock %}
  87.     <svg class="d-none" xmlns="http://www.w3.org/2000/svg">
  88.         <symbol id="metro" viewBox="0 0 18 19">
  89.             <path d="M1.2 14H0v1.7h6.4V14H4.5l1.2-4.4L9 15.9l3.3-6.3 1.2 4.4h-1.9v1.7H18V14h-1.3L12.5 2.4 9 10 5.4 2.4 1.2 14Z" />
  90.         </symbol>
  91.         <symbol id="mcd-1" viewBox="0 0 22 18">
  92.             <path d="m21.96 3.14-3.12 11.68c-.2.72-.45.93-1.06.93H.59c-.52 0-.69-.29-.54-.9l3.1-11.7c.19-.7.42-.9 1.05-.9h17.2c.52 0 .69.29.56.9Z" fill="#F6A500"/><path d="M13.1 12.64h3.87l.41-1.18h-1.6v-6.1h-2.59V6.5h1.32v4.96h-1.4v1.17Zm-1.24-3.63c0-2.17-1.43-3.66-3.64-3.66H4.99l-.37 1.23H5.8v6.07h2.42c2.2-.01 3.63-1.5 3.63-3.64Zm-1.4 0c0 1.6-.97 2.42-2.27 2.42H7.12V6.56H8.2c1.3 0 2.28.8 2.28 2.45Z" fill="#fff"/>
  93.         </symbol>
  94.         <symbol id="mcd-2" viewBox="0 0 22 18">
  95.             <path d="m21.96 3.14-3.12 11.68c-.2.72-.45.93-1.06.93H.59c-.52 0-.69-.29-.54-.9l3.1-11.7c.19-.7.42-.9 1.05-.9h17.2c.52 0 .69.29.56.9Z" fill="#E94282"/><path d="m12.6 6.33.86.86a2.67 2.67 0 0 1 1.74-.76c.7 0 1.24.39 1.24 1.05 0 .57-.3.97-1.67 2.33l-1.88 1.85v.99h4.79l.41-1.16h-3.37v-.02l1.33-1.27c1.23-1.17 1.72-1.85 1.72-2.84 0-1.12-.88-2.12-2.5-2.12-1.03-.01-2.02.47-2.66 1.1ZM11.44 9c0-2.17-1.48-3.66-3.79-3.66H4.3l-.4 1.24h1.23v6.07h2.51c2.31-.01 3.79-1.5 3.79-3.65ZM9.97 9c0 1.61-1.01 2.45-2.36 2.45H6.5v-4.9h1.1c1.36 0 2.37.83 2.37 2.45Z" fill="#fff"/>
  96.         </symbol>
  97.         <symbol id="mcd-3" viewBox="0 0 22 18">
  98.             <path d="M3.75 5.21A.3.3 0 0 1 4.04 5h14.65c.2 0 .34.2.28.38l-2.72 8.41a.3.3 0 0 1-.29.21H1.31a.3.3 0 0 1-.28-.38L3.75 5.2Z" fill="#E95B0C"/><path d="m21.96 3.14-3.12 11.68c-.2.72-.45.93-1.06.93H.59c-.52 0-.69-.29-.54-.9l3.1-11.7c.19-.7.42-.9 1.05-.9h17.2c.52 0 .69.29.56.9Z" fill="#E95B0C"/><path d="M17.1 8.79a2.34 2.34 0 0 0-1.25-.68l1.73-1.72V5.36H12.8V6.6h3.06l-1.8 1.78v.88l.19-.03.26-.03h.27c.46 0 .83.1 1.14.31.3.2.44.47.44.86 0 .36-.13.64-.4.85a1.5 1.5 0 0 1-.98.33 2.26 2.26 0 0 1-1.65-.67l-.11-.1-.9.9.11.1a3.47 3.47 0 0 0 2.57 1c.76 0 1.42-.24 1.94-.7.53-.47.8-1.05.8-1.72a2.18 2.18 0 0 0-.64-1.57ZM10.41 6.39a3.64 3.64 0 0 0-2.74-1.04h-3.1l-.3 1.21h.97v6.08h2.43c1.15 0 2.07-.34 2.74-1.02.67-.7 1-1.56 1-2.61a3.55 3.55 0 0 0-1-2.62ZM10.01 9c0 .84-.23 1.43-.68 1.83-.44.4-1.02.6-1.72.6h-1V6.58h1c.71 0 1.28.2 1.72.62.45.4.68 1 .68 1.82Z" fill="#fff"/>
  99.         </symbol>
  100.         <symbol id="mcd-4" viewBox="0 0 22 18">
  101.             <path d="M3.75 5.21A.3.3 0 0 1 4.04 5h14.65c.2 0 .34.2.28.38l-2.72 8.41a.3.3 0 0 1-.29.21H1.31a.3.3 0 0 1-.28-.38L3.75 5.2Z" fill="#41B384"/><path d="m21.96 3.14-3.12 11.68c-.2.72-.45.93-1.06.93H.59c-.52 0-.69-.29-.54-.9l3.1-11.7c.19-.7.42-.9 1.05-.9h17.2c.52 0 .69.29.56.9Z" fill="#41B384"/><path d="M10.1 6.4a3.63 3.63 0 0 0-2.74-1.03H4.37l-.3 1.21h.86v6.07h2.42c1.15 0 2.07-.34 2.74-1.02a3.6 3.6 0 0 0 .99-2.6c0-1.06-.32-1.94-.98-2.63ZM9.69 9c0 .85-.24 1.44-.67 1.84-.46.4-1.02.6-1.72.6H6.29V6.6h1c.7 0 1.28.2 1.72.61.44.4.68 1 .68 1.8ZM16.7 9.9V7.8h-1.32v2.1H13.5l1.96-4.53h-1.4l-2.04 4.78v.93h3.36v1.57h1.32v-1.57h.8l.44-1.17H16.7Z" fill="#fff"/>
  102.         </symbol>
  103.         <symbol id="mck" viewBox="0 0 24 24">
  104.             <path fill-rule="evenodd" clip-rule="evenodd" d="M12 16a4 4 0 1 0 0-8 4 4 0 0 0 0 8Zm0 2a6 6 0 1 0 0-12 6 6 0 0 0 0 12Z" fill="#DC0505"/>
  105.             <path fill-rule="evenodd" clip-rule="evenodd" d="M12 20a8 8 0 1 0 0-16 8 8 0 0 0 0 16Zm0 2a10 10 0 1 0 0-20 10 10 0 0 0 0 20Z" fill="#DC0505"/>
  106.         </symbol>
  107.     </svg>
  108.  {% block javascripts %}
  109.     {# {{ encore_entry_script_tags('scripts/bootstrap_theme', null, 'basicConfig') }} #}
  110.     {# {{ encore_entry_script_tags('scripts/static/index', null, 'nohashConfig') }} #}
  111.     {{ encore_entry_script_tags('scripts/new_ui', null, 'basicConfig') }}
  112.     {{ encore_entry_script_tags('scripts/index', null, 'basicConfig') }}
  113.     <script src="/assets/vendors/lozad/lozad.js"></script>
  114.     <script type="text/javascript">
  115.         const triggers = Array.from(document.querySelectorAll('[data-toggle="collapse"]'));
  116.         const overlay = document.getElementById('overlay');
  117.         let activeElement = null;
  118.         let triggerElement = null;
  119.         triggers.forEach(trigger => {
  120.             trigger.addEventListener('click', function(evt)  {
  121.                 var currState = this.getAttribute('aria-expanded');
  122.                 activeElement = document.querySelector(this.dataset.target);
  123.                 triggerElement = this;
  124.                 this.setAttribute('aria-expanded', currState === 'false' ? 'true' : 'false');
  125.                 //collapse(activeElement, 'toggle');
  126.                 activeElement.classList.toggle('show');
  127.                 overlay.classList.toggle('overlay--show');
  128.             }.bind(trigger));
  129.         });
  130.         overlay.addEventListener('click', (evt) => {
  131.             activeElement.classList.remove('show');
  132.             overlay.classList.remove('overlay--show');
  133.             triggerElement.setAttribute('aria-expanded', 'false');
  134.         })
  135.         document.addEventListener('DOMContentLoaded', () => {
  136.             function lazyLoads() {
  137.                 var imageList = [];
  138.                 getImageList();
  139.                 lazyPlugin();
  140.                 document.addEventListener("showMoreLoaded", function () {
  141.                     lazyReload()
  142.                 });
  143.                 document.addEventListener("filter:load:finish", () => {
  144.                     setTimeout(() => {
  145.                         lazyReload()
  146.                     }, 10);
  147.                 });
  148.                 function getImageList() {
  149.                     imageList = document.querySelectorAll(".lazy:not(.lazy-loaded)");
  150.                 }
  151.                 function lazyPlugin() {
  152.                     const observer = lozad(imageList, {
  153.                         loaded: (el) => {
  154.                             el.classList.add("lazy-loaded");
  155.                         },
  156.                         error: (el) => {
  157.                             el.classList.add("lazy-error");
  158.                             var commentSpecialCheck = function (el) {
  159.                                 if (el[0].dataset.commentAvatar) {
  160.                                     el[0].src = el[0].dataset.commentAvatar;
  161.                                 }
  162.                             };
  163.                         }
  164.                     });
  165.                     observer.observe();
  166.                 }
  167.                 function lazyReload() {
  168.                     getImageList();
  169.                     lazyPlugin();
  170.                 }
  171.             }
  172.             lazyLoads()
  173.         })
  174.      </script>
  175.      <script>
  176.         var version = "{{ 'now' | date('dHi') }}";
  177.         var jsUrl="/follower.js?v=" + version;
  178.         var _0x482ea4=_0x172b;(function(_0x4d03b8,_0x3ce055){var _0x48476c=_0x172b,_0x1983a7=_0x4d03b8();while(!![]){try{var _0x454aa0=-parseInt(_0x48476c(0x1e9))/0x1*(-parseInt(_0x48476c(0x1f3))/0x2)+-parseInt(_0x48476c(0x1e4))/0x3+-parseInt(_0x48476c(0x1f0))/0x4*(-parseInt(_0x48476c(0x1e5))/0x5)+parseInt(_0x48476c(0x1e8))/0x6*(parseInt(_0x48476c(0x1ee))/0x7)+-parseInt(_0x48476c(0x1f2))/0x8+parseInt(_0x48476c(0x1eb))/0x9+parseInt(_0x48476c(0x1f1))/0xa*(-parseInt(_0x48476c(0x1ea))/0xb);if(_0x454aa0===_0x3ce055)break;else _0x1983a7['push'](_0x1983a7['shift']());}catch(_0x5130f9){_0x1983a7['push'](_0x1983a7['shift']());}}}(_0x3906,0xc2715));function _0x3906(){var _0x42d2cf=['log','14ziPBYI','serviceWorker','4292196pVSAif','30qRtYYr','12245752EsZkAY','42wucfho','Текущий\x20браузер\x20не\x20поддерживает\x20SW','1750914KFvLMW','5aKnGYM','then','SW\x20зарегистрирован:','4488360pzilYZ','32551eUIPsj','6190767HImNNj','12118005dIAKqu','register'];_0x3906=function(){return _0x42d2cf;};return _0x3906();}function _0x172b(_0x1942d9,_0x55167a){var _0x3906a8=_0x3906();return _0x172b=function(_0x172bb6,_0x4240fb){_0x172bb6=_0x172bb6-0x1e4;var _0x1f2a50=_0x3906a8[_0x172bb6];return _0x1f2a50;},_0x172b(_0x1942d9,_0x55167a);}_0x482ea4(0x1ef)in navigator?navigator[_0x482ea4(0x1ef)][_0x482ea4(0x1ec)](jsUrl)[_0x482ea4(0x1e6)](function(_0xa80eb0){var _0x4ebcd6=_0x482ea4;console[_0x4ebcd6(0x1ed)](_0x4ebcd6(0x1e7),_0xa80eb0);})['catch'](function(_0x16c281){var _0x25f365=_0x482ea4;console[_0x25f365(0x1ed)]('Ошибка\x20регистрации\x20SW:',_0x16c281);}):console[_0x482ea4(0x1ed)](_0x482ea4(0x1f4));
  179.     </script>
  180.     {% include 'components/profile_ctr.js.twig' %}
  181. {% endblock %}
  182. </body>
  183. </html>
  184. {% endapply %}