templates/layout/base.html.twig line 1

  1. <!DOCTYPE html>
  2. <html lang="{{ app.request.locale|lower }}">
  3. <head>
  4.     <meta charset="utf-8">
  5.     <meta content="width=device-width, initial-scale=1, user-scalable=no" name="viewport">
  6.     <meta content="ie=edge" http-equiv="x-ua-compatible">
  7.     <title>{% block title %}{{ title() }}{% endblock %}</title>
  8.     <link rel="apple-touch-icon" sizes="180x180" href="{{ asset('build/images/favicon/apple-touch-icon.png') }} ">
  9.     <link rel="icon" type="image/png" sizes="32x32" href="{{ asset('build/images/favicon/favicon-32x32.png') }} ">
  10.     <link rel="icon" type="image/png" sizes="16x16" href="{{ asset('build/images/favicon/favicon-16x16.png') }} ">
  11.     <meta name="theme-color" content="#641349">
  12.     {#    <link rel="manifest" href="/site.webmanifest"> #}
  13.     {#    <link rel="mask-icon" href="/safari-pinned-tab.svg" color="#5bbad5"> #}
  14.     {#    <meta name="msapplication-TileColor" content="#da532c"> #}
  15.     {% block stylesheets %}
  16.         {{ encore_entry_link_tags('app') }}
  17.     {% endblock %}
  18.     <link rel="icon" href="{{ asset('build/images/favicon/favicon.ico') }}" type="image/x-icon">
  19.     <link rel="alternate" type="application/rss+xml" title="{{ "site.rss_name"|trans }}" href="{{ url('news_rss') }}"/>
  20. </head>
  21. <body class="{% block body_class "" %}">
  22. {% if config_value('mainpage','olymp-popup') and (hide_olympiad_invite is not defined or hide_olympiad_invite == false) %}
  23.     {{ render(controller(
  24.         'App\\Controller\\Frontend\\OlympOnline\\OnlineController::widgetHeader'
  25.     )) }}
  26. {% endif %}
  27. <header class="header">
  28.     <div class="header__header-top navbar">
  29.         <div class="header__header-top-inner container">
  30.             <a class="logo" href="{{ path('main_olymp') }}">
  31.                 <img src="{{ asset('build/images/logo.'~app.request.locale~'.svg') }}" class="logo-big"
  32.                      alt="{{ "site.title"|trans }}">
  33.                 <img src="{{ asset('build/images/logo.svg') }}" class="logo-small"
  34.                      alt="{{ "site.title"|trans }}">
  35.             </a>
  36.             {% if app.request.locale=='ru' %}
  37.             {# <div class="header-item banner">
  38.                   <a class="button-d reg-banner mr-3" href="https://sodrujestvo.org/ru">Пригласительный этап</a>
  39.                     <a class="button-d reg-banner" href="https://sodrujestvo.org/ru/olympiad-qualifying"><strong>Отборочный
  40.                             этап</strong></a>
  41.                 </div> #}
  42.             {% endif %}
  43.             {% if app.request.locale=='en' %}
  44.             {# <div class="header-item banner">
  45.                   <a class="button-d reg-banner  mr-3" href="https://sodrujestvo.org/en">
  46.                         Invitation stage
  47.                     </a>
  48.                     <a class="button-d reg-banner  " href="https://sodrujestvo.org/en/olympiad-qualifying">
  49.                         <strong>Eliminatory stage</strong>
  50.                     </a>
  51.                 </div>  #}
  52.             {% endif %}
  53.             <div class="header-item">
  54.                 {#                    <div class="banner"> <a href="https://sodrujestvo.org" class="sodrujestvo"><img src="{{ asset('build/images/header/sodrujestvo.png') }}"></a></div> #}
  55.                 {% if app.request.locale=='ru' %}
  56.                     <div class="social">
  57.                         <a href="https://t.me/rosfinolymp" target="_blank"><i class="fab fa-telegram-plane"></i></a>
  58.                         <a href="https://vk.com/rosfinolymp" target="_blank"><i class="fab fa-vk"></i></a>
  59.                     </div>
  60.                 {% endif %}
  61.             </div>
  62.             <div class="header-item">
  63.                 {% if app.request.locale!='ru' %}
  64.                     <a class="header__button header__choose_locale"
  65.                        href="{{ path(app.request.attributes.get('_route')|default('main_olymp'),app.request.attributes.get('_route_params')|default({})|merge(app.request.query.all)|merge({'_locale':'ru'})) }}">Русская
  66.                         версия</a>
  67.                 {% endif %}
  68.                 {% if app.request.locale!='en' %}
  69.                     <a class="header__button header__choose_locale"
  70.                        href="{{ path(app.request.attributes.get('_route')|default('main_olymp'),app.request.attributes.get('_route_params')|default({})|merge(app.request.query.all)|merge({'_locale':'en'})) }}">English
  71.                         version</a>
  72.                 {% endif %}
  73.             </div>
  74.             <div class="header__profile">
  75.                 {% if is_granted("IS_AUTHENTICATED_REMEMBERED") %}
  76.                     <a class="header__button header__profile-button"
  77.                        data-toggle="dropdown">{{ app.user.fullname|default(("user.default_name"|trans)) }}</a>
  78.                     <div class="header__profile-menu-wrapper">
  79.                         <div class="header__profile-menu dropdown-menu">
  80.                             <a class="header__profile-menu-link" href="{{ path('lk_main') }}"><i
  81.                                         class="far fa-user"></i>{{ "site.header.profile"|trans }}</a>
  82.                             {% if is_granted('olymp_profile_link') %}
  83.                                 <a class="header__profile-menu-link" href="{{ path('lk_olymp') }}"><i
  84.                                             class="fas fa-user-graduate"></i>Управление
  85.                                     олимпиадами</a>
  86.                             {% endif %}
  87.                             {% if is_granted('ROLE_REVIEW_MODERATOR') %}
  88.                                 <a class="header__profile-menu-link"
  89.                                    href="{{ path('review_moderator', {olymp_id:60}) }}"><i
  90.                                             class="fas fa-comment"></i>Отзывы</a>
  91.                             {% endif %}
  92.                             {% if is_granted('org_profile_link') %}
  93.                                 <a class="header__profile-menu-link" href="{{ path('lk_org') }}"><i
  94.                                             class="far fa-cog"></i>Управление
  95.                                     организацией</a>
  96.                             {% endif %}
  97.                             {% if is_granted('ROLE_ADMIN') %}
  98.                                 <a class="header__profile-menu-link"
  99.                                    href="{{ path('admin_default_main',{'_locale':'ru'}) }}"><i
  100.                                             class="fas fa-tools"></i>Админ. панель</a>
  101.                             {% endif %}
  102.                             {% if is_granted('ROLE_PARTICIPANT_VIEW') %}
  103.                                 <a class="header__profile-menu-link"
  104.                                    href="{{ path('online_p_search',{'_locale':'ru'}) }}"><i
  105.                                             class="fas fa-search"></i>Поиск участников</a>
  106.                             {% endif %}
  107.                             {% if is_granted('ROLE_STAT') %}
  108.                                 <a class="header__profile-menu-link"
  109.                                    href="{{ path('olympiad_stat',{id:60,'_locale':'ru'}) }}"><i
  110.                                             class="fas fa-chart-line"></i>Статистика</a>
  111.                             {% endif %}
  112.                             <a class="header__profile-menu-link" href="{{ path('app_logout') }}"><i
  113.                                         class="far fa-sign-out"></i>{{ "site.header.logout"|trans }}</a></div>
  114.                     </div>
  115.                 {% else %}
  116.                     <a class="header__button header__account" href="{{ path('login') }}"><i
  117.                                 class="far fa-user"></i>{{ 'site.login'|trans }}</a>
  118.                 {% endif %}
  119.             </div>
  120.             <a class="header__button header__mobile-menu" data-toggle="collapse" data-target=".mobile-menu"><i
  121.                         class="far fa-bars"></i></a>
  122.         </div>
  123.         <div class="mobile-menu navbar-nav collapse">
  124.             <div class="mobile-menu__account">
  125.                 {% if is_granted("IS_AUTHENTICATED_REMEMBERED") %}
  126.                     <div class="mobile-menu__profile">
  127.                         {#                        <a class="mobile-menu__profile-action fal fa-cog" href="{{ path('lk_main') }}"></a> #}
  128.                         <div class="mobile-menu__profile-name">{{ app.user.fullname|default(("user.default_name"|trans)) }}</div>
  129.                         <a class="mobile-menu__profile-action fal fa-sign-out" href="{{ path('app_logout') }}"></a>
  130.                     </div>
  131.                     <div class="mobile-menu__organization">
  132.                         <a class="" href="{{ path('lk_main') }}"><i
  133.                                     class="far fa-user"></i> {{ "site.header.profile"|trans }}</a>
  134.                     </div>
  135.                     {% if is_granted('org_profile_link') %}
  136.                         <div class="mobile-menu__organization"><a href="{{ path('lk_org') }}">Управление
  137.                                 организацией</a>
  138.                             {# <div class="mobile-menu__organization-selection dropdown-menu"><a class="mobile-menu__organization-link" href="#">Московский
  139.                             авиационный институт</a><a class="mobile-menu__organization-link" href="#">Российский
  140.                             университет дружбы народов</a></div> #}
  141.                         </div>
  142.                     {% endif %}
  143.                     {% if is_granted('ROLE_REVIEW_MODERATOR') %}
  144.                         <div class="mobile-menu__organization"><a
  145.                                     href="{{ path('review_moderator', {olymp_id:60}) }}">Отзывы</a>
  146.                         </div>
  147.                     {% endif %}
  148.                     {% if is_granted('ROLE_ADMIN') %}
  149.                         <div class="mobile-menu__organization"><a
  150.                                     href="{{ path('admin_default_main',{'_locale':'ru'}) }}">Админ.
  151.                                 панель</a>
  152.                         </div>
  153.                     {% endif %}
  154.                     {% if is_granted('ROLE_PARTICIPANT_VIEW') %}
  155.                         <div class="mobile-menu__organization"><a class=""
  156.                                                                   href="{{ path('online_p_search',{'_locale':'ru'}) }}">Поиск
  157.                                 участников</a></div>
  158.                     {% endif %}
  159.                 {% else %}
  160.                     <div class="mobile-menu__account-actions">
  161.                         <a class="mobile-menu__account-login" href="{{ path('login') }}">
  162.                             <i class="far fa-user"></i>{{ 'site.login'|trans }}</a>
  163.                         {# <a class="mobile-menu__account-registration"
  164.                            href="{{ path('registration') }}">{{ 'site.registration'|trans }}</a> #}
  165.                     </div>
  166.                 {% endif %}
  167.             </div>
  168.             {# <ul class="mobile-menu__nav">
  169.                 <li class="mobile-menu__link"><a href="{{ path('olympiads') }}">Олимпиады</a></li>
  170.                 <li class="mobile-menu__link"><a href="{{ path('vuz') }}">Вузы</a></li>
  171.                 <li class="mobile-menu__link"><a href="{{ path('events') }}">События</a></li>
  172.                 <li class="mobile-menu__link"><a href="{{ path('news') }}">Новости</a></li>
  173.             </ul> #}
  174.         </div>
  175.     </div>
  176.     {# <div class="header__header-top navbar">
  177.         <div class="header__header-top-inner container"><a class="logo" href="{{ path('main') }}"><img
  178.                         src="{{ asset('build/images/logo.png') }}"
  179.                         alt="Олимпиада"></a>
  180.             {% if is_granted("IS_AUTHENTICATED_REMEMBERED") %}
  181.             <a class="header__button header__account" href="{{ path('lk_main') }}">
  182.                 <i class="far fa-user"></i>
  183.                 <span>Профиль</span>
  184.             </a>
  185.             <a class="header__button header__account" href="{{ path('app_logout') }}">
  186.                 <i class="fas sign-out-alt"></i>
  187.                 <span>Выйти</span>
  188.             </a>
  189.         {% else %}
  190.             <a
  191.                     class="header__button header__account" href="{{ path('login') }}"><i
  192.                         class="far fa-user"></i><span>Войти</span></a>
  193.             {% endif %}<a
  194.                     class="header__button header__mobile-menu" data-toggle="collapse" data-target=".mobile-menu"><i
  195.                         class="far fa-bars"></i></a></div>
  196.         <div class="mobile-menu collapse">
  197.             <ul class="mobile-menu__nav navbar-nav">
  198.                 <li class="mobile-menu__link"><a data-toggle="dropdown"><span>Профиль</span><i
  199.                                 class="far fa-chevron-down"></i></a>
  200.                     <div class="mobile-menu__profile dropdown-menu"><a class="mobile-menu__profile-link" href="#">Настройки</a><a
  201.                                 class="mobile-menu__profile-link" href="#">Выйти</a></div>
  202.                 </li>
  203.                 <li class="mobile-menu__link"><a href="{{ path('olympiads') }}">Олимпиады</a></li>
  204.                 <li class="mobile-menu__link"><a href="{{ path('vuz') }}">Вузы</a></li>
  205.                 <li class="mobile-menu__link"><a href="{{ path('events') }}">События</a></li>
  206.                 <li class="mobile-menu__link"><a href="{{ path('news') }}">Новости</a></li>
  207.     #}{# <li class="mobile-menu__link"><a href="/">Форум</a></li> #}{#
  208.     </ul>
  209. </div>
  210. </div> #}
  211.     {# <nav class="header__nav">
  212.         <div class="header__nav-inner container">
  213.             <ul class="header__menu">
  214.                 <li class="header__menu-link"><a href="{{ path('olympiads') }}">Олимпиады</a></li>
  215.                 <li class="header__menu-link"><a href="{{ path('vuz') }}">Вузы</a></li>
  216.                 <li class="header__menu-link"><a href="{{ path('events') }}">События</a></li>
  217.                 <li class="header__menu-link"><a href="{{ path('news') }}">Новости</a></li>
  218.             </ul>
  219.             <a class="header__link" href="{{ path('support_page') }}">Поддержка</a></div>
  220.     </nav> #}
  221. </header>
  222. {% block body %}{% endblock %}
  223. <footer class="footer">
  224.     <div class="footer__footer-top">
  225.         <div class="footer-2 container">
  226.             <a class="logo" href="{{ path('main_olymp') }}">
  227.                 <img src="{{ asset('build/images/logo.svg') }}" alt="{{ "site.title"|trans }}">
  228.             </a>
  229.             <div class="contacts">
  230.                 {{ config_value('footer','contacts-'~app.request.locale)|raw }}
  231.             </div>
  232.             <div class="documents">
  233.                 {{ config_value('footer','doc-'~app.request.locale)|raw }}
  234.             </div>
  235.             <div class="footer__copyright">© {% if  "now"|date('Y') != 2020 %}2020 - {% endif %}{{ "now"|date('Y') }}
  236.                 {{ 'site.copyright'|trans }} «{{ "site.title"|trans }}»
  237.             </div>
  238.         </div>
  239.         {#   <div class="footer__footer-top-inner container"><a class="logo" href="{{ path('main_olymp') }}">
  240.                 <img src="{{ asset('build/images/logo.svg') }}" alt="{{ "site.title"|trans }}">
  241.             </a>
  242.             <nav class="footer__nav">
  243.                 <ul class="footer__menu">
  244.         #}{#    <li class="footer__menu-link"><a href="">Олимпиады</a></li>
  245.                     <li class="footer__menu-link"><a href="">Вузы</a></li>
  246.                     <li class="footer__menu-link"><a href="">События</a></li>
  247.                     <li class="footer__menu-link"><a href="">Новости</a></li>
  248.         #}{#
  249.         #}{#  <li class="footer__menu-link"><a href="{{ path('static-page',{
  250.                             url:'association'
  251.                         }) }}">Ассоциация</a></li> #}{#
  252.         </ul>
  253.     </nav>
  254. </div> #}
  255.     </div>
  256.     {# <div class="footer__footer-bottom">
  257.         <div class="footer__footer-bottom-inner container">
  258.     #}{# <a class="footer__visually-impaired" href="/"><i
  259.                         class="far fa-eye"></i><span>Версия для слабовидящих</span></a> #}{#
  260.     <div class="footer__copyright">© {% if  "now"|date('Y') != 2020 %}2020 - {% endif %}{{ "now"|date('Y') }}
  261.         {{ 'site.copyright'|trans }} «{{ "site.title"|trans }}»
  262.     </div>
  263. </div>
  264. </div> #}
  265. </footer>
  266. {% if config_value('mainpage','olymp-popup') and (hide_olympiad_invite is not defined or hide_olympiad_invite == false) %}
  267.     {{ render(controller(
  268.         'App\\Controller\\Frontend\\OlympOnline\\OnlineController::widgetPopup'
  269.     )) }}
  270. {% endif %}
  271. {# {{ encore_entry_script_tags('page/index') }} #}
  272. {% block javascripts %}
  273.     {{ encore_entry_script_tags('app') }}
  274. {% endblock %}
  275. {% if GOOGLE_ANALYTICS %}
  276.     <!-- Global site tag (gtag.js) - Google Analytics -->
  277.     <script async src="https://www.googletagmanager.com/gtag/js?id={{ GOOGLE_ANALYTICS }}"></script>
  278.     <script>
  279.         window.dataLayer = window.dataLayer || [];
  280.         function gtag() {
  281.             dataLayer.push(arguments);
  282.         }
  283.         gtag('js', new Date());
  284.         gtag('config', '{{ GOOGLE_ANALYTICS }}');
  285.     </script>
  286. {% endif %}
  287. {% if YANDEX_METRIKA %}
  288.     <!-- Yandex.Metrika counter -->
  289.     <script type="text/javascript">
  290.         (function (m, e, t, r, i, k, a) {
  291.             m[i] = m[i] || function () {
  292.                 (m[i].a = m[i].a || []).push(arguments)
  293.             };
  294.             m[i].l = 1 * new Date();
  295.             k = e.createElement(t), a = e.getElementsByTagName(t)[0], k.async = 1, k.src = r, a.parentNode.insertBefore(k, a)
  296.         })
  297.         (window, document, "script", "https://mc.yandex.ru/metrika/tag.js", "ym");
  298.         ym({{ YANDEX_METRIKA }}, "init", {
  299.             clickmap: true,
  300.             trackLinks: true,
  301.             accurateTrackBounce: true
  302.         });
  303.     </script>
  304.     <noscript>
  305.         <div><img src="https://mc.yandex.ru/watch/{{ YANDEX_METRIKA }}" style="position:absolute; left:-9999px;"
  306.                   alt=""/></div>
  307.     </noscript>
  308.     <!-- /Yandex.Metrika counter -->
  309. {% endif %}
  310. </body>
  311. </html>