From 4846723bb6dcca503bead11786a6c3d9cde8bb46 Mon Sep 17 00:00:00 2001 From: Marc Alexander Date: Wed, 23 Feb 2022 22:29:13 +0100 Subject: [PATCH] [ticket/17100] Move lang options HTML to template PHPBB3-17100 --- phpBB/adm/style/acp_bots.html | 8 +- phpBB/adm/style/acp_users_prefs.html | 56 +++++++------ phpBB/includes/acp/acp_bots.php | 3 +- phpBB/includes/acp/acp_users.php | 3 +- phpBB/includes/functions.php | 18 ++-- phpBB/includes/ucp/ucp_prefs.php | 3 +- phpBB/includes/ucp/ucp_register.php | 7 +- phpBB/phpbb/message/topic_form.php | 4 +- .../prosilver/template/memberlist_email.html | 8 +- .../prosilver/template/ucp_agreement.html | 11 ++- .../template/ucp_prefs_personal.html | 8 +- .../prosilver/template/ucp_register.html | 10 ++- tests/functions/language_select_test.php | 82 +++++++++++++++++-- 13 files changed, 163 insertions(+), 58 deletions(-) diff --git a/phpBB/adm/style/acp_bots.html b/phpBB/adm/style/acp_bots.html index b0e61015b6..603d7c0ab0 100644 --- a/phpBB/adm/style/acp_bots.html +++ b/phpBB/adm/style/acp_bots.html @@ -31,7 +31,13 @@

{L_BOT_LANG_EXPLAIN}
-
+
+ +
diff --git a/phpBB/adm/style/acp_users_prefs.html b/phpBB/adm/style/acp_users_prefs.html index cd95ea0013..cdac6891e5 100644 --- a/phpBB/adm/style/acp_users_prefs.html +++ b/phpBB/adm/style/acp_users_prefs.html @@ -9,47 +9,53 @@
{L_UCP_PREFS_PERSONAL} -
+
-
+
-
+

{L_ALLOW_PM_EXPLAIN}
-
+
-
+

{L_NOTIFY_METHOD_EXPLAIN}
-
+
-
+
-
+
+ +
-
+
-
+

