mirror of
https://github.com/phpbb/phpbb.git
synced 2025-06-07 20:08:53 +00:00
86 lines
3.1 KiB
Twig
86 lines
3.1 KiB
Twig
{% macro input(form_data) %}
|
|
{% apply replace({"\n": ' ', '\t': ''}) %}
|
|
<input
|
|
{% if form_data.id %}id="{{ form_data.id }}"{% endif %}
|
|
type="{{ form_data.type }}"
|
|
name="{{ form_data.name }}"
|
|
{% if form_data.size %}size="{{ form_data.size }}"{% endif %}
|
|
{% if form_data.maxlength %}maxlength="{{ form_data.maxlength }}"{% endif %}
|
|
{% if form_data.min %}min="{{ form_data.min }}"{% endif %}
|
|
{% if form_data.max %}max="{{ form_data.max }}"{% endif %}
|
|
{% if form_data.step %}step="{{ form_data.step }}"{% endif %}
|
|
{% if form_data.type == 'password' %}autocomplete="off"{% endif %}
|
|
{% if form_data.checked %}checked="checked"{% endif %}
|
|
{% if form_data.class %}class="{{ form_data.class }}"{% endif %}
|
|
value="{{ form_data.value }}">
|
|
{% endapply %}
|
|
{% endmacro %}
|
|
|
|
{% macro dimension(form_data) %}
|
|
{{ _self.input(form_data.width) }} x {{ _self.input(form_data.height) }}
|
|
{% endmacro %}
|
|
|
|
{% macro textarea(form_data) %}
|
|
{% apply replace({"\n": ' ', '\t': ''}) %}
|
|
<textarea
|
|
id="{{ form_data.id }}"
|
|
name="{{ form_data.name }}"
|
|
rows="{{ form_data.rows }}"
|
|
cols="{{ form_data.cols }}">
|
|
{{ form_data.content }}
|
|
</textarea>
|
|
{% endapply %}
|
|
{% endmacro %}
|
|
|
|
{% macro radio_buttons(form_data) %}
|
|
<label>{{ _self.input(form_data.buttons[0]) ~ form_data.buttons[0].label }}</label>
|
|
<label>{{ _self.input(form_data.buttons[1]) ~ form_data.buttons[1].label }}</label>
|
|
{% endmacro %}
|
|
|
|
{% macro select(form_data, class, id, name, group_only) %}
|
|
{% apply replace({"\n": ' ', '\t': ''}) %}
|
|
<select
|
|
{% if id %}id="{{ id }}"{% endif %}
|
|
{% if class %}class="{{ class }}"{% endif %}
|
|
name="{% if name %}{{ name }}{% else %}{{ form_data.name }}{% endif %}"
|
|
{% if form_data.toggleable %}data-togglable-settings="true"{% endif %}
|
|
{% if form_data.size %}size="{{ form_data.size }}"{% endif %}>
|
|
{% endapply %}
|
|
{% for element in form_data.options %}
|
|
{% if not group_only and element.options %}
|
|
{% apply replace({"\n": ' ', '\t': ''}) %}
|
|
<optgroup
|
|
label="{{ element.label }}"
|
|
{% for key, value in element.data %}
|
|
data-{{ key }}="{{ value }}"
|
|
{% endfor %}>
|
|
{% endapply %}
|
|
{% for option in element.options %}
|
|
<option value="{{ option.value }}"{% if option.selected %} selected="selected"{% endif %}>{{ option.label }}</option>
|
|
{% endfor %}
|
|
</optgroup>
|
|
{% else %}
|
|
<option value="{{ element.value }}"{% if element.selected %} selected="selected"{% endif %}>{{ element.label }}</option>
|
|
{% endif %}
|
|
{% endfor %}
|
|
</select>
|
|
{% endmacro %}
|
|
|
|
{% macro build_template(form_data) %}
|
|
{% if form_data.tag == 'input' %}
|
|
{{ _self.input(form_data) }}
|
|
{% elseif form_data.tag == 'dimension' %}
|
|
{{ _self.dimension(form_data) }}
|
|
{% elseif form_data.tag == 'radio' %}
|
|
{{ _self.radio_buttons(form_data) }}
|
|
{% elseif form_data.tag == 'select' %}
|
|
{{ _self.select(form_data) }}
|
|
{% elseif form_data.tag == 'textarea' %}
|
|
{{ _self.textarea(form_data) }}
|
|
{% elseif form_data[0] %}
|
|
{% for element in form_data %}
|
|
{{ _self.build_template(element) }}
|
|
{% endfor %}
|
|
{% endif %}
|
|
{% if form_data.append %}{{ form_data.append }}{% endif %}
|
|
{% endmacro %}
|