templates/includes/blocks/heading_dynamic.html.twig line 1

  1. {% set propertyName = propertyName|default('blocks') %}
  2. {% set uid = random() %}
  3. {% if block.heading|default('') %}
  4.     {% if image is defined and image != "" %}
  5.         {% set submedia = sulu_resolve_media(image, app.request.locale) %}
  6.     {% endif %}
  7.     <img src="{{ (submedia is defined) ? submedia.thumbnails["pageImage"] : '' }}" class="pageImage" alt="{{ submedia.title }}" title="{{ submedia.description|default(submedia.title) }}">
  8.     <div class="container">
  9.         <div class="page-headline-wrapper mt-4 mt-lg-5">
  10.             <h1 id="heading-{{ uid }}" class="page-headline {% if block.suffix %}has-suffixes{% endif %}">
  11.                 {% autoescape false %}
  12.                 {{ block.heading|pipe|nl2br|hyphenate }}
  13.                 {% if block.suffix %}
  14.                     {% set suffixes = block.suffix|split(',') %}
  15.                     <span class="suffixes">
  16.                         {% for suffix in suffixes %}
  17.                             <span class="suffix-{{ loop.index0 }} {{ (loop.index0 == 0) ? "active" : "inactive initial" }}">{{ suffix|pipe|nl2br|hyphenate }}</span>
  18.                         {% endfor %}
  19.                     </span>
  20.                 {% endif %}
  21.                 {% endautoescape %}
  22.             </h1>
  23.             {% if block.subline|default('') %}
  24.                 <h3 class="page-headline-muted">
  25.                     {% autoescape false %}
  26.                     {{ block.subline|pipe|nl2br|hyphenate }}
  27.                     {% endautoescape %}
  28.                 </h3>
  29.             {% endif %}
  30.         </div>
  31.     </div>
  32. {% endif %}
  33. <script>
  34.     {% if block.suffix %}
  35.     function setIntervalImmediately(func, interval) {
  36.         func();
  37.         return setInterval(func, interval);
  38.     }
  39.     let headingCount = {{ suffixes|length }};
  40.     let headingIndex = 0;
  41.     let changeSuffix = setIntervalImmediately( _ => {
  42.         document.querySelectorAll('#heading-{{ uid }} .suffixes span').forEach(function(el) {
  43.             el.classList.remove('active');
  44.             el.classList.add('inactive');
  45.         });
  46.         let currentEl = document.querySelectorAll('#heading-{{ uid }} .suffixes span')[headingIndex];
  47.         currentEl.classList.remove('inactive', 'initial');
  48.         currentEl.classList.add('active');
  49.         headingIndex++;
  50.         if (headingIndex >= headingCount) {
  51.             headingIndex = 0;
  52.         }
  53.     }, 2000);
  54.     {% endif %}
  55. </script>