{L_BOARD_DATE_FORMAT_EXPLAIN}
style="display:none;">
@@ -60,22 +66,22 @@
{L_UCP_PREFS_POST} -
+
-
+
-
+
-
+
@@ -86,52 +92,52 @@
{L_UCP_PREFS_VIEW} -
+
-
+
-
+
-
+
-
+
-
+
{S_TOPIC_SORT_DAYS}
-
+
{S_TOPIC_SORT_KEY}
-
+
{S_TOPIC_SORT_DIR}
-
+
{S_POST_SORT_DAYS}
-
+
{S_POST_SORT_KEY}
-
+
{S_POST_SORT_DIR}
diff --git a/phpBB/includes/acp/acp_bots.php b/phpBB/includes/acp/acp_bots.php index 8bd357bc91..8c296e180a 100644 --- a/phpBB/includes/acp/acp_bots.php +++ b/phpBB/includes/acp/acp_bots.php @@ -330,7 +330,7 @@ class acp_bots } $style_select = style_select($bot_row['bot_style'], true); - $lang_select = language_select($bot_row['bot_lang']); + phpbb_language_select($db, $template, $bot_row['bot_lang']); $l_title = ($action == 'edit') ? 'EDIT' : 'ADD'; @@ -347,7 +347,6 @@ class acp_bots 'S_EDIT_BOT' => true, 'S_ACTIVE_OPTIONS' => $s_active_options, 'S_STYLE_OPTIONS' => $style_select, - 'S_LANG_OPTIONS' => $lang_select, 'S_ERROR' => (count($error)) ? true : false, ) ); diff --git a/phpBB/includes/acp/acp_users.php b/phpBB/includes/acp/acp_users.php index e98cbcaf2e..d75b866bd5 100644 --- a/phpBB/includes/acp/acp_users.php +++ b/phpBB/includes/acp/acp_users.php @@ -1796,6 +1796,8 @@ class acp_users } phpbb_timezone_select($template, $user, $data['tz'], true); + phpbb_language_select($db, $template, $data['lang']); + $user_prefs_data = array( 'S_PREFS' => true, 'S_JABBER_DISABLED' => ($config['jab_enable'] && $user_row['user_jabber'] && @extension_loaded('xml')) ? false : true, @@ -1831,7 +1833,6 @@ class acp_users 'DEFAULT_DATEFORMAT' => $config['default_dateformat'], 'A_DEFAULT_DATEFORMAT' => addslashes($config['default_dateformat']), - 'S_LANG_OPTIONS' => language_select($data['lang']), 'S_STYLE_OPTIONS' => style_select($data['style']), ); diff --git a/phpBB/includes/functions.php b/phpBB/includes/functions.php index 27ead08d9c..48ac572295 100644 --- a/phpBB/includes/functions.php +++ b/phpBB/includes/functions.php @@ -265,15 +265,13 @@ function phpbb_version_compare(string $version1, string $version2, string $opera /** * Pick a language, any language ... * + * @param \phpbb\db\driver\driver_interface $db DBAL driver + * @param \phpbb\template\template $template Template engine * @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), ...) - * - * @return string HTML options for language selection dropdown list. */ -function language_select($default = '', array $langdata = []) +function phpbb_language_select(\phpbb\db\driver\driver_interface $db, \phpbb\template\template $template, string $default = '', array $langdata = []): void { - global $db; - if (empty($langdata)) { $sql = 'SELECT lang_iso, lang_local_name @@ -284,14 +282,14 @@ function language_select($default = '', array $langdata = []) $db->sql_freeresult($result); } - $lang_options = ''; foreach ($langdata as $row) { - $selected = ($row['lang_iso'] == $default) ? ' selected="selected"' : ''; - $lang_options .= ''; + $template->assign_block_vars('lang_options', [ + 'SELECTED' => $row['lang_iso'] == $default, + 'LANG_ISO' => $row['lang_iso'], + 'LANG_LOCAL_NAME' => $row['lang_local_name'] + ]); } - - return $lang_options; } /** diff --git a/phpBB/includes/ucp/ucp_prefs.php b/phpBB/includes/ucp/ucp_prefs.php index a1fa086b52..9a51cc65b2 100644 --- a/phpBB/includes/ucp/ucp_prefs.php +++ b/phpBB/includes/ucp/ucp_prefs.php @@ -177,6 +177,8 @@ class ucp_prefs $db->sql_freeresult($result); $s_more_styles = count($styles_row) > 1; + phpbb_language_select($db, $template, $data['lang'], $lang_row); + $template->assign_vars(array( 'ERROR' => (count($error)) ? implode('
', $error) : '', @@ -198,7 +200,6 @@ class ucp_prefs 'S_MORE_LANGUAGES' => $s_more_languages, 'S_MORE_STYLES' => $s_more_styles, - 'S_LANG_OPTIONS' => language_select($data['lang'], $lang_row), '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) diff --git a/phpBB/includes/ucp/ucp_register.php b/phpBB/includes/ucp/ucp_register.php index d5c9e0209f..9601582f51 100644 --- a/phpBB/includes/ucp/ucp_register.php +++ b/phpBB/includes/ucp/ucp_register.php @@ -157,6 +157,8 @@ class ucp_register $lang_row = (array) $db->sql_fetchrowset($result); $db->sql_freeresult($result); + phpbb_language_select($db, $template, $user_lang, $lang_row); + if ($coppa === false && $config['coppa_enable']) { $now = getdate(); @@ -167,7 +169,6 @@ class ucp_register unset($now); $template_vars = array( - 'S_LANG_OPTIONS' => (count($lang_row) > 1) ? language_select($user_lang, $lang_row) : '', 'L_COPPA_NO' => $user->lang('UCP_COPPA_BEFORE', $coppa_birthday), 'L_COPPA_YES' => $user->lang('UCP_COPPA_ON_AFTER', $coppa_birthday), @@ -182,7 +183,6 @@ class ucp_register else { $template_vars = array( - 'S_LANG_OPTIONS' => (count($lang_row) > 1) ? language_select($user_lang, $lang_row) : '', 'L_TERMS_OF_USE' => sprintf($user->lang['TERMS_OF_USE_CONTENT'], $config['sitename'], generate_board_url()), 'S_SHOW_COPPA' => false, @@ -626,6 +626,8 @@ class ucp_register $lang_row = (array) $db->sql_fetchrowset($result); $db->sql_freeresult($result); + phpbb_language_select($db, $template, $data['lang'], $lang_row); + $template_vars = array( 'USERNAME' => $data['username'], 'PASSWORD' => $data['new_password'], @@ -636,7 +638,6 @@ 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'])), - 'S_LANG_OPTIONS' => (count($lang_row) > 1) ? language_select($data['lang'], $lang_row) : '', 'S_TZ_PRESELECT' => !$submit, 'S_CONFIRM_REFRESH' => ($config['enable_confirm'] && $config['confirm_refresh']) ? true : false, 'S_REGISTRATION' => true, diff --git a/phpBB/phpbb/message/topic_form.php b/phpBB/phpbb/message/topic_form.php index 8dc6e6a2e5..befc9791dc 100644 --- a/phpBB/phpbb/message/topic_form.php +++ b/phpBB/phpbb/message/topic_form.php @@ -153,10 +153,12 @@ class topic_form extends form parent::render($template); $this->user->add_lang('viewtopic'); + + phpbb_language_select($this->db, $template, $this->recipient_lang); + $template->assign_vars(array( 'EMAIL' => $this->recipient_address, 'NAME' => $this->recipient_name, - 'S_LANG_OPTIONS' => language_select($this->recipient_lang), 'MESSAGE' => $this->body, 'L_EMAIL_BODY_EXPLAIN' => $this->user->lang['EMAIL_TOPIC_EXPLAIN'], diff --git a/phpBB/styles/prosilver/template/memberlist_email.html b/phpBB/styles/prosilver/template/memberlist_email.html index 5bbfb08506..abd4c88488 100644 --- a/phpBB/styles/prosilver/template/memberlist_email.html +++ b/phpBB/styles/prosilver/template/memberlist_email.html @@ -71,7 +71,13 @@

{L_DEST_LANG_EXPLAIN}
-
+
+ +
diff --git a/phpBB/styles/prosilver/template/ucp_agreement.html b/phpBB/styles/prosilver/template/ucp_agreement.html index 810fe2bec1..c4fd1d2915 100644 --- a/phpBB/styles/prosilver/template/ucp_agreement.html +++ b/phpBB/styles/prosilver/template/ucp_agreement.html @@ -2,7 +2,7 @@ - +{% if lang_options|length > 0 %}