Move timezone computation to rcube_config; don't override SESSION['timezone'] when saving prefs

release-0.7
thomascube 13 years ago
parent 1a716d2d34
commit da71783bc9

@ -1021,7 +1021,7 @@ function rcube_strtotime($date)
*/
function format_date($date, $format=NULL)
{
global $CONFIG;
global $RCMAIL, $CONFIG;
$ts = NULL;
@ -1032,13 +1032,7 @@ function format_date($date, $format=NULL)
return '';
// get user's timezone
if ($CONFIG['timezone'] === 'auto')
$tz = isset($_SESSION['timezone']) ? $_SESSION['timezone'] : date('Z')/3600;
else {
$tz = $CONFIG['timezone'];
if ($CONFIG['dst_active'])
$tz++;
}
$tz = $RCMAIL->config->get_timezone();
// convert time to user's timezone
$timestamp = $ts - date('Z', $ts) + ($tz * 3600);
@ -1823,17 +1817,10 @@ function rcmail_gen_message_id()
// Returns RFC2822 formatted current date in user's timezone
function rcmail_user_date()
{
global $CONFIG;
global $RCMAIL, $CONFIG;
// get user's timezone
if ($CONFIG['timezone'] === 'auto') {
$tz = isset($_SESSION['timezone']) ? $_SESSION['timezone'] : date('Z')/3600;
}
else {
$tz = $CONFIG['timezone'];
if ($CONFIG['dst_active'])
$tz++;
}
$tz = $RCMAIL->config->get_timezone();
$date = time() + $tz * 60 * 60;
$date = gmdate('r', $date);

@ -220,6 +220,19 @@ class rcube_config
return $this->prop;
}
/**
* Special getter for user's timezone
*/
public function get_timezone()
{
$tz = $this->get('timezone');
if ($tz == 'auto')
$tz = isset($_SESSION['timezone']) ? $_SESSION['timezone'] : date('Z') / 3600;
else
$tz = intval($tz) + intval($this->get('dst_active'));
return $tz;
}
/**
* Return requested DES crypto key.

@ -141,7 +141,7 @@ switch ($CURR_SECTION)
if (isset($CONFIG['max_pagesize']) && ($a_user_prefs['pagesize'] > $CONFIG['max_pagesize']))
$a_user_prefs['pagesize'] = (int) $CONFIG['max_pagesize'];
$a_user_prefs['timezone'] = $_SESSION['timezone'] = (string) $a_user_prefs['timezone'];
$a_user_prefs['timezone'] = (string) $a_user_prefs['timezone'];
break;
case 'mailbox':

Loading…
Cancel
Save