[ticket/12254] Use a cookie instead of SID to store language selection

PHPBB3-12254
This commit is contained in:
Matt Friedman 2014-05-02 12:08:35 -07:00
parent 42c60c6a9f
commit 78325736b1
4 changed files with 13 additions and 10 deletions

View file

@ -102,7 +102,6 @@ class ucp_register
$s_hidden_fields = array_merge($s_hidden_fields, array( $s_hidden_fields = array_merge($s_hidden_fields, array(
'change_lang' => '', 'change_lang' => '',
'language' => ($user_lang != $config['default_lang']) ? $user_lang : '',
)); ));
// If we change the language, we want to pass on some more possible parameter. // If we change the language, we want to pass on some more possible parameter.
@ -150,6 +149,9 @@ class ucp_register
'S_SHOW_COPPA' => true, 'S_SHOW_COPPA' => true,
'S_HIDDEN_FIELDS' => build_hidden_fields($s_hidden_fields), 'S_HIDDEN_FIELDS' => build_hidden_fields($s_hidden_fields),
'S_UCP_ACTION' => append_sid("{$phpbb_root_path}ucp.$phpEx", 'mode=register'), 'S_UCP_ACTION' => append_sid("{$phpbb_root_path}ucp.$phpEx", 'mode=register'),
'COOKIE_NAME' => $config['cookie_name'],
'COOKIE_PATH' => $config['cookie_path'],
)); ));
} }
else else
@ -162,6 +164,9 @@ class ucp_register
'S_REGISTRATION' => true, 'S_REGISTRATION' => true,
'S_HIDDEN_FIELDS' => build_hidden_fields($s_hidden_fields), 'S_HIDDEN_FIELDS' => build_hidden_fields($s_hidden_fields),
'S_UCP_ACTION' => append_sid("{$phpbb_root_path}ucp.$phpEx", 'mode=register' . $add_coppa), 'S_UCP_ACTION' => append_sid("{$phpbb_root_path}ucp.$phpEx", 'mode=register' . $add_coppa),
'COOKIE_NAME' => $config['cookie_name'],
'COOKIE_PATH' => $config['cookie_path'],
) )
); );
} }
@ -410,7 +415,6 @@ class ucp_register
$s_hidden_fields = array_merge($s_hidden_fields, array( $s_hidden_fields = array_merge($s_hidden_fields, array(
'agreed' => 'true', 'agreed' => 'true',
'change_lang' => 0, 'change_lang' => 0,
'language' => ($user_lang != $config['default_lang']) ? $user_lang : '',
)); ));
if ($config['coppa_enable']) if ($config['coppa_enable'])
@ -467,6 +471,9 @@ class ucp_register
'S_COPPA' => $coppa, 'S_COPPA' => $coppa,
'S_HIDDEN_FIELDS' => $s_hidden_fields, 'S_HIDDEN_FIELDS' => $s_hidden_fields,
'S_UCP_ACTION' => append_sid("{$phpbb_root_path}ucp.$phpEx", 'mode=register'), 'S_UCP_ACTION' => append_sid("{$phpbb_root_path}ucp.$phpEx", 'mode=register'),
'COOKIE_NAME' => $config['cookie_name'],
'COOKIE_PATH' => $config['cookie_path'],
)); ));
// //

View file

@ -80,16 +80,12 @@ class user extends \phpbb\session
} }
else else
{ {
$change_lang = $request->variable('language', ''); $change_lang = $request->variable($config['cookie_name'] . '_lang', '', true, \phpbb\request\request_interface::COOKIE);
if ($change_lang) if ($change_lang)
{ {
global $SID, $_EXTRA_URL;
$use_lang = basename($change_lang); $use_lang = basename($change_lang);
$user_lang_name = (file_exists($this->lang_path . $use_lang . "/common.$phpEx")) ? $use_lang : basename($config['default_lang']); $user_lang_name = (file_exists($this->lang_path . $use_lang . "/common.$phpEx")) ? $use_lang : basename($config['default_lang']);
$this->data['user_lang'] = $user_lang_name; $this->data['user_lang'] = $user_lang_name;
$SID .= '&language=' . $user_lang_name;
$_EXTRA_URL[] = 'language=' . $user_lang_name;
} }
else else
{ {
@ -203,7 +199,7 @@ class user extends \phpbb\session
$style_id = $style_request; $style_id = $style_request;
$SID .= '&style=' . $style_id; $SID .= '&style=' . $style_id;
$_EXTRA_URL[] = 'style=' . $style_id; $_EXTRA_URL = array('style=' . $style_id);
} }
else else
{ {

View file

@ -10,8 +10,8 @@
*/ */
function change_language(lang_iso) function change_language(lang_iso)
{ {
document.cookie = '{COOKIE_NAME}_lang=' + lang_iso + '; path={COOKIE_PATH}';
document.forms['register'].change_lang.value = lang_iso; document.forms['register'].change_lang.value = lang_iso;
document.forms['register'].language.value = lang_iso;
document.forms['register'].submit(); document.forms['register'].submit();
} }

View file

@ -7,8 +7,8 @@
*/ */
function change_language(lang_iso) function change_language(lang_iso)
{ {
document.cookie = '{COOKIE_NAME}_lang=' + lang_iso + '; path={COOKIE_PATH}';
document.forms['register'].change_lang.value = lang_iso; document.forms['register'].change_lang.value = lang_iso;
document.forms['register'].language.value = lang_iso;
document.forms['register'].submit.click(); document.forms['register'].submit.click();
} }
// ]]> // ]]>