templates/includes/blocks/heading_dynamic.html.twig line 1
{% set propertyName = propertyName|default('blocks') %}
{% set uid = random() %}
{% if block.heading|default('') %}
{% if image is defined and image != "" %}
{% set submedia = sulu_resolve_media(image, app.request.locale) %}
{% endif %}
<img src="{{ (submedia is defined) ? submedia.thumbnails["pageImage"] : '' }}" class="pageImage" alt="{{ submedia.title }}" title="{{ submedia.description|default(submedia.title) }}">
<div class="container">
<div class="page-headline-wrapper mt-4 mt-lg-5">
<h1 id="heading-{{ uid }}" class="page-headline {% if block.suffix %}has-suffixes{% endif %}">
{% autoescape false %}
{{ block.heading|pipe|nl2br|hyphenate }}
{% if block.suffix %}
{% set suffixes = block.suffix|split(',') %}
<span class="suffixes">
{% for suffix in suffixes %}
<span class="suffix-{{ loop.index0 }} {{ (loop.index0 == 0) ? "active" : "inactive initial" }}">{{ suffix|pipe|nl2br|hyphenate }}</span>
{% endfor %}
</span>
{% endif %}
{% endautoescape %}
</h1>
{% if block.subline|default('') %}
<h3 class="page-headline-muted">
{% autoescape false %}
{{ block.subline|pipe|nl2br|hyphenate }}
{% endautoescape %}
</h3>
{% endif %}
</div>
</div>
{% endif %}
<script>
{% if block.suffix %}
function setIntervalImmediately(func, interval) {
func();
return setInterval(func, interval);
}
let headingCount = {{ suffixes|length }};
let headingIndex = 0;
let changeSuffix = setIntervalImmediately( _ => {
document.querySelectorAll('#heading-{{ uid }} .suffixes span').forEach(function(el) {
el.classList.remove('active');
el.classList.add('inactive');
});
let currentEl = document.querySelectorAll('#heading-{{ uid }} .suffixes span')[headingIndex];
currentEl.classList.remove('inactive', 'initial');
currentEl.classList.add('active');
headingIndex++;
if (headingIndex >= headingCount) {
headingIndex = 0;
}
}, 2000);
{% endif %}
</script>