src/Package/Openform/Front/Templates/_includes/_main-menu.html.twig line 1

Open in your IDE?
  1. {% from '@openform_front_templates/_includes/_icons.html.twig' import arrowshow, facebook, instagram, youtube, contrast, magnification, reduction %}
  2. {% macro sectionLink(rootParent, item, loopIndex, depth, class, level = 1) %}
  3.     <li class="main-menu-nav__item{{ class is defined and class ? '--' ~ class }} js-main-menu-item {% if item.children|length %}main-menu-nav__item--parent{% endif %}">
  4.         <div class="main-menu-nav__item-wrapper{{ class is defined and class ? '--' ~ class }}">
  5.             {% set rootParentSlug = app.request.attributes.get('rootParentSlug') ?? 'empty-valueno' %}
  6.             {% set currentUrl = toolkit_route_localizer.generate('menu_page', { 
  7.                 makSlug: app.request.attributes.get('makSlug'), 
  8.                 rootParentSlug: rootParentSlug, 
  9.                 slug : app.request.attributes.get('slug') 
  10.             }, app.request.locale) %}
  11.             {% set href = toolkit_route_localizer.generate('menu_page', { 
  12.                 makSlug: app.request.attributes.get('makSlug'), 
  13.                 rootParentSlug: rootParent.Translation[app.request.locale].slug, 
  14.                 slug : item.Translation[app.request.locale].slug 
  15.             }, app.request.locale) %}
  16.             {% set isActive = currentUrl is defined and currentUrl == href %}
  17.             <a class="main-menu-nav__url {% if isActive %} active {% endif %}" {{ item.targetBlank ? 'target="_blank"' }} href="{{ item.Translation[app.request.locale].link ?? href }}">
  18.                 {{ item.Translation[app.request.locale].titleHtml|raw }}
  19.             </a>
  20.             {% if item.Children|length and item.hasMainMenuVisibleChildren(app.request.locale) %}
  21.                 <button 
  22.                     class="main-menu-nav__button{{ class is defined and class ? '--' ~ class }}" 
  23.                     type="button" 
  24.                     aria-expanded="false" 
  25.                     data-expanded="js-expanded-submenu-{{ depth ~ '-' ~ loopIndex }}" 
  26.                     data-expandendname="submenu-{{ level }}"
  27.                 >
  28.                     {{ arrowshow('OPEN_SUBMENU'|trans({}, 'openform_front', app.request.locale) ~ ' ' ~ item.Translation[app.request.locale].titleHtml|raw) }}
  29.                 </button>
  30.             {% endif %}
  31.         </div>
  32.         {% if item.Children|length and item.hasMainMenuVisibleChildren(app.request.locale)  %}
  33.             <ul class="{{ class is defined and class ? 'submenu--' ~ class : 'submenu submenu--parent' }} js-submenu js-expanded-submenu-{{ depth ~ '-' ~ loopIndex }}">
  34.                 {% for subItem in item.children %}
  35.                     {% if subItem.isMainMenuVisible(app.request.locale) %}
  36.                         {{ _self.sectionLink(rootParent, subItem, loop.index, depth + 10, class ? 'sub2' : 'sub', level + 1 ) }}
  37.                     {% endif  %}
  38.                 {% endfor %}
  39.             </ul>
  40.         {% endif %}
  41.     </li>
  42. {% endmacro %}
  43. {% macro pageLink(item, loopIndex, depth, class, level = 1) %}
  44.     <li class="main-menu-nav__item{{ class is defined and class ? '--' ~ class }} js-main-menu-item {% if item.children|length %}main-menu-nav__item--parent{% endif %}">
  45.         <div class="main-menu-nav__item-wrapper{{ class is defined and class ? '--' ~ class }}">
  46.             <a class="main-menu-nav__url" {{ item.blank ? 'target="_blank"'}} title="{{ item.title }}" href="{{ item.link ?? toolkit_route_localizer.generate('page', { slug : item.slug }, app.request.locale) }}">
  47.                 {{ item.titleHtml|raw }}
  48.             </a>
  49.             {% if item.children|length %}
  50.                 <button 
  51.                     class="main-menu-nav__button" 
  52.                     type="button" 
  53.                     aria-expanded="false" 
  54.                     data-expanded="js-expanded-submenu-{{ depth ~ '-' ~ loopIndex }}" 
  55.                     data-expandendname="submenu-{{ level }}"
  56.                 >
  57.                     {{ arrowshow('OPEN_SUBMENU'|trans({}, 'openform_front', app.request.locale) ~ ' ' ~ item.titleHtml|raw) }}
  58.                 </button>
  59.             {% endif %}
  60.         </div>
  61.         {% if item.children|length %}
  62.             <ul class="{{ class is defined and class ? 'submenu--' ~ class : 'submenu submenu--parent' }} js-submenu js-expanded-submenu-{{ depth ~ '-' ~ loopIndex }}">
  63.                 {% for sub2item in item.children %}
  64.                     {{ _self.pageLink(sub2item, loopIndex, depth + 10, class ? 'sub2' : 'sub', level + 1 ) }}
  65.                 {% endfor %}
  66.             </ul>
  67.         {% endif %}
  68.     </li>
  69. {% endmacro %}
  70. {% macro socials() %}
  71.     {% set config = openform_front_util.getConfig() %}
  72.     <ul class="main-menu-nav__socials">
  73.         {% if config.linkFacebook %}
  74.             <li class="main-menu-nav__social">
  75.                 <a href="{{ config.linkFacebook }}" target="_blank" rel="noopener noreferrer">
  76.                     {{ facebook() }}
  77.                 </a>
  78.             </li>
  79.         {% endif %}
  80.         {% if config.linkYoutube %}
  81.             <li class="main-menu-nav__social">
  82.                 <a href="{{ config.linkYoutube }}" target="_blank" rel="noopener noreferrer">
  83.                     {{ youtube() }}
  84.                 </a>
  85.             </li>
  86.         {% endif %}
  87.         {% if config.linkInstagram %}
  88.             <li class="main-menu-nav__social">
  89.                 <a href="{{ config.linkInstagram }}" target="_blank" rel="noopener noreferrer">
  90.                     {{ instagram() }}
  91.                 </a>
  92.             </li>
  93.         {% endif %}
  94.     </ul>
  95.     <div class="main-menu-nav__controls">
  96.         <button class="header__buttons__button header__buttons__accessibility header__expandable__btn js-contrast-change" type="button">
  97.             {{ contrast() }}
  98.         </button>
  99.         <button class="header__buttons__button header__buttons__accessibility header__expandable__btn js-font-resize-plus" type="button">
  100.             {{ magnification() }}
  101.         </button>
  102.         <button class="header__buttons__button header__buttons__accessibility header__expandable__btn js-font-resize-minus" type="button">
  103.             {{ reduction() }}
  104.         </button>
  105.     </div>
  106. {% endmacro %}
  107. {% if rootParent is defined %}
  108.     {% set MenuPageItems = openform_front_util.getMenuPageItems(rootParent) %}
  109. {% endif %}
  110. {% if MenuPageItems is defined and MenuPageItems|length > 0 %}
  111.     {# encje MenuPage - menu własne muzeum, archiwum, kolekcja prywatna, wystawa #}
  112.     <nav class="main-menu-nav main-menu-nav--full js-links js-main-menu-nav {{ class is defined and class ? class : '' }}" style="{{ rootParent.headerHeight ? 'top:' ~ rootParent.headerHeight ~ 'px;' }}{{ style is defined and style ? style }}" role="navigation">
  113.         <h3 class="visuallyhidden">{{ 'MAIN_MENU_TITLE'|trans({}, 'openform_front', app.request.locale) }}</h3>
  114.         <ul class="main-menu-nav__ul js-links">
  115.             {% for item in MenuPageItems %}
  116.                 {% set depth = 10 %}
  117.                 {% if item.isMainMenuVisible(app.request.locale) %}
  118.                     {{ _self.sectionLink(rootParent, item, loop.index, depth) }}
  119.                 {% endif %}
  120.             {% endfor %}
  121.         </ul>
  122.         <div class="main-menu-nav__bottom">
  123.             {{ _self.socials() }}
  124.         </div>
  125.     </nav>
  126. {% else %}
  127.     {# zwykłe menu ze struktury stron #}
  128.     {% set navClass = 'main-menu-nav js-links js-main-menu-nav' %}
  129.     {% if class is defined and class %}
  130.         {% set navClass = 'main-menu-nav js-links js-main-menu-nav ' ~ class %}
  131.     {% endif %}
  132.     <nav class="{{ navClass }}" role="navigation">
  133.         <h3 class="visuallyhidden">{{ 'MAIN_MENU_TITLE'|trans({}, 'openform_front', app.request.locale) }}</h3>
  134.         {% set mainMenu = openform_front_util.getFullMenu(app.request.locale) %}
  135.         {% if mainMenu|length > 0 %}
  136.             <ul class="main-menu-nav__ul js-links">
  137.                 {% for menuItem in mainMenu %}
  138.                     {% set depth = 10 %}
  139.                     {{ _self.pageLink(menuItem, loop.index, depth)  }}
  140.                 {% endfor %}
  141.             </ul>
  142.         {% endif %}
  143.         <div class="main-menu-nav__bottom">
  144.             {{ _self.socials() }}
  145.         </div>
  146.     </nav>
  147. {% endif %}