diff --git a/application/controllers/api.php b/application/controllers/api.php index d5967245..565714ec 100644 --- a/application/controllers/api.php +++ b/application/controllers/api.php @@ -18,6 +18,13 @@ class API extends CI_Controller { */ } + function help() + { + $this->load->view('layout/header'); + $this->load->view('api/help'); + $this->load->view('layout/footer'); + } + // FUNCTION: search() // Handle search requests /* @@ -78,7 +85,7 @@ class API extends CI_Controller { $arguments = $this->_retrieve(); // Call the parser within the API model to build the query - $query = $this->api_model->parse($arguments); + $query = $this->api_model->select_parse($arguments); // Execute the query, and retrieve the results $s = $this->logbook_model->api_search_query($query); @@ -116,6 +123,50 @@ class API extends CI_Controller { $this->load->view('api/index', $data); } + function add() + { + // Load the API and Logbook models + $this->load->model('api_model'); + $this->load->model('logbook_model'); + $this->load->model('user_model'); + if(!$this->user_model->authorize(3)) { $this->session->set_flashdata('notice', 'You\'re not allowed to do that!'); redirect('dashboard'); } + + // Retrieve the arguments from the query string + $arguments = $this->_retrieve(); + + // Call the parser within the API model to build the query + $query = $this->api_model->insert_parse($arguments); + + # Check for guessable fields + if(!isset($query['COL_TIME_ON'])) + { + $query['COL_TIME_ON'] = date("Y-m-d H:i:s", time()); + } + if(!isset($query['COL_TIME_OFF'])) + { + $query['COL_TIME_OFF'] = date("Y-m-d H:i:s", time()); + } + + $data['data']['queryInfo']['dbQuery'] = ""; + $data['data']['queryInfo']['executionTime'] = 0; + + if(!isset($query['COL_CALL'])) { + $data['data']['add_Result']['results'] = array(0 => array('Result' => 'EMISSINGCALL')); + } else { + $s = $this->logbook_model->api_insert_query($query); + $data['data']['queryInfo']['dbQuery'] = $s['query']; + $data['data']['queryInfo']['executionTime'] = $s['time']; + + $data['data']['add_Result']['results'] = array(0 => array('Result' => $s['result_string'])); + } + + // Add some debugging information to the XML output + $data['data']['queryInfo']['call'] = "add"; + $data['data']['queryInfo']['numResults'] = 0; + + $this->load->view('api/index', $data); + } + // FUNCTION: _retrieve() // Pull the search query arguments from the query string private function _retrieve() diff --git a/application/models/api_model.php b/application/models/api_model.php index f0605ad1..0718ce90 100644 --- a/application/models/api_model.php +++ b/application/models/api_model.php @@ -57,18 +57,31 @@ class API_Model extends CI_Model { { if($this->_columnName[key($this->_columnName)]['Name'] == $name) { - return key($this->_columnName); + $a = key($this->_columnName); + reset($this->_columnName); + return $a; } next($this->_columnName); } + reset($this->_columnName); return 0; } - // FUNCTION: string parse(array $arguments) + function insert_parse($arguments) + { +# $q = "INSERT INTO ".$this->config->item('table_name'); + + $f = explode(",", $arguments['query']); + $r = $this->_insert_field_translate($f); + + return $r; + } + + // FUNCTION: string select_parse(array $arguments) // Converts an array of arguments into a MySQL query string // See documentation for search() under the API controller for more details - function parse($arguments) + function select_parse($arguments) { // Initialise our string $q = "SELECT "; @@ -101,9 +114,59 @@ class API_Model extends CI_Model { // clause. // $s and $r can be refactored into single array definitions, but during // development it's easier to list them in this way for quick reference. + if($arguments['query'] != "") { $q .= " WHERE "; + $q = $this->_query_parse($q, $arguments['query']); + } + + // Parse any order arguments + if($arguments['order'] != "") + { + $q .= " ORDER BY "; + + $s = null; + $r = null; + $s[0] = '/(/'; + $s[1] = '/)/'; + $s[2] = '/([a-zA-Z0-9\-\_]+)([,\(]{1}|$)/'; + $s[3] = '/\(asc\)/'; + $s[4] = '/\(desc\)/'; + $s[5] = '/,$/'; + + $r[0] = '('; + $r[1] = ')'; + $r[2] = '++$1++ $2'; + $r[3] = ' ASC '; + $r[4] = ' DESC '; + $r[5] = ''; + + $q .= preg_replace($s, $r, $arguments['order']); + + } + + $q = $this->_select_field_translate($q); + + // Parse any limit arguments + if($arguments['limit'] != "") + { + // Add the limit arguments, removing any characters other than numbers and commas + $q .= " LIMIT " . preg_replace(array("/[^0-9\,]/","/,$/"), "", $arguments['limit']); + } + else + { + // If no limit argument is given, default to the first 20 results + $q .= " LIMIT 0,20"; + } + + return $q; + } + + private function _query_parse($q, $qs) + { + if($qs != "") + { $s = null; $r = null; // (and), becomes ' AND ' @@ -148,55 +211,35 @@ class API_Model extends CI_Model { $r[13] = '%'; // Bulk replace everything - $q .= preg_replace($s, $r, $arguments['query']); + $q .= preg_replace($s, $r, $qs); } - // Parse any order arguments - if($arguments['order'] != "") - { - $q .= " ORDER BY "; - - $s = null; - $r = null; - $s[0] = '/(/'; - $s[1] = '/)/'; - $s[2] = '/([a-zA-Z0-9\-\_]+)([,\(]{1}|$)/'; - $s[3] = '/\(asc\)/'; - $s[4] = '/\(desc\)/'; - $s[5] = '/,$/'; - - $r[0] = '('; - $r[1] = ')'; - $r[2] = '++$1++ $2'; - $r[3] = ' ASC '; - $r[4] = ' DESC '; - $r[5] = ''; - - $q .= preg_replace($s, $r, $arguments['order']); - - } + return $q; + } + private function _select_field_translate($q) + { // Do search/replace on field names, to convert from friendly names // to MySQL column names while (list($key, $val) = each($this->_columnName)) { $q = str_replace("++".$val['Name']."++", $key, $q); } - // Parse any limit arguments - if($arguments['limit'] != "") - { - // Add the limit arguments, removing any characters other than numbers and commas - $q .= " LIMIT " . preg_replace(array("/[^0-9\,]/","/,$/"), "", $arguments['limit']); - } - else - { - // If no limit argument is given, default to the first 20 results - $q .= " LIMIT 0,20"; - } - return $q; } + private function _insert_field_translate($q) + { + // Do search/replace on field names, to convert from friendly names + // to MySQL column names + $r = array(); + while (list($key, $val) = each($q)) { + $f = explode('=', $val); + $r[$this->column($f[0])] = $f[1]; + } + return $r; + } + // ARRAY: $_columnName // An array matching MySQL column names to friendly names, descriptions and types private $_columnName = array( diff --git a/application/models/logbook_model.php b/application/models/logbook_model.php index 1c8cdbff..ca2d42d8 100644 --- a/application/models/logbook_model.php +++ b/application/models/logbook_model.php @@ -55,10 +55,14 @@ class Logbook_model extends CI_Model { 'COL_MY_GRIDSQUARE' => $locator, ); + $this->add_qso($data); + } + + function add_qso($data) { // Add QSO to database $this->db->insert($this->config->item('table_name'), $data); } - + /* Edit QSO */ function edit() { @@ -360,7 +364,16 @@ class Logbook_model extends CI_Model { return array('query' => $query, 'results' => $results, 'time' => $time); } - + + function api_insert_query($query) { + $time_start = microtime(true); + $results = $this->db->insert($this->config->item('table_name'), $query); + $time_end = microtime(true); + $time = round($time_end - $time_start, 4); + + return array('query' => $this->db->queries[2], 'result_string' => $results, 'time' => $time); + } + function delete($id) { $this->db->where('COL_PRIMARY_KEY', $id); $this->db->delete($this->config->item('table_name')); diff --git a/application/views/api/index.php b/application/views/api/index.php index 3b074cfb..c6ee93b4 100644 --- a/application/views/api/index.php +++ b/application/views/api/index.php @@ -30,7 +30,7 @@ if(ENVIRONMENT == "development") { $debugElement->setAttribute("dbQuery", $data['queryInfo']['dbQuery']); $debugElement->setAttribute("clientVersion", $_SERVER['HTTP_USER_AGENT']); $debugElement->setAttribute("requestURI", $_SERVER['REQUEST_URI']); - $debugElement->setAttribute("benchMark", $this->benchmark->marker['total_execution_time_start'].", ".$this->benchmark->marker['loading_time:_base_classes_start'].", ".$this->benchmark->marker['loading_time:_base_classes_end'].", ".$this->benchmark->marker['controller_execution_time_( api / search )_start']); + $debugElement->setAttribute("benchMark", $this->benchmark->marker['total_execution_time_start'].", ".$this->benchmark->marker['loading_time:_base_classes_start'].", ".$this->benchmark->marker['loading_time:_base_classes_end'].", ".$this->benchmark->marker['controller_execution_time_( api / add )_start']); } $queryElement->setAttribute("executionTime", $data['queryInfo']['executionTime']); $queryElement->setAttribute("logbookURL", $this->config->item('base_url')); diff --git a/application/views/layout/header.php b/application/views/layout/header.php index 75785c22..4008ae46 100644 --- a/application/views/layout/header.php +++ b/application/views/layout/header.php @@ -27,6 +27,7 @@ /* Base CSS */ body { background-color: #e6e6e6; font-size: 15px; font-family: Arial, "Trebuchet MS", sans-serif; } td { padding: 1px;} + pre { font-family: Courier New; font-size: 11px;} .tr1 td { background:none repeat scroll 0 0 #F0FFFF; } .partial td, .logbook td, .users td { padding: 5px; } #subnav { height: 30px; color:#ffffff; clear: both; } @@ -184,6 +185,7 @@
  • Users
  • Setup
  • ADIF Export
  • +
  • API
  • @@ -208,4 +210,4 @@ -
    \ No newline at end of file +
    diff --git a/application/views/user/main.php b/application/views/user/main.php index 3ae22323..989fbdee 100644 --- a/application/views/user/main.php +++ b/application/views/user/main.php @@ -48,7 +48,7 @@ user_id; ?>">user_name; ?> user_email; ?> config->item('auth_level'); echo $l[$row->user_type]; ?> - user_id; ?>">Delete + user_id; ?>">Edit user_id; ?>">Delete diff --git a/application/views/user/profile.php b/application/views/user/profile.php index ee2b99e6..b2d9fbf5 100644 --- a/application/views/user/profile.php +++ b/application/views/user/profile.php @@ -1,7 +1,7 @@

    session->userdata('user_name')."'s profile"; ?>

    - +
    diff --git a/sql/timezones.sql b/sql/timezones.sql index e8cdeed6..0b60469b 100644 --- a/sql/timezones.sql +++ b/sql/timezones.sql @@ -1,6 +1,3 @@ --- --- Based on http://www.michaelapproved.com/articles/timezone-dropdown-select-list/ --- -- MySQL dump 10.13 Distrib 5.1.58, for debian-linux-gnu (i486) -- -- Host: localhost Database: hrdlog_m0vkg @@ -39,7 +36,7 @@ CREATE TABLE `timezones` ( LOCK TABLES `timezones` WRITE; /*!40000 ALTER TABLE `timezones` DISABLE KEYS */; -INSERT INTO `timezones` VALUES (1,'-12.0','(GMT-12:00)-International Date Line West'),(2,'-11.0','(GMT-11:00)-Midway Island, Samoa'),(3,'-10.0','(GMT-10:00)-Hawaii'),(4,'-9.0','(GMT-09:00)-Alaska'),(5,'-8.0','(GMT-08:00)-Pacific Time (US & Canada); Tijuana'),(6,'-7.0','(GMT-07:00)-Arizona'),(7,'-7.0','(GMT-07:00)-Chihuahua, La Paz, Mazatlan'),(8,'-7.0','(GMT-07:00)-Mountain Time (US & Canada)'),(9,'-6.0','(GMT-06:00)-Central America'),(10,'-6.0','(GMT-06:00)-Central Time (US & Canada)'),(11,'-6.0','(GMT-06:00)-Guadalajara, Mexico City, Monterrey'),(12,'-6.0','(GMT-06:00)-Saskatchewan'),(13,'-5.0','(GMT-05:00)-Bogota, Lima, Quito'),(14,'-5.0','(GMT-05:00)-Eastern Time (US & Canada)'),(15,'-5.0','(GMT-05:00)-Indiana (East)'),(16,'-4.0','(GMT-04:00)-Atlantic Time (Canada)'),(17,'-4.0','(GMT-04:00)-La Paz'),(18,'-4.0','(GMT-04:00)-Santiago'),(19,'-3.5','(GMT-03:30)-Newfoundland'),(20,'-3.0','(GMT-03:00)-Brasilia'),(21,'-3.0','(GMT-03:00)-Buenos Aires, Georgetown'),(22,'-3.0','(GMT-03:00)-Greenland'),(23,'-2.0','(GMT-02:00)-Mid-Atlantic'),(24,'-1.0','(GMT-01:00)-Azores'),(25,'-1.0','(GMT-01:00)-Cape Verde Is.'),(26,'0.0','(GMT)-Casablanca, Monrovia'),(0,'0.0','(GMT)-Greenwich Mean Time: Dublin, Edinburgh, Lisbon, London'),(28,'1.0','(GMT+01:00)-Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna'),(29,'1.0','(GMT+01:00)-Belgrade, Bratislava, Budapest, Ljubljana, Prague'),(30,'1.0','(GMT+01:00)-Brussels, Copenhagen, Madrid, Paris'),(31,'1.0','(GMT+01:00)-Sarajevo, Skopje, Warsaw, Zagreb'),(32,'1.0','(GMT+01:00)-West Central Africa'),(33,'2.0','(GMT+02:00)-Athens, Beirut, Istanbul, Minsk'),(34,'2.0','(GMT+02:00)-Bucharest'),(35,'2.0','(GMT+02:00)-Cairo'),(36,'2.0','(GMT+02:00)-Harare, Pretoria'),(37,'2.0','(GMT+02:00)-Helsinki, Kyiv, Riga, Sofia, Tallinn, Vilnius'),(38,'2.0','(GMT+02:00)-Jerusalem'),(39,'3.0','(GMT+03:00)-Baghdad'),(40,'3.0','(GMT+03:00)-Kuwait, Riyadh'),(41,'3.0','(GMT+03:00)-Moscow, St. Petersburg, Volgograd'),(42,'3.0','(GMT+03:00)-Nairobi'),(43,'3.5','(GMT+03:30)-Tehran'),(44,'4.0','(GMT+04:00)-Abu Dhabi, Muscat'),(45,'4.0','(GMT+04:00)-Baku, Tbilisi, Yerevan'),(46,'4.5','(GMT+04:30)-Kabul'),(47,'5.0','(GMT+05:00)-Ekaterinburg'),(48,'5.0','(GMT+05:00)-Islamabad, Karachi, Tashkent'),(49,'5.5','(GMT+05:30)-Chennai, Kolkata, Mumbai, New Delhi'),(50,'5.8','(GMT+05:45)-Kathmandu'),(51,'6.0','(GMT+06:00)-Almaty, Novosibirsk'),(52,'6.0','(GMT+06:00)-Astana, Dhaka'),(53,'6.0','(GMT+06:00)-Sri Jayawardenepura'),(54,'6.5','(GMT+06:30)-Rangoon'),(55,'7.0','(GMT+07:00)-Bangkok, Hanoi, Jakarta'),(56,'7.0','(GMT+07:00)-Krasnoyarsk'),(57,'8.0','(GMT+08:00)-Beijing, Chongqing, Hong Kong, Urumqi'),(58,'8.0','(GMT+08:00)-Irkutsk, Ulaan Bataar'),(59,'8.0','(GMT+08:00)-Kuala Lumpur, Singapore'),(60,'8.0','(GMT+08:00)-Perth'),(61,'8.0','(GMT+08:00)-Taipei'),(62,'9.0','(GMT+09:00)-Osaka, Sapporo, Tokyo'),(63,'9.0','(GMT+09:00)-Seoul'),(64,'9.0','(GMT+09:00)-Vakutsk'),(65,'9.5','(GMT+09:30)-Adelaide'),(66,'9.5','(GMT+09:30)-Darwin'),(67,'10.0','(GMT+10:00)-Brisbane'),(68,'10.0','(GMT+10:00)-Canberra, Melbourne, Sydney'),(69,'10.0','(GMT+10:00)-Guam, Port Moresby'),(70,'10.0','(GMT+10:00)-Hobart'),(71,'10.0','(GMT+10:00)-Vladivostok'),(72,'11.0','(GMT+11:00)-Magadan, Solomon Is., New Caledonia'),(73,'12.0','(GMT+12:00)-Auckland, Wellington'),(74,'12.0','(GMT+12:00)-Fiji, Kamchatka, Marshall Is.'),(75,'-12.0','(GMT-12:00)-International Date Line West'),(76,'-11.0','(GMT-11:00)-Midway Island, Samoa'),(77,'-10.0','(GMT-10:00)-Hawaii'),(78,'-9.0','(GMT-09:00)-Alaska'),(79,'-8.0','(GMT-08:00)-Pacific Time (US & Canada); Tijuana'),(80,'-7.0','(GMT-07:00)-Arizona'),(81,'-7.0','(GMT-07:00)-Chihuahua, La Paz, Mazatlan'),(82,'-7.0','(GMT-07:00)-Mountain Time (US & Canada)'),(83,'-6.0','(GMT-06:00)-Central America'),(84,'-6.0','(GMT-06:00)-Central Time (US & Canada)'),(85,'-6.0','(GMT-06:00)-Guadalajara, Mexico City, Monterrey'),(86,'-6.0','(GMT-06:00)-Saskatchewan'),(87,'-5.0','(GMT-05:00)-Bogota, Lima, Quito'),(88,'-5.0','(GMT-05:00)-Eastern Time (US & Canada)'),(89,'-5.0','(GMT-05:00)-Indiana (East)'),(90,'-4.0','(GMT-04:00)-Atlantic Time (Canada)'),(91,'-4.0','(GMT-04:00)-Caracas, La Paz'),(92,'-4.0','(GMT-04:00)-Santiago'),(93,'-3.5','(GMT-03:30)-Newfoundland'),(94,'-3.0','(GMT-03:00)-Brasilia'),(95,'-3.0','(GMT-03:00)-Buenos Aires, Georgetown'),(96,'-3.0','(GMT-03:00)-Greenland'),(97,'-2.0','(GMT-02:00)-Mid-Atlantic'),(98,'-1.0','(GMT-01:00)-Azores'),(99,'-1.0','(GMT-01:00)-Cape Verde Is.'),(100,'0.0','(GMT)-Casablanca, Monrovia'),(101,'0.0','(GMT)-Greenwich Mean Time: Dublin, Edinburgh, Lisbon, London'),(102,'1.0','(GMT+01:00)-Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna'),(103,'1.0','(GMT+01:00)-Belgrade, Bratislava, Budapest, Ljubljana, Prague'),(104,'1.0','(GMT+01:00)-Brussels, Copenhagen, Madrid, Paris'),(105,'1.0','(GMT+01:00)-Sarajevo, Skopje, Warsaw, Zagreb'),(106,'1.0','(GMT+01:00)-West Central Africa'),(107,'2.0','(GMT+02:00)-Athens, Beirut, Istanbul, Minsk'),(108,'2.0','(GMT+02:00)-Bucharest'),(109,'2.0','(GMT+02:00)-Cairo'),(110,'2.0','(GMT+02:00)-Harare, Pretoria'),(111,'2.0','(GMT+02:00)-Helsinki, Kyiv, Riga, Sofia, Tallinn, Vilnius'),(112,'2.0','(GMT+02:00)-Jerusalem'),(113,'3.0','(GMT+03:00)-Baghdad'),(114,'3.0','(GMT+03:00)-Kuwait, Riyadh'),(115,'3.0','(GMT+03:00)-Moscow, St. Petersburg, Volgograd'),(116,'3.0','(GMT+03:00)-Nairobi'),(117,'3.5','(GMT+03:30)-Tehran'),(118,'4.0','(GMT+04:00)-Abu Dhabi, Muscat'),(119,'4.0','(GMT+04:00)-Baku, Tbilisi, Yerevan'),(120,'4.5','(GMT+04:30)-Kabul'),(121,'5.0','(GMT+05:00)-Ekaterinburg'),(122,'5.0','(GMT+05:00)-Islamabad, Karachi, Tashkent'),(123,'5.5','(GMT+05:30)-Chennai, Kolkata, Mumbai, New Delhi'),(124,'5.8','(GMT+05:45)-Kathmandu'),(125,'6.0','(GMT+06:00)-Almaty, Novosibirsk'),(126,'6.0','(GMT+06:00)-Astana, Dhaka'),(127,'6.0','(GMT+06:00)-Sri Jayawardenepura'),(128,'6.5','(GMT+06:30)-Rangoon'),(129,'7.0','(GMT+07:00)-Bangkok, Hanoi, Jakarta'),(130,'7.0','(GMT+07:00)-Krasnoyarsk'),(131,'8.0','(GMT+08:00)-Beijing, Chongqing, Hong Kong, Urumqi'),(132,'8.0','(GMT+08:00)-Irkutsk, Ulaan Bataar'),(133,'8.0','(GMT+08:00)-Kuala Lumpur, Singapore'),(134,'8.0','(GMT+08:00)-Perth'),(135,'8.0','(GMT+08:00)-Taipei'),(136,'9.0','(GMT+09:00)-Osaka, Sapporo, Tokyo'),(137,'9.0','(GMT+09:00)-Seoul'),(138,'9.0','(GMT+09:00)-Vakutsk'),(139,'9.5','(GMT+09:30)-Adelaide'),(140,'9.5','(GMT+09:30)-Darwin'),(141,'10.0','(GMT+10:00)-Brisbane'),(142,'10.0','(GMT+10:00)-Canberra, Melbourne, Sydney'),(143,'10.0','(GMT+10:00)-Guam, Port Moresby'),(144,'10.0','(GMT+10:00)-Hobart'),(145,'10.0','(GMT+10:00)-Vladivostok'),(146,'11.0','(GMT+11:00)-Magadan, Solomon Is., New Caledonia'),(147,'12.0','(GMT+12:00)-Auckland, Wellington'),(148,'12.0','(GMT+12:00)-Fiji, Kamchatka, Marshall Is.'),(149,'13.0','(GMT+13:00)-Nuku\'alofa '),(150,'-4.5','(GMT-04:30)-Caracas'); +INSERT INTO `timezones` VALUES (1,'-12.0','(GMT-12:00)-International Date Line West'),(4,'-9.0','(GMT-09:00)-Alaska'),(5,'-8.0','(GMT-08:00)-Pacific Time (US & Canada); Tijuana'),(6,'-7.0','(GMT-07:00)-Arizona'),(8,'-7.0','(GMT-07:00)-Mountain Time (US & Canada)'),(13,'-5.0','(GMT-05:00)-Bogota, Lima, Quito'),(15,'-5.0','(GMT-05:00)-Indiana (East)'),(17,'-4.0','(GMT-04:00)-La Paz'),(19,'-3.5','(GMT-03:30)-Newfoundland'),(22,'-3.0','(GMT-03:00)-Greenland'),(23,'-2.0','(GMT-02:00)-Mid-Atlantic'),(0,'0.0','(GMT)-Greenwich Mean Time: Dublin, Edinburgh, Lisbon, London'),(30,'1.0','(GMT+01:00)-Brussels, Copenhagen, Madrid, Paris'),(31,'1.0','(GMT+01:00)-Sarajevo, Skopje, Warsaw, Zagreb'),(35,'2.0','(GMT+02:00)-Cairo'),(36,'2.0','(GMT+02:00)-Harare, Pretoria'),(38,'2.0','(GMT+02:00)-Jerusalem'),(39,'3.0','(GMT+03:00)-Baghdad'),(41,'3.0','(GMT+03:00)-Moscow, St. Petersburg, Volgograd'),(43,'3.5','(GMT+03:30)-Tehran'),(44,'4.0','(GMT+04:00)-Abu Dhabi, Muscat'),(45,'4.0','(GMT+04:00)-Baku, Tbilisi, Yerevan'),(46,'4.5','(GMT+04:30)-Kabul'),(51,'6.0','(GMT+06:00)-Almaty, Novosibirsk'),(54,'6.5','(GMT+06:30)-Rangoon'),(55,'7.0','(GMT+07:00)-Bangkok, Hanoi, Jakarta'),(56,'7.0','(GMT+07:00)-Krasnoyarsk'),(58,'8.0','(GMT+08:00)-Irkutsk, Ulaan Bataar'),(59,'8.0','(GMT+08:00)-Kuala Lumpur, Singapore'),(60,'8.0','(GMT+08:00)-Perth'),(63,'9.0','(GMT+09:00)-Seoul'),(64,'9.0','(GMT+09:00)-Vakutsk'),(66,'9.5','(GMT+09:30)-Darwin'),(69,'10.0','(GMT+10:00)-Guam, Port Moresby'),(71,'10.0','(GMT+10:00)-Vladivostok'),(74,'12.0','(GMT+12:00)-Fiji, Kamchatka, Marshall Is.'),(76,'-11.0','(GMT-11:00)-Midway Island, Samoa'),(77,'-10.0','(GMT-10:00)-Hawaii'),(81,'-7.0','(GMT-07:00)-Chihuahua, La Paz, Mazatlan'),(83,'-6.0','(GMT-06:00)-Central America'),(84,'-6.0','(GMT-06:00)-Central Time (US & Canada)'),(85,'-6.0','(GMT-06:00)-Guadalajara, Mexico City, Monterrey'),(86,'-6.0','(GMT-06:00)-Saskatchewan'),(88,'-5.0','(GMT-05:00)-Eastern Time (US & Canada)'),(90,'-4.0','(GMT-04:00)-Atlantic Time (Canada)'),(91,'-4.0','(GMT-04:00)-Caracas, La Paz'),(92,'-4.0','(GMT-04:00)-Santiago'),(94,'-3.0','(GMT-03:00)-Brasilia'),(95,'-3.0','(GMT-03:00)-Buenos Aires, Georgetown'),(98,'-1.0','(GMT-01:00)-Azores'),(99,'-1.0','(GMT-01:00)-Cape Verde Is.'),(100,'0.0','(GMT)-Casablanca, Monrovia'),(102,'1.0','(GMT+01:00)-Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna'),(103,'1.0','(GMT+01:00)-Belgrade, Bratislava, Budapest, Ljubljana, Prague'),(106,'1.0','(GMT+01:00)-West Central Africa'),(107,'2.0','(GMT+02:00)-Athens, Beirut, Istanbul, Minsk'),(108,'2.0','(GMT+02:00)-Bucharest'),(111,'2.0','(GMT+02:00)-Helsinki, Kyiv, Riga, Sofia, Tallinn, Vilnius'),(114,'3.0','(GMT+03:00)-Kuwait, Riyadh'),(116,'3.0','(GMT+03:00)-Nairobi'),(121,'5.0','(GMT+05:00)-Ekaterinburg'),(122,'5.0','(GMT+05:00)-Islamabad, Karachi, Tashkent'),(123,'5.5','(GMT+05:30)-Chennai, Kolkata, Mumbai, New Delhi'),(124,'5.8','(GMT+05:45)-Kathmandu'),(126,'6.0','(GMT+06:00)-Astana, Dhaka'),(127,'6.0','(GMT+06:00)-Sri Jayawardenepura'),(129,'7.0','(GMT+07:00)-Bangkok, Hanoi, Jakarta'),(131,'8.0','(GMT+08:00)-Beijing, Chongqing, Hong Kong, Urumqi'),(135,'8.0','(GMT+08:00)-Taipei'),(136,'9.0','(GMT+09:00)-Osaka, Sapporo, Tokyo'),(139,'9.5','(GMT+09:30)-Adelaide'),(141,'10.0','(GMT+10:00)-Brisbane'),(142,'10.0','(GMT+10:00)-Canberra, Melbourne, Sydney'),(144,'10.0','(GMT+10:00)-Hobart'),(146,'11.0','(GMT+11:00)-Magadan, Solomon Is., New Caledonia'),(147,'12.0','(GMT+12:00)-Auckland, Wellington'),(149,'13.0','(GMT+13:00)-Nuku\'alofa '),(150,'-4.5','(GMT-04:30)-Caracas'); /*!40000 ALTER TABLE `timezones` ENABLE KEYS */; UNLOCK TABLES; /*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */; @@ -52,4 +49,4 @@ UNLOCK TABLES; /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; /*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */; --- Dump completed on 2011-09-27 23:44:46 +-- Dump completed on 2011-09-30 13:32:18
    Username