templates/includes/frontend-incl-fuss.html.twig line 1

Open in your IDE?
  1. <!-- Fuss include -->
  2. <script type="text/javascript">
  3.     //------------------------------------------------------------------------------------------------
  4.     // Basic Config
  5.     //------------------------------------------------------------------------------------------------
  6.     if (typeof selt === 'undefined') {
  7.         selt = {};
  8.     }
  9.     selt.language      = "{{ document.getProperty('language') }}";
  10.     selt.domain        = "{{ document.getRealFullpath() }}";
  11.    {# selt.datadomain    = "{{ devdomain }}";
  12.     selt.imagedomain   = "{{ imagedomain }}";
  13.     selt.absoluterPfad = '{{ domain }}'; 
  14.     selt.i18n = {
  15.         prev: '{{ pager_back | trans }}',
  16.         next: '{{ pager_next | trans }}',
  17.         von: '{{ suchepager_von | trans }}'
  18.     }; #}
  19. </script>
  20. {% set lg = document.getProperty('language') %}
  21. {% set h1 = document.getProperty('h1') %}
  22. <div style="display: none;" class="languageselector" id="languageselector">
  23.     {% if h1 is not empty %}
  24.         <h1>{{ sprachweiche_title }}</h1>
  25.     {% else %}
  26.         <h2>{{ sprachweiche_title }}</h2>
  27.     {% endif %}
  28.     <span>{{ sprachweiche_text | raw}}</span><br/><br/>
  29.     <div class="buttns">
  30.         <button onclick="selt.saveLanguagePreference('en')" class="btn">{{ sprachweiche_button_yes }}</button>
  31.         <button class="btn" onclick="selt.saveLanguagePreference('de')">{{ sprachweiche_button_no }}</button>
  32.     </div>
  33. </div>
  34. <script type="text/javascript">
  35.     (function () {
  36.         var moduleName = 'language_selection';
  37.         if (typeof selt === 'undefined') {
  38.             selt = {
  39.                 modules: {}
  40.             };
  41.         } else if (!selt.modules) {
  42.             selt.modules = {};
  43.         }
  44.         selt.modules[moduleName] = {
  45.             name: moduleName,
  46.             init: function () {
  47.                 languageSelection();
  48.                 $(".languageswitcher a").click(function (e) {
  49.                     var hreflang = $(this).attr('hreflang');
  50.                     Cookies.set('language', hreflang, {expires: 14});
  51.                     console.log("Handler for .click() called - " + hreflang);
  52.                 });
  53.             }
  54.         };
  55.         function browserLanguage() {
  56.             var browserLanguageArray = [];
  57.             if (typeof navigator !== 'undefined') {
  58.                 if (navigator.languages) { // chrome only; not an array, so can't use .push.apply instead of iterating
  59.                     for (var i = 0; i < navigator.languages.length; i++) {
  60.                         browserLanguageArray.push(navigator.languages[i]);
  61.                     }
  62.                 } else if (navigator.language) {
  63.                     browserLanguageArray.push(navigator.language);
  64.                 }
  65.             }
  66.             return browserLanguageArray.length > 0 ? browserLanguageArray[0] : undefined;
  67.         }
  68.         languageSelection = function () {
  69.             {% set alternateLanguagePath = document.getProperty('alternateLanguagePath') %}
  70.             {% if alternateLanguagePath %}
  71.             {% set urlPath = alternateLanguagePath.getFullPath() %}
  72.             {% else %}
  73.             {% set urlPath = app.request.requestUri() | replace({'/en/': '/', '/de/': '/'}) %}
  74.             {% endif %}
  75.             var langPreference  = Cookies.get('language'),
  76.                 currentLanguage = '{{ lg }}',
  77.                 url_english     = '{{ startseiteEN }}',
  78.                 notDE           = (browserLanguage().indexOf("de") < 0),
  79.                 urlPath         = "{{ urlPath }}";
  80.             // browserLang is not DE -- CMS is not serving EN
  81.             if (notDE && currentLanguage !== 'en') {
  82.                 if (!langPreference) {
  83.                     selt.overlay.open(
  84.                         {
  85.                             selector: '#languageselector',
  86.                             callback: function () {
  87.                                 //console.log('overlay content done')
  88.                             }
  89.                         })
  90.                 } else if (langPreference == 'en') {
  91.                     {% if alternateLanguagePath %}
  92.                         window.location.assign(urlPath);
  93.                     {% else %}
  94.                         if(urlPath == '/en') {
  95.                             urlPath = '';
  96.                         }
  97.                         window.location.assign(url_english + urlPath);
  98.                     {% endif %}
  99.                 }
  100.             }
  101.             selt.saveLanguagePreference = function saveLanguagePreference(lang) {
  102.                 Cookies.set('language', lang, {expires: 14});
  103.                 if (lang === 'en') {
  104.                     {% if alternateLanguagePath %}
  105.                         window.location.assign(urlPath);
  106.                     {% else %}
  107.                         if(urlPath == '/en') {
  108.                             urlPath = '';
  109.                         }
  110.                         window.location.assign(url_english + urlPath);
  111.                     {% endif %}
  112.                 } else {
  113.                     let langSel =  document.getElementById('selt-overlay')
  114.                     langSel.style.display = 'none';
  115.                 }
  116.                 // todo: $.fancybox.close();
  117.             }
  118.         }
  119.     }());//EOS
  120. </script>
  121. <script type="text/javascript">
  122.     var lock = false;
  123.     window.addEventListener('popstate', function(e) {
  124.         var hash = window.location.hash;
  125.         if(!lock && hash) {
  126.             var label = window.location.pathname;
  127.             var name = 'booking-';
  128.             var action = 'click';
  129.             if(hash.indexOf('skd-room') !== -1){
  130.                 name = name + '1';
  131.             }else if(hash.indexOf('skd-personal-info') !== -1){
  132.                 name = name + '2';
  133.             }
  134.             gtag('event', name,{'label': label, 'action': action} );
  135.             gtag('event', action,{'event_category': name,'event_label': label, 'event_action': action, 'send_to': 'UA-11543861-1'} );
  136.             setTimeout(function(){
  137.                 lock = false;
  138.             },1000);
  139.         }
  140.         lock = true;
  141.     });
  142.     $(document).on('click','#btnBookNow',function(){
  143.         var label = window.location.pathname;
  144.         var name = 'booking-3';
  145.         var action = 'click';
  146.         gtag('event', name,{'label': label, 'action': action} );
  147.         gtag('event', action,{'event_category': name, 'event_label': label, 'event_action': action, 'send_to': 'UA-11543861-1'} );
  148.     });
  149.     
  150.     document.addEventListener('DOMContentLoaded', () => {
  151.         document.querySelector('.overlay-close-btn').addEventListener('click', () => {
  152.             let langSel = document.getElementById('selt-overlay');
  153.             langSel.style.display = 'none';
  154.         });
  155.     });
  156. </script>