mirror of
https://github.com/Lastorder-DC/rhymix.git
synced 2026-01-12 07:11:42 +09:00
Improve time zone selection
This commit is contained in:
parent
3c8b586fac
commit
e971e7a725
4 changed files with 51 additions and 13 deletions
|
|
@ -157,15 +157,22 @@ class installController extends install
|
|||
$config['locale']['enabled_lang'] = array($config['locale']['default_lang']);
|
||||
|
||||
// Set the internal and default time zones.
|
||||
$user_timezone = intval(get_time_zone_offset($time_zone ?: '+0900') / 3600);
|
||||
switch ($user_timezone)
|
||||
if (strpos($time_zone, '/') !== false)
|
||||
{
|
||||
case 9:
|
||||
$config['locale']['default_timezone'] = 'Asia/Seoul'; break;
|
||||
case 0:
|
||||
$config['locale']['default_timezone'] = 'Etc/UTC'; break;
|
||||
default:
|
||||
$config['locale']['default_timezone'] = 'Etc/GMT' . ($user_timezone > 0 ? '-' : '+') . abs($user_timezone);
|
||||
$config['locale']['default_timezone'] = $time_zone;
|
||||
}
|
||||
else
|
||||
{
|
||||
$user_timezone = intval(get_time_zone_offset($time_zone ?: '+0900') / 3600);
|
||||
switch ($user_timezone)
|
||||
{
|
||||
case 9:
|
||||
$config['locale']['default_timezone'] = 'Asia/Seoul'; break;
|
||||
case 0:
|
||||
$config['locale']['default_timezone'] = 'Etc/UTC'; break;
|
||||
default:
|
||||
$config['locale']['default_timezone'] = 'Etc/GMT' . ($user_timezone > 0 ? '-' : '+') . abs($user_timezone);
|
||||
}
|
||||
}
|
||||
$config['locale']['internal_timezone'] = intval(date('Z'));
|
||||
|
||||
|
|
|
|||
|
|
@ -145,11 +145,42 @@ class installView extends install
|
|||
return $this->dispInstallCheckEnv();
|
||||
}
|
||||
|
||||
Context::set('use_rewrite', $_SESSION['use_rewrite']);
|
||||
// Get list of time zones.
|
||||
$timezones = DateTimeZone::listIdentifiers();
|
||||
natcasesort($timezones);
|
||||
$timezones = array_combine($timezones, $timezones);
|
||||
Context::set('timezones', $timezones);
|
||||
|
||||
// Automatically select a time zone for the user.
|
||||
Context::set('selected_timezone', $this->detectUserTimeZone());
|
||||
|
||||
// Always use SSL if installing via SSL.
|
||||
Context::set('use_ssl', RX_SSL ? 'always' : 'none');
|
||||
Context::set('time_zone', $GLOBALS['time_zone']);
|
||||
$this->setTemplateFile('other_config');
|
||||
}
|
||||
|
||||
/**
|
||||
* Detect best time zone for the user.
|
||||
*/
|
||||
function detectUserTimeZone()
|
||||
{
|
||||
switch (Context::getLangType())
|
||||
{
|
||||
case 'ko': return 'Asia/Seoul';
|
||||
case 'en': return 'Europe/London';
|
||||
case 'ja': return 'Asia/Tokyo';
|
||||
case 'zh-CN': return 'Asia/Shanghai';
|
||||
case 'zh-TW': return 'Asia/Taipei';
|
||||
case 'de': return 'Europe/Berlin';
|
||||
case 'es': return 'Europe/Madrid';
|
||||
case 'fr': return 'Europe/Paris';
|
||||
case 'mn': return 'Asia/Ulaanbaatar';
|
||||
case 'ru': return 'Europe/Moscow';
|
||||
case 'tr': return 'Europe/Istanbul';
|
||||
case 'vi': return 'Asia/Ho_Chi_Minh';
|
||||
default: return 'UTC';
|
||||
}
|
||||
}
|
||||
}
|
||||
/* End of file install.view.php */
|
||||
/* Location: ./modules/install/install.view.php */
|
||||
|
|
|
|||
|
|
@ -42,7 +42,7 @@
|
|||
<label for="time_zone" class="x_control-label">{$lang->time_zone}</label>
|
||||
<div class="x_controls">
|
||||
<select name="time_zone" style="width:100%">
|
||||
<option loop="$time_zone => $key,$val" id="{$key}" value="{$key}" selected="selected"|cond="$key==date('O')">{$val}</option>
|
||||
<option loop="$timezones => $key,$val" value="{$key}" selected="selected"|cond="$key==$selected_timezone">{$val}</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue