mirror of
https://github.com/phpbb/phpbb.git
synced 2025-06-08 04:18:52 +00:00
[ticket/17361] Move language keys to storage adapters
PHPBB-17361
This commit is contained in:
parent
be3966c0cb
commit
a44295a1ba
6 changed files with 118 additions and 24 deletions
|
@ -47,7 +47,7 @@
|
||||||
{% for provider in PROVIDERS %}
|
{% for provider in PROVIDERS %}
|
||||||
{% if provider.is_available %}
|
{% if provider.is_available %}
|
||||||
<option value="{{ get_class(provider) }}"{{ attribute(config, 'storage\\' ~ storage.get_name ~ '\\provider') == get_class(provider) ? ' selected' : '' }} data-toggle-setting="#{{ storage.get_name }}_{{ provider.get_name }}_settings">
|
<option value="{{ get_class(provider) }}"{{ attribute(config, 'storage\\' ~ storage.get_name ~ '\\provider') == get_class(provider) ? ' selected' : '' }} data-toggle-setting="#{{ storage.get_name }}_{{ provider.get_name }}_settings">
|
||||||
{{ lang('STORAGE_ADAPTER_' ~ provider.get_name | upper ~ '_NAME') }}
|
{{ provider.get_title }}
|
||||||
</option>
|
</option>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
|
@ -59,43 +59,42 @@
|
||||||
{% for provider in PROVIDERS %}
|
{% for provider in PROVIDERS %}
|
||||||
{% if provider.is_available %}
|
{% if provider.is_available %}
|
||||||
<fieldset id="{{ storage.get_name }}_{{ provider.get_name }}_settings">
|
<fieldset id="{{ storage.get_name }}_{{ provider.get_name }}_settings">
|
||||||
<legend>{{ lang('STORAGE_' ~ storage.get_name | upper ~ '_TITLE') }} - {{ lang('STORAGE_ADAPTER_' ~ provider.get_name | upper ~ '_NAME') }}</legend>
|
<legend>{{ lang('STORAGE_' ~ storage.get_name | upper ~ '_TITLE') }} - {{ provider.get_title }}</legend>
|
||||||
{% for name, options in provider.get_options %}
|
{% for name, options in provider.get_options %}
|
||||||
<dl>
|
<dl>
|
||||||
<dt>
|
<dt>
|
||||||
{% set title = 'STORAGE_ADAPTER_' ~ provider.get_name | upper ~ '_OPTION_' ~ name | upper %}
|
<label>{{ options.title ~ lang('COLON') }}</label>
|
||||||
{% set description = 'STORAGE_ADAPTER_' ~ provider.get_name | upper ~ '_OPTION_' ~ name | upper ~ '_EXPLAIN' %}
|
{% if options.description %}
|
||||||
<label>{{ lang(title) ~ lang('COLON') }}</label>
|
<br /><span>{{ options.description }}</span>
|
||||||
{% if lang_defined(description) %}
|
|
||||||
<br /><span>{{ lang(description) }}</span>
|
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</dt>
|
</dt>
|
||||||
<dd>
|
<dd>
|
||||||
{% set input_name = storage.get_name ~ '[' ~ name ~ ']' %}
|
{% set input_name = storage.get_name ~ '[' ~ name ~ ']' %}
|
||||||
{% set input_value = attribute(config, 'storage\\' ~ storage.get_name ~ '\\config\\' ~ name) %}
|
{% set input_value = attribute(config, 'storage\\' ~ storage.get_name ~ '\\config\\' ~ name) %}
|
||||||
|
{% set form_macro = options.form_macro %}
|
||||||
|
|
||||||
{% if options.tag == 'input' %}
|
{% if form_macro.tag == 'input' %}
|
||||||
{{ FormsInput(options | merge({"name": input_name, "value": input_value})) }}
|
{{ FormsInput(form_macro | merge({"name": input_name, "value": input_value})) }}
|
||||||
{% elseif options.tag == 'textarea' %}
|
{% elseif form_macro.tag == 'textarea' %}
|
||||||
{{ FormsTextarea(options | merge({"name": input_name, "content": input_value})) }}
|
{{ FormsTextarea(form_macro | merge({"name": input_name, "content": input_value})) }}
|
||||||
{% elseif options.tag == 'radio' %}
|
{% elseif form_macro.tag == 'radio' %}
|
||||||
{% set buttons = [] %}
|
{% set buttons = [] %}
|
||||||
|
|
||||||
{% for button in options.buttons %}
|
{% for button in form_macro.buttons %}
|
||||||
{% set new_button = button | merge({"name": input_name, "label": lang(button.label), "checked": button.value == input_value}) %}
|
{% set new_button = button | merge({"name": input_name, "checked": button.value == input_value}) %}
|
||||||
{% set buttons = buttons | merge([new_button]) %}
|
{% set buttons = buttons | merge([new_button]) %}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
|
|
||||||
{{ FormsRadioButtons(options | merge({"buttons": buttons})) }}
|
{{ FormsRadioButtons(form_macro | merge({"buttons": buttons})) }}
|
||||||
{% elseif options.tag == 'select' %}
|
{% elseif form_macro.tag == 'select' %}
|
||||||
{% set select_options = [] %}
|
{% set select_options = [] %}
|
||||||
|
|
||||||
{% for option in options.options %}
|
{% for option in form_macro.options %}
|
||||||
{% set new_option = option | merge({"selected": option.value == input_value}) %}
|
{% set new_option = option | merge({"selected": option.value == input_value}) %}
|
||||||
{% set select_options = select_options | merge([new_option]) %}
|
{% set select_options = select_options | merge([new_option]) %}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
|
|
||||||
{{ FormsSelect(options | merge({"name": input_name, "options": select_options})) }}
|
{{ FormsSelect(form_macro | merge({"name": input_name, "options": select_options})) }}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</dd>
|
</dd>
|
||||||
</dl>
|
</dl>
|
||||||
|
@ -109,9 +108,9 @@
|
||||||
<dl>
|
<dl>
|
||||||
<dt><label for="update_type">{{ lang('STORAGE_UPDATE_TYPE') ~ lang('COLON') }}</label></dt>
|
<dt><label for="update_type">{{ lang('STORAGE_UPDATE_TYPE') ~ lang('COLON') }}</label></dt>
|
||||||
<dd>
|
<dd>
|
||||||
<label><input id="update_type" class="radio" name="update_type" value="{{ STORAGE_UPDATE_TYPE_CONFIG }}" checked="checked" type="radio"> {{ lang('STORAGE_UPDATE_TYPE_CONFIG') }}</label>
|
<label><input class="radio" name="update_type" value="{{ STORAGE_UPDATE_TYPE_CONFIG }}" type="radio"> {{ lang('STORAGE_UPDATE_TYPE_CONFIG') }}</label>
|
||||||
<label><input class="radio" name="update_type" value="{{ STORAGE_UPDATE_TYPE_COPY }}" type="radio"> {{ lang('STORAGE_UPDATE_TYPE_COPY') }}</label>
|
<label><input class="radio" name="update_type" value="{{ STORAGE_UPDATE_TYPE_COPY }}" type="radio"> {{ lang('STORAGE_UPDATE_TYPE_COPY') }}</label>
|
||||||
<label><input class="radio" name="update_type" value="{{ STORAGE_UPDATE_TYPE_MOVE }}" type="radio"> {{ lang('STORAGE_UPDATE_TYPE_MOVE') }}</label>
|
<label><input class="radio" name="update_type" value="{{ STORAGE_UPDATE_TYPE_MOVE }}" type="radio" checked="checked" id="update_type"> {{ lang('STORAGE_UPDATE_TYPE_MOVE') }}</label>
|
||||||
</dd>
|
</dd>
|
||||||
</dl>
|
</dl>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
|
|
|
@ -72,6 +72,7 @@ services:
|
||||||
storage.provider.local:
|
storage.provider.local:
|
||||||
class: phpbb\storage\provider\local
|
class: phpbb\storage\provider\local
|
||||||
arguments:
|
arguments:
|
||||||
|
- '@language'
|
||||||
tags:
|
tags:
|
||||||
- { name: storage.provider }
|
- { name: storage.provider }
|
||||||
|
|
||||||
|
|
|
@ -65,6 +65,7 @@ $lang = array_merge($lang, [
|
||||||
// Local adapter
|
// Local adapter
|
||||||
'STORAGE_ADAPTER_LOCAL_NAME' => 'Local',
|
'STORAGE_ADAPTER_LOCAL_NAME' => 'Local',
|
||||||
'STORAGE_ADAPTER_LOCAL_OPTION_PATH' => 'Path',
|
'STORAGE_ADAPTER_LOCAL_OPTION_PATH' => 'Path',
|
||||||
|
'STORAGE_ADAPTER_LOCAL_OPTION_PATH_EXPLAIN' => 'Storage path for files.<br>For example: <samp>files</samp>, <samp>images/avatars/upload</samp> or <samp>store</samp>.',
|
||||||
|
|
||||||
// Form validation
|
// Form validation
|
||||||
'STORAGE_UPDATE_SUCCESSFUL' => 'All storage types were successfully updated.',
|
'STORAGE_UPDATE_SUCCESSFUL' => 'All storage types were successfully updated.',
|
||||||
|
|
|
@ -13,8 +13,25 @@
|
||||||
|
|
||||||
namespace phpbb\storage\provider;
|
namespace phpbb\storage\provider;
|
||||||
|
|
||||||
|
use phpbb\language\language;
|
||||||
|
|
||||||
class local implements provider_interface
|
class local implements provider_interface
|
||||||
{
|
{
|
||||||
|
/**
|
||||||
|
* @var language
|
||||||
|
*/
|
||||||
|
protected $language;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Constructor
|
||||||
|
*
|
||||||
|
* @param language $language
|
||||||
|
*/
|
||||||
|
public function __construct(language $language)
|
||||||
|
{
|
||||||
|
$this->language = $language;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* {@inheritdoc}
|
* {@inheritdoc}
|
||||||
*/
|
*/
|
||||||
|
@ -23,6 +40,11 @@ class local implements provider_interface
|
||||||
return 'local';
|
return 'local';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function get_title(): string
|
||||||
|
{
|
||||||
|
return $this->language->lang('STORAGE_ADAPTER_LOCAL_NAME');
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* {@inheritdoc}
|
* {@inheritdoc}
|
||||||
*/
|
*/
|
||||||
|
@ -38,8 +60,12 @@ class local implements provider_interface
|
||||||
{
|
{
|
||||||
return [
|
return [
|
||||||
'path' => [
|
'path' => [
|
||||||
'tag' => 'input',
|
'title' => $this->language->lang('STORAGE_ADAPTER_LOCAL_OPTION_PATH'),
|
||||||
'type' => 'text',
|
'description' => $this->language->lang('STORAGE_ADAPTER_LOCAL_OPTION_PATH_EXPLAIN'),
|
||||||
|
'form_macro' => [
|
||||||
|
'tag' => 'input',
|
||||||
|
'type' => 'text',
|
||||||
|
],
|
||||||
],
|
],
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
|
@ -22,6 +22,13 @@ interface provider_interface
|
||||||
*/
|
*/
|
||||||
public function get_name(): string;
|
public function get_name(): string;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets adapter title for acp
|
||||||
|
*
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
public function get_title(): string;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets adapter class
|
* Gets adapter class
|
||||||
*
|
*
|
||||||
|
@ -32,7 +39,67 @@ interface provider_interface
|
||||||
/**
|
/**
|
||||||
* Gets adapter options
|
* Gets adapter options
|
||||||
*
|
*
|
||||||
* @return array Configuration keys
|
* Example:
|
||||||
|
* public function get_options()
|
||||||
|
* {
|
||||||
|
* return [
|
||||||
|
* 'text-test' => [
|
||||||
|
* 'title' => $this->language->lang('STORAGE_ADAPTER_DEMO_OPTION_TEXT_TEST'),
|
||||||
|
* 'description' => $this->language->lang('STORAGE_ADAPTER_DEMO_OPTION_TEXT_TEST_EXPLAIN'),
|
||||||
|
* 'form_macro' => [
|
||||||
|
* 'tag' => 'input',
|
||||||
|
* 'type' => 'text',
|
||||||
|
* ],
|
||||||
|
* ],
|
||||||
|
* 'password-test' => [
|
||||||
|
* 'title' => $this->language->lang('STORAGE_ADAPTER_DEMO_OPTION_PASSWORD_TEST'),
|
||||||
|
* 'description' => $this->language->lang('STORAGE_ADAPTER_DEMO_OPTION_PASSWORD_TEST_EXPLAIN'),
|
||||||
|
* 'form_macro' => [
|
||||||
|
* 'tag' => 'input',
|
||||||
|
* 'type' => 'password',
|
||||||
|
* ],
|
||||||
|
* ],
|
||||||
|
* 'radio-test' => [
|
||||||
|
* 'title' => $this->language->lang('STORAGE_ADAPTER_DEMO_OPTION_RADIO_TEST'),
|
||||||
|
* 'description' => $this->language->lang('STORAGE_ADAPTER_DEMO_OPTION_RADIO_TEST_EXPLAIN'),
|
||||||
|
* 'form_macro' => [
|
||||||
|
* 'tag' => 'radio',
|
||||||
|
* 'buttons' => [
|
||||||
|
* [
|
||||||
|
* 'type' => 'radio',
|
||||||
|
* 'value' => '1',
|
||||||
|
* 'label' => $this->language->lang('STORAGE_ADAPTER_DEMO_OPTION_RADIO_TEST_LABEL_ONE'),
|
||||||
|
* ],
|
||||||
|
* [
|
||||||
|
* 'type' => 'radio',
|
||||||
|
* 'value' => '2',
|
||||||
|
* 'label' => $this->language->lang('STORAGE_ADAPTER_DEMO_OPTION_RADIO_TEST_LABEL_TWO'),
|
||||||
|
* ],
|
||||||
|
* ],
|
||||||
|
* ],
|
||||||
|
* ],
|
||||||
|
* 'select-test' => [
|
||||||
|
* 'title' => $this->language->lang('STORAGE_ADAPTER_DEMO_OPTION_SELECT_TEST'),
|
||||||
|
* 'description' => $this->language->lang('STORAGE_ADAPTER_DEMO_OPTION_SELECT_TEST_EXPLAIN'),
|
||||||
|
* 'form_macro' => [
|
||||||
|
* 'tag' => 'select',
|
||||||
|
* 'options' => [
|
||||||
|
* ['value' => 'one', 'label' => $this->language->lang('STORAGE_ADAPTER_DEMO_OPTION_SELECT_TEST_LABEL_ONE')],
|
||||||
|
* ['value' => 'two', 'label' => $this->language->lang('STORAGE_ADAPTER_DEMO_OPTION_SELECT_TEST_LABEL_TWO')],
|
||||||
|
* ],
|
||||||
|
* ],
|
||||||
|
* ],
|
||||||
|
* 'textarea-test' => [
|
||||||
|
* 'title' => $this->language->lang('STORAGE_ADAPTER_DEMO_OPTION_TEXTAREA_TEST'),
|
||||||
|
* 'description' => $this->language->lang('STORAGE_ADAPTER_DEMO_OPTION_TEXTAREA_TEST_EXPLAIN'),
|
||||||
|
* 'form_macro' => [
|
||||||
|
* 'tag' => 'textarea',
|
||||||
|
* ]
|
||||||
|
* ],
|
||||||
|
* ];
|
||||||
|
* }
|
||||||
|
*
|
||||||
|
* @return array Configuration keys
|
||||||
*/
|
*/
|
||||||
public function get_options(): array;
|
public function get_options(): array;
|
||||||
|
|
||||||
|
|
|
@ -206,7 +206,7 @@ class forms extends AbstractExtension
|
||||||
{
|
{
|
||||||
return $environment->render('macros/forms/textarea.twig', [
|
return $environment->render('macros/forms/textarea.twig', [
|
||||||
'CLASS' => (string) ($form_data['class'] ?? ''),
|
'CLASS' => (string) ($form_data['class'] ?? ''),
|
||||||
'ID' => (string) $form_data['id'],
|
'ID' => (string) ($form_data['id'] ?? ''),
|
||||||
'DATA' => $form_data['data'] ?? [],
|
'DATA' => $form_data['data'] ?? [],
|
||||||
'NAME' => (string) $form_data['name'],
|
'NAME' => (string) $form_data['name'],
|
||||||
'ROWS' => (int) ($form_data['rows'] ?? ''),
|
'ROWS' => (int) ($form_data['rows'] ?? ''),
|
||||||
|
|
Loading…
Add table
Reference in a new issue