{% set type = block.type %} {% set props = block.props|default({}) %} {% set layout = block.layout|default({}) %} {% set designClasses = '' %} {% for device, settings in layout.design|default({}) %} {% for key, value in settings %}{% set designClasses = designClasses ~ ' d-' ~ device ~ '-' ~ key ~ '-' ~ value %}{% endfor %} {% endfor %} {% for key, value in layout.effects|default({}) %}{% set designClasses = designClasses ~ ' fx-' ~ key ~ '-' ~ value %}{% endfor %} {% if type in ['section', 'row', 'column'] %} {% set tag = type == 'section' ? 'section' : 'div' %} <{{ tag }} id="{{ block.id }}" class="block-{{ type }} tone-{{ layout.tone|default('paper') }} width-{{ layout.width|default('normal') }}{{ designClasses }}"> {% if type == 'section' %}
{% endif %} {% for child in block.children|default([]) %}{% include 'blocks/block.html.twig' with {block: child, editing: editing|default(false), postLists: postLists|default({})} only %}{% endfor %} {% if type == 'section' %}
{% endif %} {% elseif type == 'heading' %} {{ props.text }} {% elseif type == 'text' %}

{{ props.text }}

{% elseif type == 'button' %} {{ props.text }} {% elseif type == 'image' %}
{{ props.alt }}{% if props.caption|default('') %}
{{ props.caption }}
{% endif %}
{% elseif type == 'iconcard' %}
{% include 'blocks/icon.html.twig' with {name: props.icon} only %}

{% if props.href|default('') %}{{ props.title }}{% else %}{{ props.title }}{% endif %}

{% if props.text|default('') %}

{{ props.text }}

{% endif %}
{% elseif type == 'stat' %}

{{ props.value }}{{ props.label }}

{% elseif type == 'quote' %}
{% if props.rating|default(0) > 0 %}

Bewertung: {{ props.rating }} von 5

{% endif %}

{{ props.text }}

{{ props.author }}{% if props.role|default('') %} {{ props.role }}{% endif %}
{% elseif type == 'logos' %} {% elseif type == 'cta' %}

{{ props.title }}

{% if props.text|default('') %}

{{ props.text }}

{% endif %}
{{ props.buttonText }}
{% elseif type == 'contact' %}
{% if props.phone|default('') %}{% include 'blocks/icon.html.twig' with {name: 'phone'} only %}{{ props.phone }}{% endif %} {% if props.email|default('') %}{% include 'blocks/icon.html.twig' with {name: 'mail'} only %}{{ props.email }}{% endif %} {% if props.address|default('') %}{% include 'blocks/icon.html.twig' with {name: 'pin'} only %}{{ props.address }}{% endif %}
{% elseif type == 'divider' %}
{% elseif type == 'spacer' %} {% elseif type == 'tabs' %} {# Without the script this is an anchor list followed by every panel: complete and readable. tabs.js turns it into a tab widget; it only changes presentation, never content. #}
{% for child in block.children|default([]) %}{% include 'blocks/block.html.twig' with {block: child, editing: editing|default(false), postLists: postLists|default({})} only %}{% endfor %}
{% elseif type == 'tabitem' %}

{{ props.title }}

{% for child in block.children|default([]) %}{% include 'blocks/block.html.twig' with {block: child, editing: editing|default(false), postLists: postLists|default({})} only %}{% endfor %}
{% elseif type == 'accordion' %}
{% for child in block.children|default([]) %}{% include 'blocks/block.html.twig' with {block: child, editing: editing|default(false), postLists: postLists|default({})} only %}{% endfor %}
{% elseif type == 'accordionitem' %}
{{ props.title }}
{% for child in block.children|default([]) %}{% include 'blocks/block.html.twig' with {block: child, editing: editing|default(false), postLists: postLists|default({})} only %}{% endfor %}
{% elseif type == 'postlist' %}
{% include 'blocks/post-list.html.twig' with {posts: postLists[block.id]|default([])} only %}
{% elseif type == 'gallery' %}
{% for child in block.children|default([]) %}{% include 'blocks/block.html.twig' with {block: child, editing: editing|default(false), postLists: postLists|default({})} only %}{% endfor %}
{% else %} {# A block whose plugin is not available. Its stored content stays in the document; the core renders nothing from its unvalidated props. Visitors see no broken fragment, while the editor preview shows a placeholder so the block can still be found and moved. #} {% if editing|default(false) %}

Baustein „{{ type }}“ ist in dieser Installation nicht verfügbar. Der Inhalt bleibt gespeichert.

{% endif %} {% endif %}