templates/includes/side-navigation/navigation.html.twig line 1

Open in your IDE?
  1. {% set lang = app.request.locale %}
  2. {% set defaultId = lang == 'de' ? 21 : 626 %}
  3. {# get root node if there is no document defined (for pages which are routed directly through static route) #}
  4. {% if not document is defined or not document %}
  5.     {% set document = pimcore_document(defaultId) %}
  6. {% endif %}
  7. {# get the document which should be used to start in navigation | default home #}
  8. {% set navStartNode = document.getProperty('navigationRoot') %}
  9. {% if not navStartNode %}
  10.     {% if lang == 'de' %}
  11.         {% set navStartNode = document.getProperty('navigationRootDe') %}
  12.     {% else %}
  13.         {% set navStartNode = document.getProperty('navigationRootEn') %}
  14.     {% endif %}
  15. {% endif %}
  16. {#{% if not navStartNode is instanceof('\\Pimcore\\Model\\Document\\Page') %} #}
  17. {#    {% set navStartNode = pimcore_document(defaultId) %} #}
  18. {#{% endif %} #}
  19. {% set mainNavigation = pimcore_build_nav({
  20.     active: document,
  21.     root: navStartNode
  22. }) %}
  23. {% set alternateLanguagePath = document.getProperty('alternateLanguagePath') %}
  24. {% if alternateLanguagePath %}
  25.     {% set urlPath = alternateLanguagePath.getFullPath() %}
  26.     {% if lang == 'de' %}
  27.         {% set mainNavigation = mainNavigation.addPage({order: -1, label: "De", title:"De", uri: app.request.requestUri(), class: "custom-slection-lang-de" }) %}
  28.         {% set mainNavigation = mainNavigation.addPage({order: -1, label: "En", title:"En", uri: urlPath, class: "custom-slection-lang-en" }) %}
  29.     {% else %}
  30.         {% set mainNavigation = mainNavigation.addPage({order: -1, label: "De", title:"De", uri: urlPath, class: "custom-slection-lang-de" }) %}
  31.         {% set mainNavigation = mainNavigation.addPage({order: -1, label: "En", title:"En", uri: app.request.requestUri(), class: "custom-slection-lang-en" }) %}
  32.     {% endif %}
  33. {% else %}
  34.     {% set url = app.request.requestUri() | replace({'/en/': '/', '/de/': '/'}) %}
  35.     {% if url == '/en' %}
  36.         {% set url = '/' %}
  37.     {% endif %}
  38.     {% set mainNavigation = mainNavigation.addPage({order: -1, label: "De", title:"De", uri: url, class: "custom-slection-lang-de" }) %}
  39.     {% set mainNavigation = mainNavigation.addPage({order: -1, label: "En", title:"En", uri: "/en" ~ url, class: "custom-slection-lang-en" }) %}
  40. {% endif %}
  41. {# later you can render the navigation #}
  42. {{ pimcore_render_nav(mainNavigation) }}
  43. <script>
  44.     document.addEventListener("DOMContentLoaded", function() {
  45.         document.querySelectorAll('.custom-slection-lang-de').forEach((elDe) => {
  46.             elDe.addEventListener('click', (e) => {
  47.                 e.preventDefault();
  48.                 Cookies.set('language', 'de', {expires: 14});
  49.                 
  50.                 window.location.href = elDe.href;
  51.             });
  52.         });
  53.         document.querySelectorAll(".custom-slection-lang-en").forEach((elEn) => {
  54.             elEn.addEventListener("click", (e) => {
  55.                 e.preventDefault();
  56.                 Cookies.set('language', 'en', {expires: 14});
  57.                 window.location.href = elEn.href;
  58.             });
  59.         });
  60.     });
  61. </script>