mirror of
https://github.com/EGroupware/egroupware.git
synced 2024-12-25 16:18:57 +01:00
* Calendar: added windows timezones to all installations (was added in calendar update 1.7.005, but not to new installs)
This commit is contained in:
commit
f40634fe6a
@ -170,6 +170,8 @@ class calendar_timezones
|
||||
{
|
||||
$msg = self::import_sqlite($updated);
|
||||
if ($updated) error_log($msg); // log that timezones have been updated
|
||||
$msg = self::import_tz_aliases($updated);
|
||||
if ($updated) error_log($msg); // log that timezone aliases have been updated
|
||||
}
|
||||
catch (Exception $e)
|
||||
{
|
||||
@ -182,7 +184,7 @@ class calendar_timezones
|
||||
/**
|
||||
* Import timezones from sqlite file
|
||||
*
|
||||
* @param boolean $updated=null on return true if update was neccessary, false if tz's were already up to date
|
||||
* @param boolean &$updated=null on return true if update was neccessary, false if tz's were already up to date
|
||||
* @param string $file='calendar/setup/timezones.sqlite' filename relative to EGW_SERVER_ROOT
|
||||
* @param boolean $check_version=true true: check version and only act, if it's different
|
||||
* @return string message about update
|
||||
@ -217,12 +219,12 @@ class calendar_timezones
|
||||
throw new egw_exception_wrong_parameter(__METHOD__."('$file') only schema version 1 supported!");
|
||||
}
|
||||
$tz_version = $pdo->query('SELECT version FROM tz_version')->fetchColumn();
|
||||
$tz_db_version = $GLOBALS['egw']->db->query("SELECT config_value FROM egw_config WHERE config_name='tz_version' AND config_app='phpgwapi'",__LINE__,__FILE__)->fetchColumn();
|
||||
//echo "<p>tz_version($path)=$tz_version, tz_db_version=$tz_db_version</p>\n";
|
||||
if ($tz_version === $tz_db_version)
|
||||
$config = config::read('phpgwapi');
|
||||
//echo "<p>tz_version($path)=$tz_version, tz_db_version=$config[tz_version]</p>\n";
|
||||
if ($tz_version === $config['tz_version'])
|
||||
{
|
||||
$updated = false;
|
||||
return lang('Nothing to update, version is already %1.',$tz_db_version); // we already have the right
|
||||
return lang('Nothing to update, version is already %1.',$config['tz_version']); // we already have the right
|
||||
}
|
||||
$tz2id = array();
|
||||
foreach($pdo->query('SELECT * FROM tz_data ORDER BY alias') as $data)
|
||||
@ -249,16 +251,59 @@ class calendar_timezones
|
||||
// only query last insert id, if not already in database (gives warning for PostgreSQL)
|
||||
if (!$tz2id[$data['tzid']]) $tz2id[$data['tzid']] = $GLOBALS['egw']->db->get_last_insert_id('egw_cal_timezones','tz_id');
|
||||
}
|
||||
$GLOBALS['egw']->db->insert('egw_config',array('config_value' => $tz_version),array(
|
||||
'config_name' => 'tz_version',
|
||||
'config_app' => 'phpgwapi',
|
||||
),__LINE__,__FILE__,'phpgwapi');
|
||||
config::save_value('tz_version', $tz_version, 'phpgwapi');
|
||||
|
||||
//_debug_array($tz2id);
|
||||
$updated = true;
|
||||
return lang('Timezones updated to version %1 (%2 records updated).',$tz_version,count($tz2id));
|
||||
}
|
||||
|
||||
/**
|
||||
* Import timezone aliases
|
||||
*
|
||||
* @param boolean &$updated=null on return true if update was neccessary, false if tz's were already up to date
|
||||
* @param string $file='calendar/setup/tz_aliases.inc.php' filename relative to EGW_SERVER_ROOT
|
||||
* @param boolean $check_mtime=true true: check version and only act, if it's different
|
||||
* @return string message about update
|
||||
* @throws egw_exception_wrong_parameter if $file is not readable or wrong format/version
|
||||
*/
|
||||
public static function import_tz_aliases(&$updated=null,$file='calendar/setup/tz_aliases.inc.php',$check_mtime=true)
|
||||
{
|
||||
$path = EGW_SERVER_ROOT.'/'.$file;
|
||||
|
||||
if (!file_exists($path) || !is_readable($path))
|
||||
{
|
||||
throw new egw_exception_wrong_parameter(__METHOD__."('$file') not found or readable!");
|
||||
}
|
||||
$config = config::read('phpgwapi');
|
||||
$tz_aliases_mtime = date('Y-m-d H:i:s', filemtime($path));
|
||||
if ($tz_aliases_mtime === $config['tz_aliases_mtime'])
|
||||
{
|
||||
$updated = false;
|
||||
return lang('Nothing to update, version is already %1.',$tz_aliases_mtime);
|
||||
}
|
||||
include($path); // sets $tz_aliases
|
||||
|
||||
$updated = 0;
|
||||
foreach($tz_aliases as $alias => $tzid)
|
||||
{
|
||||
if (self::tz2id($tzid, 'alias') !== $alias) // not in DB or different
|
||||
{
|
||||
$GLOBALS['egw']->db->insert('egw_cal_timezones',array(
|
||||
'tz_alias' => $alias,
|
||||
),array(
|
||||
'tz_tzid' => $tzid,
|
||||
),__LINE__,__FILE__,'calendar');
|
||||
++$updated;
|
||||
}
|
||||
}
|
||||
config::save_value('tz_aliases_mtime',$tz_aliases_mtime,$app='phpgwapi');
|
||||
|
||||
//_debug_array($tz2id);
|
||||
$updated = true;
|
||||
return lang('Timezones aliases updated to version %1 (%2 records updated).', $tz_aliases_mtime, $updated);
|
||||
}
|
||||
|
||||
/**
|
||||
* Admin >> Update timezones
|
||||
*
|
||||
@ -269,7 +314,10 @@ class calendar_timezones
|
||||
{
|
||||
throw new egw_exception_no_permission_admin();
|
||||
}
|
||||
$GLOBALS['egw']->framework->render('<h3>'.self::import_sqlite()."</h3>\n",lang('Update timezones'),true);
|
||||
$GLOBALS['egw']->framework->render(
|
||||
'<h3>'.self::import_sqlite()."</h3>\n".
|
||||
'<h3>'.self::import_tz_aliases()."</h3>\n",
|
||||
lang('Update timezones'),true);
|
||||
}
|
||||
}
|
||||
/*
|
||||
|
@ -27,6 +27,7 @@ foreach(array(
|
||||
try
|
||||
{
|
||||
calendar_timezones::import_sqlite();
|
||||
calendar_timezones::import_tz_aliases();
|
||||
}
|
||||
// catch broken sqlite extension exception and output message, as user can't do anything about it
|
||||
// all other exceptions are fatal, to get user to fix them!
|
||||
|
@ -1882,119 +1882,8 @@ function calendar_upgrade1_7_004()
|
||||
*/
|
||||
function calendar_upgrade1_7_005()
|
||||
{
|
||||
foreach(array(
|
||||
'AUS Central Standard Time' => 'Australia/Darwin',
|
||||
'AUS Eastern Standard Time' => 'Australia/Sydney',
|
||||
'Afghanistan Standard Time' => 'Asia/Kabul',
|
||||
'Alaskan Standard Time' => 'America/Anchorage',
|
||||
'Arab Standard Time' => 'Asia/Riyadh',
|
||||
'Arabian Standard Time' => 'Asia/Dubai',
|
||||
'Arabic Standard Time' => 'Asia/Baghdad',
|
||||
'Argentina Standard Time' => 'America/Argentina/Buenos_Aires', // was 'America/Buenos_Aires',
|
||||
'Armenian Standard Time' => 'Asia/Yerevan',
|
||||
'Atlantic Standard Time' => 'America/Halifax',
|
||||
'Azerbaijan Standard Time' => 'Asia/Baku',
|
||||
'Azores Standard Time' => 'Atlantic/Azores',
|
||||
'Canada Central Standard Time' => 'America/Regina',
|
||||
'Cape Verde Standard Time' => 'Atlantic/Cape_Verde',
|
||||
'Caucasus Standard Time' => 'Asia/Yerevan',
|
||||
'Cen. Australia Standard Time' => 'Australia/Adelaide',
|
||||
'Central America Standard Time' => 'America/Guatemala',
|
||||
'Central Asia Standard Time' => 'Asia/Dhaka',
|
||||
'Central Brazilian Standard Time' => 'America/Manaus',
|
||||
'Central Europe Standard Time' => 'Europe/Budapest',
|
||||
'Central European Standard Time' => 'Europe/Warsaw',
|
||||
'Central Pacific Standard Time' => 'Pacific/Guadalcanal',
|
||||
'Central Standard Time' => 'America/Chicago',
|
||||
'Central Standard Time (Mexico)' => 'America/Mexico_City',
|
||||
'China Standard Time' => 'Asia/Shanghai',
|
||||
'Dateline Standard Time' => 'Etc/GMT+12',
|
||||
'E. Africa Standard Time' => 'Africa/Nairobi',
|
||||
'E. Australia Standard Time' => 'Australia/Brisbane',
|
||||
'E. Europe Standard Time' => 'Europe/Minsk',
|
||||
'E. South America Standard Time' => 'America/Sao_Paulo',
|
||||
'Eastern Standard Time' => 'America/New_York',
|
||||
'Egypt Standard Time' => 'Africa/Cairo',
|
||||
'Ekaterinburg Standard Time' => 'Asia/Yekaterinburg',
|
||||
'FLE Standard Time' => 'Europe/Kiev',
|
||||
'Fiji Standard Time' => 'Pacific/Fiji',
|
||||
'GMT Standard Time' => 'Europe/London',
|
||||
'GTB Standard Time' => 'Europe/Istanbul',
|
||||
'Georgian Standard Time' => 'Etc/GMT-3',
|
||||
'Greenland Standard Time' => 'America/Godthab',
|
||||
'Greenwich Standard Time' => 'Atlantic/Reykjavik', // was 'Africa/Reykjavik',
|
||||
'Hawaiian Standard Time' => 'Pacific/Honolulu',
|
||||
'India Standard Time' => 'Asia/Calcutta',
|
||||
'Iran Standard Time' => 'Asia/Tehran',
|
||||
'Israel Standard Time' => 'Asia/Jerusalem',
|
||||
'Jordan Standard Time' => 'Asia/Amman',
|
||||
'Korea Standard Time' => 'Asia/Seoul',
|
||||
'Mauritius Standard Time' => 'Indian/Mauritius',
|
||||
'Mexico Standard Time' => 'America/Mexico_City',
|
||||
'Mexico Standard Time 2' => 'America/Chihuahua',
|
||||
'Mid-Atlantic Standard Time' => 'Atlantic/South_Georgia',
|
||||
'Middle East Standard Time' => 'Asia/Beirut',
|
||||
'Montevideo Standard Time' => 'America/Montevideo',
|
||||
'Morocco Standard Time' => 'Africa/Casablanca',
|
||||
'Mountain Standard Time' => 'America/Denver',
|
||||
'Mountain Standard Time (Mexico)' => 'America/Chihuahua',
|
||||
'Myanmar Standard Time' => 'Asia/Rangoon',
|
||||
'N. Central Asia Standard Time' => 'Asia/Novosibirsk',
|
||||
'Namibia Standard Time' => 'Africa/Windhoek',
|
||||
'Nepal Standard Time' => 'Asia/Katmandu',
|
||||
'New Zealand Standard Time' => 'Pacific/Auckland',
|
||||
'Newfoundland Standard Time' => 'America/St_Johns',
|
||||
'North Asia East Standard Time' => 'Asia/Irkutsk',
|
||||
'North Asia Standard Time' => 'Asia/Krasnoyarsk',
|
||||
'Pacific SA Standard Time' => 'America/Santiago',
|
||||
'Pacific Standard Time' => 'America/Los_Angeles',
|
||||
'Pacific Standard Time (Mexico)' => 'America/Tijuana',
|
||||
'Pakistan Standard Time' => 'Asia/Karachi',
|
||||
'Romance Standard Time' => 'Europe/Paris',
|
||||
'Russian Standard Time' => 'Europe/Moscow',
|
||||
'SA Eastern Standard Time' => 'Etc/GMT+3',
|
||||
'SA Pacific Standard Time' => 'America/Bogota',
|
||||
'SA Western Standard Time' => 'America/La_Paz',
|
||||
'SE Asia Standard Time' => 'Asia/Bangkok',
|
||||
'Samoa Standard Time' => 'Pacific/Apia',
|
||||
'Singapore Standard Time' => 'Asia/Singapore',
|
||||
'South Africa Standard Time' => 'Africa/Johannesburg',
|
||||
'Sri Lanka Standard Time' => 'Asia/Colombo',
|
||||
'Taipei Standard Time' => 'Asia/Taipei',
|
||||
'Tasmania Standard Time' => 'Australia/Hobart',
|
||||
'Tokyo Standard Time' => 'Asia/Tokyo',
|
||||
'Tonga Standard Time' => 'Pacific/Tongatapu',
|
||||
'US Eastern Standard Time' => 'Etc/GMT+5',
|
||||
'US Mountain Standard Time' => 'America/Phoenix',
|
||||
'Venezuela Standard Time' => 'America/Caracas',
|
||||
'Vladivostok Standard Time' => 'Asia/Vladivostok',
|
||||
'W. Australia Standard Time' => 'Australia/Perth',
|
||||
'W. Central Africa Standard Time' => 'Africa/Lagos',
|
||||
'W. Europe Standard Time' => 'Europe/Berlin',
|
||||
'West Asia Standard Time' => 'Asia/Tashkent',
|
||||
'West Pacific Standard Time' => 'Pacific/Port_Moresby',
|
||||
'Yakutsk Standard Time' => 'Asia/Yakutsk',
|
||||
) as $win_tz => $tzid)
|
||||
{
|
||||
if (!(calendar_timezones::tz2id($win_tz))) // not already defined
|
||||
{
|
||||
if (!($id = calendar_timezones::tz2id($tzid)))
|
||||
{
|
||||
error_log(__METHOD__."() Windows timezone: '$win_tz': TZID='$tzid' is NOT defined!");
|
||||
}
|
||||
else
|
||||
{
|
||||
$GLOBALS['egw']->db->insert('egw_cal_timezones',array(
|
||||
'tz_alias' => $id,
|
||||
'tz_latitude' => null,
|
||||
'tz_longitude' => null,
|
||||
'tz_component' => null,
|
||||
),array(
|
||||
'tz_tzid' => $win_tz,
|
||||
),__LINE__,__FILE__,'calendar');
|
||||
}
|
||||
}
|
||||
}
|
||||
calendar_timezones::import_tz_aliases();
|
||||
|
||||
return $GLOBALS['setup_info']['calendar']['currentver'] = '1.7.006';
|
||||
}
|
||||
|
||||
|
103
calendar/setup/tz_aliases.inc.php
Normal file
103
calendar/setup/tz_aliases.inc.php
Normal file
@ -0,0 +1,103 @@
|
||||
<?php
|
||||
/**
|
||||
* EGroupware - Windows timezone aliases
|
||||
*
|
||||
* @link http://unicode.org/repos/cldr-tmp/trunk/diff/supplemental/windows_tzid.html
|
||||
* @link http://www.egroupware.org
|
||||
* @package calendar
|
||||
* @version $Id$
|
||||
*/
|
||||
|
||||
$tz_aliases = array(
|
||||
'AUS Central Standard Time' => 'Australia/Darwin',
|
||||
'AUS Eastern Standard Time' => 'Australia/Sydney',
|
||||
'Afghanistan Standard Time' => 'Asia/Kabul',
|
||||
'Alaskan Standard Time' => 'America/Anchorage',
|
||||
'Arab Standard Time' => 'Asia/Riyadh',
|
||||
'Arabian Standard Time' => 'Asia/Dubai',
|
||||
'Arabic Standard Time' => 'Asia/Baghdad',
|
||||
'Argentina Standard Time' => 'America/Argentina/Buenos_Aires', // was 'America/Buenos_Aires',
|
||||
'Armenian Standard Time' => 'Asia/Yerevan',
|
||||
'Atlantic Standard Time' => 'America/Halifax',
|
||||
'Azerbaijan Standard Time' => 'Asia/Baku',
|
||||
'Azores Standard Time' => 'Atlantic/Azores',
|
||||
'Canada Central Standard Time' => 'America/Regina',
|
||||
'Cape Verde Standard Time' => 'Atlantic/Cape_Verde',
|
||||
'Caucasus Standard Time' => 'Asia/Yerevan',
|
||||
'Cen. Australia Standard Time' => 'Australia/Adelaide',
|
||||
'Central America Standard Time' => 'America/Guatemala',
|
||||
'Central Asia Standard Time' => 'Asia/Dhaka',
|
||||
'Central Brazilian Standard Time' => 'America/Manaus',
|
||||
'Central Europe Standard Time' => 'Europe/Budapest',
|
||||
'Central European Standard Time' => 'Europe/Warsaw',
|
||||
'Central Pacific Standard Time' => 'Pacific/Guadalcanal',
|
||||
'Central Standard Time' => 'America/Chicago',
|
||||
'Central Standard Time (Mexico)' => 'America/Mexico_City',
|
||||
'China Standard Time' => 'Asia/Shanghai',
|
||||
'Dateline Standard Time' => 'Etc/GMT+12',
|
||||
'E. Africa Standard Time' => 'Africa/Nairobi',
|
||||
'E. Australia Standard Time' => 'Australia/Brisbane',
|
||||
'E. Europe Standard Time' => 'Europe/Minsk',
|
||||
'E. South America Standard Time' => 'America/Sao_Paulo',
|
||||
'Eastern Standard Time' => 'America/New_York',
|
||||
'Egypt Standard Time' => 'Africa/Cairo',
|
||||
'Ekaterinburg Standard Time' => 'Asia/Yekaterinburg',
|
||||
'FLE Standard Time' => 'Europe/Kiev',
|
||||
'Fiji Standard Time' => 'Pacific/Fiji',
|
||||
'GMT Standard Time' => 'Europe/London',
|
||||
'GTB Standard Time' => 'Europe/Istanbul',
|
||||
'Georgian Standard Time' => 'Etc/GMT-3',
|
||||
'Greenland Standard Time' => 'America/Godthab',
|
||||
'Greenwich Standard Time' => 'Atlantic/Reykjavik', // was 'Africa/Reykjavik',
|
||||
'Hawaiian Standard Time' => 'Pacific/Honolulu',
|
||||
'India Standard Time' => 'Asia/Calcutta',
|
||||
'Iran Standard Time' => 'Asia/Tehran',
|
||||
'Israel Standard Time' => 'Asia/Jerusalem',
|
||||
'Jordan Standard Time' => 'Asia/Amman',
|
||||
'Korea Standard Time' => 'Asia/Seoul',
|
||||
'Mauritius Standard Time' => 'Indian/Mauritius',
|
||||
'Mexico Standard Time' => 'America/Mexico_City',
|
||||
'Mexico Standard Time 2' => 'America/Chihuahua',
|
||||
'Mid-Atlantic Standard Time' => 'Atlantic/South_Georgia',
|
||||
'Middle East Standard Time' => 'Asia/Beirut',
|
||||
'Montevideo Standard Time' => 'America/Montevideo',
|
||||
'Morocco Standard Time' => 'Africa/Casablanca',
|
||||
'Mountain Standard Time' => 'America/Denver',
|
||||
'Mountain Standard Time (Mexico)' => 'America/Chihuahua',
|
||||
'Myanmar Standard Time' => 'Asia/Rangoon',
|
||||
'N. Central Asia Standard Time' => 'Asia/Novosibirsk',
|
||||
'Namibia Standard Time' => 'Africa/Windhoek',
|
||||
'Nepal Standard Time' => 'Asia/Katmandu',
|
||||
'New Zealand Standard Time' => 'Pacific/Auckland',
|
||||
'Newfoundland Standard Time' => 'America/St_Johns',
|
||||
'North Asia East Standard Time' => 'Asia/Irkutsk',
|
||||
'North Asia Standard Time' => 'Asia/Krasnoyarsk',
|
||||
'Pacific SA Standard Time' => 'America/Santiago',
|
||||
'Pacific Standard Time' => 'America/Los_Angeles',
|
||||
'Pacific Standard Time (Mexico)' => 'America/Tijuana',
|
||||
'Pakistan Standard Time' => 'Asia/Karachi',
|
||||
'Romance Standard Time' => 'Europe/Paris',
|
||||
'Russian Standard Time' => 'Europe/Moscow',
|
||||
'SA Eastern Standard Time' => 'Etc/GMT+3',
|
||||
'SA Pacific Standard Time' => 'America/Bogota',
|
||||
'SA Western Standard Time' => 'America/La_Paz',
|
||||
'SE Asia Standard Time' => 'Asia/Bangkok',
|
||||
'Samoa Standard Time' => 'Pacific/Apia',
|
||||
'Singapore Standard Time' => 'Asia/Singapore',
|
||||
'South Africa Standard Time' => 'Africa/Johannesburg',
|
||||
'Sri Lanka Standard Time' => 'Asia/Colombo',
|
||||
'Taipei Standard Time' => 'Asia/Taipei',
|
||||
'Tasmania Standard Time' => 'Australia/Hobart',
|
||||
'Tokyo Standard Time' => 'Asia/Tokyo',
|
||||
'Tonga Standard Time' => 'Pacific/Tongatapu',
|
||||
'US Eastern Standard Time' => 'Etc/GMT+5',
|
||||
'US Mountain Standard Time' => 'America/Phoenix',
|
||||
'Venezuela Standard Time' => 'America/Caracas',
|
||||
'Vladivostok Standard Time' => 'Asia/Vladivostok',
|
||||
'W. Australia Standard Time' => 'Australia/Perth',
|
||||
'W. Central Africa Standard Time' => 'Africa/Lagos',
|
||||
'W. Europe Standard Time' => 'Europe/Berlin',
|
||||
'West Asia Standard Time' => 'Asia/Tashkent',
|
||||
'West Pacific Standard Time' => 'Pacific/Port_Moresby',
|
||||
'Yakutsk Standard Time' => 'Asia/Yakutsk',
|
||||
);
|
Loading…
Reference in New Issue
Block a user