mirror of
https://github.com/phpbb/phpbb.git
synced 2025-08-20 07:21:30 +02:00
Merge pull request #843 from nickvergessen/feature/new-tz-handling
Feature/new tz handling
This commit is contained in:
@@ -57,8 +57,7 @@ class acp_board
|
||||
'board_disable_msg' => false,
|
||||
'default_lang' => array('lang' => 'DEFAULT_LANGUAGE', 'validate' => 'lang', 'type' => 'select', 'function' => 'language_select', 'params' => array('{CONFIG_VALUE}'), 'explain' => false),
|
||||
'default_dateformat' => array('lang' => 'DEFAULT_DATE_FORMAT', 'validate' => 'string', 'type' => 'custom', 'method' => 'dateformat_select', 'explain' => true),
|
||||
'board_timezone' => array('lang' => 'SYSTEM_TIMEZONE', 'validate' => 'string', 'type' => 'select', 'function' => 'tz_select', 'params' => array('{CONFIG_VALUE}', 1), 'explain' => true),
|
||||
'board_dst' => array('lang' => 'SYSTEM_DST', 'validate' => 'bool', 'type' => 'radio:yes_no', 'explain' => false),
|
||||
'board_timezone' => array('lang' => 'SYSTEM_TIMEZONE', 'validate' => 'timezone', 'type' => 'custom', 'method' => 'timezone_select', 'explain' => true),
|
||||
'default_style' => array('lang' => 'DEFAULT_STYLE', 'validate' => 'int', 'type' => 'select', 'function' => 'style_select', 'params' => array('{CONFIG_VALUE}', false), 'explain' => false),
|
||||
'override_user_style' => array('lang' => 'OVERRIDE_STYLE', 'validate' => 'bool', 'type' => 'radio:yes_no', 'explain' => true),
|
||||
|
||||
@@ -897,6 +896,18 @@ class acp_board
|
||||
'<br /><br /><input class="button2" type="submit" id="' . $key . '_enable" name="' . $key . '_enable" value="' . $user->lang['ALLOW_QUICK_REPLY_BUTTON'] . '" />';
|
||||
}
|
||||
|
||||
/**
|
||||
* Select guest timezone
|
||||
*/
|
||||
function timezone_select($value, $key)
|
||||
{
|
||||
global $user;
|
||||
|
||||
$timezone_select = phpbb_timezone_select($user, $value, true);
|
||||
$timezone_select['tz_select'];
|
||||
|
||||
return '<select name="config[' . $key . ']" id="' . $key . '">' . $timezone_select['tz_select'] . '</select>';
|
||||
}
|
||||
|
||||
/**
|
||||
* Select default dateformat
|
||||
@@ -907,10 +918,14 @@ class acp_board
|
||||
|
||||
// Let the format_date function operate with the acp values
|
||||
$old_tz = $user->timezone;
|
||||
$old_dst = $user->dst;
|
||||
|
||||
$user->timezone = $config['board_timezone'] * 3600;
|
||||
$user->dst = $config['board_dst'] * 3600;
|
||||
try
|
||||
{
|
||||
$user->timezone = new DateTimeZone($config['board_timezone']);
|
||||
}
|
||||
catch (Exception $e)
|
||||
{
|
||||
// If the board timezone is invalid, we just use the users timezone.
|
||||
}
|
||||
|
||||
$dateformat_options = '';
|
||||
|
||||
@@ -930,7 +945,6 @@ class acp_board
|
||||
|
||||
// Reset users date options
|
||||
$user->timezone = $old_tz;
|
||||
$user->dst = $old_dst;
|
||||
|
||||
return "<select name=\"dateoptions\" id=\"dateoptions\" onchange=\"if (this.value == 'custom') { document.getElementById('" . addslashes($key) . "').value = '" . addslashes($value) . "'; } else { document.getElementById('" . addslashes($key) . "').value = this.value; }\">$dateformat_options</select>
|
||||
<input type=\"text\" name=\"config[$key]\" id=\"$key\" value=\"$value\" maxlength=\"30\" />";
|
||||
|
@@ -1460,9 +1460,8 @@ class acp_users
|
||||
$data = array(
|
||||
'dateformat' => utf8_normalize_nfc(request_var('dateformat', $user_row['user_dateformat'], true)),
|
||||
'lang' => basename(request_var('lang', $user_row['user_lang'])),
|
||||
'tz' => request_var('tz', (float) $user_row['user_timezone']),
|
||||
'tz' => request_var('tz', $user_row['user_timezone']),
|
||||
'style' => request_var('style', $user_row['user_style']),
|
||||
'dst' => request_var('dst', $user_row['user_dst']),
|
||||
'viewemail' => request_var('viewemail', $user_row['user_allow_viewemail']),
|
||||
'massemail' => request_var('massemail', $user_row['user_allow_massemail']),
|
||||
'hideonline' => request_var('hideonline', !$user_row['user_allow_viewonline']),
|
||||
@@ -1497,7 +1496,7 @@ class acp_users
|
||||
$error = validate_data($data, array(
|
||||
'dateformat' => array('string', false, 1, 30),
|
||||
'lang' => array('match', false, '#^[a-z_\-]{2,}$#i'),
|
||||
'tz' => array('num', false, -14, 14),
|
||||
'tz' => array('timezone'),
|
||||
|
||||
'topic_sk' => array('string', false, 1, 1),
|
||||
'topic_sd' => array('string', false, 1, 1),
|
||||
@@ -1533,7 +1532,6 @@ class acp_users
|
||||
'user_notify_type' => $data['notifymethod'],
|
||||
'user_notify_pm' => $data['notifypm'],
|
||||
|
||||
'user_dst' => $data['dst'],
|
||||
'user_dateformat' => $data['dateformat'],
|
||||
'user_lang' => $data['lang'],
|
||||
'user_timezone' => $data['tz'],
|
||||
@@ -1643,6 +1641,7 @@ class acp_users
|
||||
${'s_sort_' . $sort_option . '_dir'} .= '</select>';
|
||||
}
|
||||
|
||||
$timezone_selects = phpbb_timezone_select($user, $data['tz'], true);
|
||||
$template->assign_vars(array(
|
||||
'S_PREFS' => true,
|
||||
'S_JABBER_DISABLED' => ($config['jab_enable'] && $user_row['user_jabber'] && @extension_loaded('xml')) ? false : true,
|
||||
@@ -1656,7 +1655,6 @@ class acp_users
|
||||
'NOTIFY_BOTH' => ($data['notifymethod'] == NOTIFY_BOTH) ? true : false,
|
||||
'NOTIFY_PM' => $data['notifypm'],
|
||||
'POPUP_PM' => $data['popuppm'],
|
||||
'DST' => $data['dst'],
|
||||
'BBCODE' => $data['bbcode'],
|
||||
'SMILIES' => $data['smilies'],
|
||||
'ATTACH_SIG' => $data['sig'],
|
||||
@@ -1683,7 +1681,8 @@ class acp_users
|
||||
|
||||
'S_LANG_OPTIONS' => language_select($data['lang']),
|
||||
'S_STYLE_OPTIONS' => style_select($data['style']),
|
||||
'S_TZ_OPTIONS' => tz_select($data['tz'], true),
|
||||
'S_TZ_OPTIONS' => $timezone_selects['tz_select'],
|
||||
'S_TZ_DATE_OPTIONS' => $timezone_selects['tz_dates'],
|
||||
)
|
||||
);
|
||||
|
||||
|
Reference in New Issue
Block a user