78 lines
4.1 KiB
Twig
78 lines
4.1 KiB
Twig
{% macro render_field(form, fields, scope) %}
|
|
{% import _self as self %}
|
|
|
|
{% for index, field in fields %}
|
|
{%- set show_field = attribute(field, "input@") ?? field.store ?? true %}
|
|
{% if field.fields %}
|
|
{%- set new_scope = field.nest_id ? scope ~ field.name ~ '.' : scope -%}
|
|
{{- self.render_field(form, field.fields, new_scope) }}
|
|
{% else %}
|
|
{% if show_field %}
|
|
{%- set value = form.value(scope ~ (field.name ?? index)) -%}
|
|
{% if value %}
|
|
{% block field %}
|
|
<div>
|
|
{% block field_label %}
|
|
<strong>{{ field.label|t|e }}</strong>:
|
|
{% endblock %}
|
|
|
|
{% block field_value %}
|
|
{% if field.type == 'checkboxes' %}
|
|
<ul>
|
|
{% set use_keys = field.use is defined and field.use == 'keys' %}
|
|
{% for key,value in form.value(scope ~ field.name) %}
|
|
{% set index = (use_keys ? key : value) %}
|
|
<li>{{ field.options[index]|t|e }}</li>
|
|
{% endfor %}
|
|
</ul>
|
|
{% elseif field.type == 'radio' %}
|
|
{% set value = form.value(scope ~ field.name) %}
|
|
{{ field.options[value]|t|e }}
|
|
{% elseif field.type == 'checkbox' %}
|
|
{{ (form.value(scope ~ field.name) == 1) ? "GRAV.YES"|t|e : "GRAV.NO"|t|e }}
|
|
{% elseif field.type == 'select' %}
|
|
{% set value = form.value(scope ~ field.name) %}
|
|
{% if value is iterable %}
|
|
<ul>
|
|
{% set use_keys = field.use is defined and field.use == 'keys' %}
|
|
{% for key, val in value %}
|
|
{% set index = (use_keys ? key : val) %}
|
|
<li>{{ field.options[index]|t|e }}</li>
|
|
{% endfor %}
|
|
</ul>
|
|
{% else %}
|
|
{{ field.options[value]|t|e }}
|
|
{% endif %}
|
|
{% else %}
|
|
{% set value = form.value(scope ~ field.name) %}
|
|
{% if value is iterable %}
|
|
<ul>
|
|
{% for val in value %}
|
|
{% if val is iterable %}
|
|
<ul>
|
|
{% for v in val %}
|
|
<li>{{ string(v)|e }}</li>
|
|
{% endfor %}
|
|
</ul>
|
|
{% else %}
|
|
<li>{{ string(val)|e }}</li>
|
|
{% endif %}
|
|
{% endfor %}
|
|
</ul>
|
|
{% else %}
|
|
{{ string(value)|e|nl2br }}
|
|
{% endif %}
|
|
{% endif %}
|
|
{% endblock %}
|
|
</div>
|
|
{% endblock %}
|
|
{% endif %}
|
|
{% endif %}
|
|
{% endif %}
|
|
{% endfor %}
|
|
{% endmacro %}
|
|
|
|
{% import _self as macro %}
|
|
|
|
{{ macro.render_field(form, form.fields, '') }}
|