diff options
Diffstat (limited to 'phpBB/includes/ucp/ucp_register.php')
-rw-r--r-- | phpBB/includes/ucp/ucp_register.php | 34 |
1 files changed, 26 insertions, 8 deletions
diff --git a/phpBB/includes/ucp/ucp_register.php b/phpBB/includes/ucp/ucp_register.php index e3e1315721..22f9c86f40 100644 --- a/phpBB/includes/ucp/ucp_register.php +++ b/phpBB/includes/ucp/ucp_register.php @@ -47,6 +47,9 @@ class ucp_register $user->lang_path = $phpbb_root_path . 'language/' . $lang . '/'; $user->lang = array(); $user->add_lang(array('common', 'ucp')); + + // Setting back agreed to let the user view the agreement in his/her language + $agreed = (empty($_GET['change_lang'])) ? 0 : $agreed; } else { @@ -61,6 +64,8 @@ class ucp_register // if (!$agreed) { + $add_lang = ($change_lang) ? '&change_lang=' . urlencode($change_lang) : ''; + if ($coppa === false && $config['coppa_enable']) { $now = getdate(); @@ -71,11 +76,12 @@ class ucp_register 'L_COPPA_NO' => sprintf($user->lang['UCP_COPPA_BEFORE'], $coppa_birthday), 'L_COPPA_YES' => sprintf($user->lang['UCP_COPPA_ON_AFTER'], $coppa_birthday), - 'U_COPPA_NO' => append_sid("{$phpbb_root_path}ucp.$phpEx", 'mode=register&coppa=0'), - 'U_COPPA_YES' => append_sid("{$phpbb_root_path}ucp.$phpEx", 'mode=register&coppa=1'), + 'U_COPPA_NO' => append_sid("{$phpbb_root_path}ucp.$phpEx", 'mode=register&coppa=0' . $add_lang), + 'U_COPPA_YES' => append_sid("{$phpbb_root_path}ucp.$phpEx", 'mode=register&coppa=1' . $add_lang), 'S_SHOW_COPPA' => true, - 'S_REGISTER_ACTION' => append_sid("{$phpbb_root_path}ucp.$phpEx", 'mode=register')) + 'S_HIDDEN_FIELDS' => ($confirm_id) ? '<input type="hidden" name="confirm_id" value="' . $confirm_id . '" />' : '', + 'S_UCP_ACTION' => append_sid("{$phpbb_root_path}ucp.$phpEx", 'mode=register' . $add_lang)) ); } else @@ -85,7 +91,8 @@ class ucp_register 'S_SHOW_COPPA' => false, 'S_REGISTRATION' => true, - 'S_REGISTER_ACTION' => append_sid("{$phpbb_root_path}ucp.$phpEx", 'mode=register')) + 'S_HIDDEN_FIELDS' => ($confirm_id) ? '<input type="hidden" name="confirm_id" value="' . $confirm_id . '" />' : '', + 'S_UCP_ACTION' => append_sid("{$phpbb_root_path}ucp.$phpEx", 'mode=register' . $add_lang)) ); } @@ -93,6 +100,16 @@ class ucp_register return; } + // Try to manually determine the timezone + $timezone = date('Z') / 3600; + $is_dst = date('I'); + $timezone = ($is_dst) ? $timezone - 1 : $timezone; + + if (!isset($user->lang['tz_zones'][(string) $timezone])) + { + $timezone = $config['board_timezone']; + } + $var_ary = array( 'username' => (string) '', 'password_confirm' => (string) '', @@ -101,8 +118,8 @@ class ucp_register 'email' => (string) '', 'email_confirm' => (string) '', 'confirm_code' => (string) '', - 'lang' => (string) $config['default_lang'], - 'tz' => (float) $config['board_timezone'], + 'lang' => (string) $user->lang_name, + 'tz' => (float) $timezone, ); // If we change the language inline, we do not want to display errors, but pre-fill already filled out values @@ -263,6 +280,7 @@ class ucp_register 'user_email' => $email, 'group_id' => (int) $group_id, 'user_timezone' => (float) $tz, + 'user_dst' => $is_dst, 'user_lang' => $lang, 'user_type' => $user_type, 'user_actkey' => $user_actkey, @@ -351,7 +369,7 @@ class ucp_register if (sizeof($admin_ary)) { - $where_sql .= ' OR ' . $db->sql_in_set('user_id', $admin_ary[0]['a_user']); + $where_sql .= ' OR ' . $db->sql_in_set('user_id', $admin_ary); } $sql = 'SELECT user_id, username, user_email, user_lang, user_jabber, user_notify_type @@ -472,7 +490,7 @@ class ucp_register $pass_char_ary = array('.*' => 'PASS_TYPE_ANY', '[a-zA-Z]' => 'PASS_TYPE_CASE', '[a-zA-Z0-9]' => 'PASS_TYPE_ALPHA', '[a-zA-Z\W]' => 'PASS_TYPE_SYMBOL'); $lang = (isset($lang)) ? $lang : $config['default_lang']; - $tz = (isset($tz)) ? $tz : $config['board_timezone']; + $tz = (isset($tz)) ? $tz : $timezone; // $template->assign_vars(array( |