{% set emailLang = craft.app.language|slice(0, 2) == 'fr' ? 'fr' : 'nl' %} {# Renders submission fields as table rows. Nested fields (Group/Repeater) recurse into their sub-fields so nothing gets flattened into one cell. Option fields (Radio/Dropdown/Checkboxes) output the translated option label(s) rather than the stored value. #} {% macro renderRows(fields, submission, emailLang) %} {% import _self as self %} {% for field in fields %} {% if not field.getIsCosmetic() %} {% set cn = className(field) %} {% if cn ends with 'Group' or cn ends with 'Repeater' %} {% set groupField = field %} {% set renderedSubs = [] %} {% if cn ends with 'Repeater' %} {% for row in (submission.getFieldValue(field.fieldKey) ?? []) %} {% for sub in field.getFields() %} {% do sub.setParentField(groupField, loop.parent.loop.index0) %} {% set subHtml = self.renderRows([sub], submission, emailLang) %} {% if subHtml|trim %}{% set renderedSubs = renderedSubs|merge([subHtml]) %}{% endif %} {% endfor %} {% endfor %} {% else %} {% for sub in field.getFields() %} {% do sub.setParentField(groupField) %} {% set subHtml = self.renderRows([sub], submission, emailLang) %} {% if subHtml|trim %}{% set renderedSubs = renderedSubs|merge([subHtml]) %}{% endif %} {% endfor %} {% endif %} {% if renderedSubs|length %} {{ field.label|t('formie', {}, emailLang) }} {% for subHtml in renderedSubs %} {# Drop the grey divider on the last simple row so it doesn't double up with the blue closing line #} {% if loop.last and 'section' not in subHtml %} {{ subHtml|replace({'': ''})|raw }} {% else %} {{ subHtml|raw }} {% endif %} {% endfor %} {% endif %} {% else %} {% set value = submission.getFieldValue(field.fieldKey) %} {% set isOptionField = cn ends with 'Radio' or cn ends with 'Dropdown' or cn ends with 'Checkboxes' %} {% if isOptionField %} {% if value.label is defined %} {% set display = value.label ? value.label|t('formie', {}, emailLang) : '' %} {% else %} {% set labels = [] %} {% for opt in value %} {% set labels = labels|merge([opt.label|t('formie', {}, emailLang)]) %} {% endfor %} {% set display = labels|join(', ') %} {% endif %} {% else %} {% set display = field.getValueAsString(value, submission) %} {% endif %} {% if display is not empty %} {{ field.label|t('formie', {}, emailLang) }} {{ display }} {% endif %} {% endif %} {% endif %} {% endfor %} {% endmacro %} {% import _self as macros %} {{ siteName }}
 
{# Embedded as a data URI: dompdf's chroot blocks local paths outside its vendor dir #} {{ siteName }}

{{ form.title|t('formie', {}, emailLang) }}

{{ macros.renderRows(form.getFields(), submission, emailLang) }}