Thomas Bruederli
2013-09-08 028e2a17affd0df163908e97db32ca58661f9730
Merge branch 'master' of github.com:roundcube/roundcubemail
2 files modified
64 ■■■■■ changed files
CHANGELOG 1 ●●●● patch | view | raw | blame | history
program/lib/Roundcube/rcube_config.php 63 ●●●●● patch | view | raw | blame | history
CHANGELOG
@@ -1,6 +1,7 @@
CHANGELOG Roundcube Webmail
===========================
- Workaround broken PHP function timezone_name_from_abbr (#1489261)
- Fix error_reporting directive check (#1489323)
- Make cached message size limit configurable - messages_cache_threshold (#1489317)
- Log also failed logins to userlogins log
program/lib/Roundcube/rcube_config.php
@@ -529,7 +529,7 @@
        // convert deprecated numeric timezone value
        if (isset($props['timezone']) && is_numeric($props['timezone'])) {
            if ($tz = timezone_name_from_abbr("", $props['timezone'] * 3600, 0)) {
            if ($tz = self::timezone_name_from_abbr($props['timezone'])) {
                $props['timezone'] = $tz;
            }
            else {
@@ -539,4 +539,65 @@
        return $props;
    }
    /**
     * timezone_name_from_abbr() replacement. Converts timezone offset
     * into timezone name abbreviation.
     *
     * @param float $offset Timezone offset (in hours)
     *
     * @return string Timezone abbreviation
     */
    static public function timezone_name_from_abbr($offset)
    {
        // List of timezones here is not complete - https://bugs.php.net/bug.php?id=44780
        if ($tz = timezone_name_from_abbr('', $offset * 3600, 0)) {
            return $tz;
        }
        // try with more complete list (#1489261)
        $timezones = array(
            '-660' => "Pacific/Apia",
            '-600' => "Pacific/Honolulu",
            '-570' => "Pacific/Marquesas",
            '-540' => "America/Anchorage",
            '-480' => "America/Los_Angeles",
            '-420' => "America/Denver",
            '-360' => "America/Chicago",
            '-300' => "America/New_York",
            '-270' => "America/Caracas",
            '-240' => "America/Halifax",
            '-210' => "Canada/Newfoundland",
            '-180' => "America/Sao_Paulo",
             '-60' => "Atlantic/Azores",
               '0' => "Europe/London",
              '60' => "Europe/Paris",
             '120' => "Europe/Helsinki",
             '180' => "Europe/Moscow",
             '210' => "Asia/Tehran",
             '240' => "Asia/Dubai",
             '300' => "Asia/Karachi",
             '270' => "Asia/Kabul",
             '300' => "Asia/Karachi",
             '330' => "Asia/Kolkata",
             '345' => "Asia/Katmandu",
             '360' => "Asia/Yekaterinburg",
             '390' => "Asia/Rangoon",
             '420' => "Asia/Krasnoyarsk",
             '480' => "Asia/Shanghai",
             '525' => "Australia/Eucla",
             '540' => "Asia/Tokyo",
             '570' => "Australia/Adelaide",
             '600' => "Australia/Melbourne",
             '630' => "Australia/Lord_Howe",
             '660' => "Asia/Vladivostok",
             '690' => "Pacific/Norfolk",
             '720' => "Pacific/Auckland",
             '765' => "Pacific/Chatham",
             '780' => "Pacific/Enderbury",
             '840' => "Pacific/Kiritimati",
        );
        return $timezones[(string) intval($offset * 60)];
    }
}