{# Expertise page - one "Savoir-faire" list item (title/subtitle/rich text + divider). Fixed-count list (always exactly 4 items, no add/remove/reorder — see ExpertisePageContentDto::$items, `#[Assert\Count(min: 4, max: 4)]`). The editor's generic flat serialization (ContentSerializer.serializeFlat(), see assets/admin/editor/ContentSerializer.ts) has no notion of nested arrays, so each item posts its fields as flat top-level keys named `item{index}Title` / `item{index}Subtitle` / `item{index}Content` (1-indexed, same convention as `AboutPageContentDto::$skillLabel1..5`, see templates/components/_about-savoir-faire.html.twig) — reassembled into the nested `items` array server-side by ExpertisePageContentSaver. Parameters: - item (array): `{id, title, subtitle, content}` - editMode (bool) - index (int, 1-based): disambiguates `data-field` since items have no per-item add/remove and therefore no client-generated id to key off of #}
{% set fieldTitle = 'item' ~ index ~ 'Title' %} {% set fieldSubtitle = 'item' ~ index ~ 'Subtitle' %} {% set fieldContent = 'item' ~ index ~ 'Content' %} {% if (item.title is defined and item.title) or editMode|default(false) %}

{{ item.title|default('')|raw }}

{% endif %} {% if (item.subtitle is defined and item.subtitle) or editMode|default(false) %}

{{ item.subtitle|default('')|raw }}

{% endif %} {% if (item.content is defined and item.content) or editMode|default(false) %}
{{ item.content|default('')|raw }}
{% endif %}