1
0
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:
Marc Alexander
2022-04-18 20:10:02 +02:00
parent 516d5313ad
commit 2dfe5ebe6d
16 changed files with 189 additions and 101 deletions

View File

@@ -330,7 +330,7 @@ class acp_bots
}
$style_select = style_select($bot_row['bot_style'], true);
phpbb_language_select($db, $template, $bot_row['bot_lang']);
$lang_options = phpbb_language_select($db, $bot_row['bot_lang']);
$l_title = ($action == 'edit') ? 'EDIT' : 'ADD';
@@ -347,9 +347,13 @@ class acp_bots
'S_EDIT_BOT' => true,
'S_ACTIVE_OPTIONS' => $s_active_options,
'S_STYLE_OPTIONS' => $style_select,
'LANG_OPTIONS' => [
'id' => 'bot_lang',
'name' => 'bot_lang',
'options' => $lang_options,
],
'S_ERROR' => (count($error)) ? true : false,
)
);
));
return;

View File

@@ -1796,7 +1796,7 @@ class acp_users
}
phpbb_timezone_select($template, $user, $data['tz'], true);
phpbb_language_select($db, $template, $data['lang']);
$lang_options = phpbb_language_select($db, $data['lang']);
$user_prefs_data = array(
'S_PREFS' => true,
@@ -1833,6 +1833,11 @@ class acp_users
'DEFAULT_DATEFORMAT' => $config['default_dateformat'],
'A_DEFAULT_DATEFORMAT' => addslashes($config['default_dateformat']),
'LANG_OPTIONS' => [
'id' => 'lang',
'name' => 'lang',
'options' => $lang_options,
],
'S_STYLE_OPTIONS' => style_select($data['style']),
);

View File

@@ -270,7 +270,7 @@ function phpbb_version_compare(string $version1, string $version2, string $opera
* @param string $default Language ISO code to be selected by default in the dropdown list
* @param array $langdata Language data in format of array(array('lang_iso' => string, lang_local_name => string), ...)
*/
function phpbb_language_select(\phpbb\db\driver\driver_interface $db, \phpbb\template\template $template, string $default = '', array $langdata = []): void
function phpbb_language_select(\phpbb\db\driver\driver_interface $db, string $default = '', array $langdata = []): array
{
if (empty($langdata))
{
@@ -282,14 +282,17 @@ function phpbb_language_select(\phpbb\db\driver\driver_interface $db, \phpbb\tem
$db->sql_freeresult($result);
}
$lang_options = [];
foreach ($langdata as $row)
{
$template->assign_block_vars('lang_options', [
'SELECTED' => $row['lang_iso'] == $default,
'LANG_ISO' => $row['lang_iso'],
'LANG_LOCAL_NAME' => $row['lang_local_name']
]);
$lang_options[] = [
'value' => $row['lang_iso'],
'label' => $row['lang_local_name'],
'selected' => $row['lang_iso'] === $default,
];
}
return $lang_options;
}
/**

View File

@@ -177,7 +177,7 @@ class ucp_prefs
$db->sql_freeresult($result);
$s_more_styles = count($styles_row) > 1;
phpbb_language_select($db, $template, $data['lang'], $lang_row);
$lang_options = phpbb_language_select($db, $data['lang'], $lang_row);
$template->assign_vars(array(
'ERROR' => (count($error)) ? implode('<br />', $error) : '',
@@ -200,6 +200,11 @@ class ucp_prefs
'S_MORE_LANGUAGES' => $s_more_languages,
'S_MORE_STYLES' => $s_more_styles,
'LANG_OPTIONS' => [
'id' => 'lang',
'name' => 'lang',
'options' => $lang_options,
],
'S_STYLE_OPTIONS' => ($config['override_user_style']) ? '' : style_select($data['user_style'], false, $styles_row),
'S_CAN_HIDE_ONLINE' => ($auth->acl_get('u_hideonline')) ? true : false,
'S_SELECT_NOTIFY' => ($config['jab_enable'] && $user->data['user_jabber'] && @extension_loaded('xml')) ? true : false)

View File

@@ -157,7 +157,7 @@ class ucp_register
$lang_row = (array) $db->sql_fetchrowset($result);
$db->sql_freeresult($result);
phpbb_language_select($db, $template, $user_lang, $lang_row);
$lang_options = phpbb_language_select($db, $user_lang, $lang_row);
if ($coppa === false && $config['coppa_enable'])
{
@@ -169,6 +169,11 @@ class ucp_register
unset($now);
$template_vars = array(
'LANG_OPTIONS' => [
'id' => 'lang',
'name' => 'lang',
'options' => $lang_options,
],
'L_COPPA_NO' => $user->lang('UCP_COPPA_BEFORE', $coppa_birthday),
'L_COPPA_YES' => $user->lang('UCP_COPPA_ON_AFTER', $coppa_birthday),
@@ -183,6 +188,11 @@ class ucp_register
else
{
$template_vars = array(
'LANG_OPTIONS' => [
'id' => 'lang',
'name' => 'lang',
'options' => $lang_options,
],
'L_TERMS_OF_USE' => sprintf($user->lang['TERMS_OF_USE_CONTENT'], $config['sitename'], generate_board_url()),
'S_SHOW_COPPA' => false,
@@ -626,7 +636,7 @@ class ucp_register
$lang_row = (array) $db->sql_fetchrowset($result);
$db->sql_freeresult($result);
phpbb_language_select($db, $template, $data['lang'], $lang_row);
$lang_options = phpbb_language_select($db, $data['lang'], $lang_row);
$template_vars = array(
'USERNAME' => $data['username'],
@@ -638,6 +648,11 @@ class ucp_register
'L_USERNAME_EXPLAIN' => $user->lang($config['allow_name_chars'] . '_EXPLAIN', $user->lang('CHARACTERS', (int) $config['min_name_chars']), $user->lang('CHARACTERS', (int) $config['max_name_chars'])),
'L_PASSWORD_EXPLAIN' => $user->lang($config['pass_complex'] . '_EXPLAIN', $user->lang('CHARACTERS', (int) $config['min_pass_chars'])),
'LANG_OPTIONS' => [
'id' => 'lang',
'name' => 'lang',
'options' => $lang_options,
],
'S_TZ_PRESELECT' => !$submit,
'S_CONFIRM_REFRESH' => ($config['enable_confirm'] && $config['confirm_refresh']) ? true : false,
'S_REGISTRATION' => true,