mirror of
https://github.com/phpbb/phpbb.git
synced 2025-07-30 21:40:43 +02:00
[ticket/17100] Refactor code to be more reusable
PHPBB3-17100
This commit is contained in:
58
phpBB/styles/all/template/macros/form_macros.twig
Normal file
58
phpBB/styles/all/template/macros/form_macros.twig
Normal file
@@ -0,0 +1,58 @@
|
||||
{% macro input(form_data) %}
|
||||
<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.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 }}"
|
||||
>
|
||||
{% endmacro %}
|
||||
|
||||
{% macro dimension(form_data) %}
|
||||
{{ _self.input(form_data.width) }} x {{ _self.input(form_data.height) }}
|
||||
{% endmacro %}
|
||||
|
||||
{% macro textarea(form_data) %}
|
||||
<textarea
|
||||
id="{{ form_data.id }}"
|
||||
name="{{ form_data.name }}"
|
||||
rows="{{ form_data.rows }}"
|
||||
cols="{{ form_data.cols }}"
|
||||
>
|
||||
{{ form_data.content }}
|
||||
</textarea>
|
||||
{% 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) %}
|
||||
<select id="{{ form_data.id }}" name="{{ form_data.name }}">
|
||||
{% for option in form_data.options %}
|
||||
<option value="{{ option.value }}"{% if option.selected %} selected="selected"{% endif %}>{{ option.label }}</option>
|
||||
{% 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[0] %}
|
||||
{% for element in form_data %}
|
||||
{{ _self.build_template(element) }}
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
{% if form_data.append %}{{ form_data.append }}{% endif %}
|
||||
{% endmacro %}
|
@@ -2,15 +2,12 @@
|
||||
|
||||
<!-- IF S_SHOW_COPPA or S_REGISTRATION -->
|
||||
|
||||
{% if lang_options|length > 0 %}
|
||||
{% if LANG_OPTIONS %}
|
||||
<form method="post" action="{S_UCP_ACTION}" id="register">
|
||||
<p class="rightside">
|
||||
<label for="lang">{{ lang('LANGUAGE') ~ lang('COLON') }}</label>
|
||||
<select name="lang" id="lang" title="{{ lang('LANGUAGE') }}">
|
||||
{% for option in lang_options %}
|
||||
<option value="{{ option.LANG_ISO }}"{% if option.SELECTED %} selected="selected"{% endif %}>{{ option.LANG_LOCAL_NAME }}</option>
|
||||
{% endfor %}
|
||||
</select>
|
||||
<label for="{{ LANG_OPTIONS.id }}">{{ lang('LANGUAGE') ~ lang('COLON') }}</label>
|
||||
{% import "macros/form_macros.twig" as form_macros %}
|
||||
{{ form_macros.select(LANG_OPTIONS) }}
|
||||
{S_HIDDEN_FIELDS}
|
||||
</p>
|
||||
</form>
|
||||
@@ -21,7 +18,7 @@
|
||||
/**
|
||||
* Change language on change
|
||||
*/
|
||||
document.querySelector('#lang').addEventListener('change', (event) => {
|
||||
document.querySelector("{{ '#' ~ LANG_OPTIONS.id }}").addEventListener('change', (event) => {
|
||||
const langIso = event.target.value;
|
||||
document.cookie = '{{ COOKIE_NAME }}_lang=' + langIso + '; path={{ COOKIE_PATH }}';
|
||||
document.forms['register'].change_lang.value = langIso;
|
||||
|
@@ -52,13 +52,10 @@
|
||||
<!-- ENDIF -->
|
||||
<!-- IF S_MORE_LANGUAGES -->
|
||||
<dl>
|
||||
<dt><label for="lang">{L_BOARD_LANGUAGE}{L_COLON}</label></dt>
|
||||
<dt><label for="{{ LANG_OPTIONS.id }}">{L_BOARD_LANGUAGE}{L_COLON}</label></dt>
|
||||
<dd>
|
||||
<select name="lang" id="lang">
|
||||
{% for option in lang_options %}
|
||||
<option value="{{ option.LANG_ISO }}"{% if option.SELECTED %} selected="selected"{% endif %}>{{ option.LANG_LOCAL_NAME }}</option>
|
||||
{% endfor %}
|
||||
</select>
|
||||
{% import "macros/form_macros.twig" as form_macros %}
|
||||
{{ form_macros.select(LANG_OPTIONS) }}
|
||||
</dd>
|
||||
</dl>
|
||||
<!-- ENDIF -->
|
||||
|
@@ -57,17 +57,23 @@
|
||||
<hr />
|
||||
|
||||
<!-- EVENT ucp_register_options_before -->
|
||||
{% if lang_options|length > 0 %}
|
||||
{% if LANG_OPTIONS %}
|
||||
<dl>
|
||||
<dt><label for="lang">{{ lang('LANGUAGE') ~ lang('COLON') }}</label></dt>
|
||||
<dt><label for="{{ LANG_OPTIONS.id }}">{{ lang('LANGUAGE') ~ lang('COLON') }}</label></dt>
|
||||
<dd>
|
||||
<select name="lang" id="lang" onchange="change_language(this.value); return false;" tabindex="6" title="{{ lang('LANGUAGE') }}">
|
||||
{% for option in lang_options %}
|
||||
<option value="{{ option.LANG_ISO }}"{% if option.SELECTED %} selected="selected"{% endif %}>{{ option.LANG_LOCAL_NAME }}</option>
|
||||
{% endfor %}
|
||||
</select>
|
||||
{% import "macros/form_macros.twig" as form_macros %}
|
||||
{{ form_macros.select(LANG_OPTIONS) }}
|
||||
</dd>
|
||||
</dl>
|
||||
<script>
|
||||
/**
|
||||
* Change language on change
|
||||
*/
|
||||
document.querySelector("{{ '#' ~ LANG_OPTIONS.id }}").addEventListener('change', (event) => {
|
||||
change_language(event.target.value);
|
||||
return false;
|
||||
});
|
||||
</script>
|
||||
{% endif %}
|
||||
|
||||
<!-- INCLUDE timezone_option.html -->
|
||||
|
Reference in New Issue
Block a user