implement per-user timezone support; store dates in UTC internally (closes #254)
This commit is contained in:
parent
f3f67c1b53
commit
324944f332
14 changed files with 656 additions and 72 deletions
|
@ -1,5 +1,7 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
|
date_default_timezone_set('UTC');
|
||||||
|
|
||||||
if ($_REQUEST["debug"]) {
|
if ($_REQUEST["debug"]) {
|
||||||
define('DEFAULT_ERROR_LEVEL', E_ALL);
|
define('DEFAULT_ERROR_LEVEL', E_ALL);
|
||||||
}
|
}
|
||||||
|
@ -2116,6 +2118,36 @@
|
||||||
return $rv;
|
return $rv;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function make_local_datetime($link, $timestamp, $long, $owner_uid = false,
|
||||||
|
$no_smart_dt = false) {
|
||||||
|
|
||||||
|
if (!$owner_uid) $owner_uid = $_SESSION['uid'];
|
||||||
|
if (!$timestamp) $timestamp = '1970-01-01 0:00';
|
||||||
|
|
||||||
|
$user_tz_string = get_pref($link, 'USER_TIMEZONE', $owner_uid);
|
||||||
|
|
||||||
|
try {
|
||||||
|
$user_tz = new DateTimeZone($user_tz_string);
|
||||||
|
} catch (Exception $e) {
|
||||||
|
$user_tz = new DateTimeZone('UTC');
|
||||||
|
}
|
||||||
|
|
||||||
|
# We store date in UTC internally
|
||||||
|
$dt = new DateTime($timestamp, new DateTimeZone('UTC'));
|
||||||
|
$user_timestamp = $dt->format('U') + $user_tz->getOffset($dt);
|
||||||
|
|
||||||
|
if (!$no_smart_dt && get_pref($link, 'HEADLINES_SMART_DATE', $owner_uid)) {
|
||||||
|
return smart_date_time($user_timestamp);
|
||||||
|
} else {
|
||||||
|
if ($long)
|
||||||
|
$format = get_pref($link, 'LONG_DATE_FORMAT', $owner_uid);
|
||||||
|
else
|
||||||
|
$format = get_pref($link, 'SHORT_DATE_FORMAT', $owner_uid);
|
||||||
|
|
||||||
|
return date($format, $user_timestamp);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
function smart_date_time($timestamp) {
|
function smart_date_time($timestamp) {
|
||||||
if (date("Y.m.d", $timestamp) == date("Y.m.d")) {
|
if (date("Y.m.d", $timestamp) == date("Y.m.d")) {
|
||||||
return date("G:i", $timestamp);
|
return date("G:i", $timestamp);
|
||||||
|
@ -2846,19 +2878,13 @@
|
||||||
$result = db_query($link, $query);
|
$result = db_query($link, $query);
|
||||||
$fctrs_modified = false;
|
$fctrs_modified = false;
|
||||||
|
|
||||||
$short_date = get_pref($link, 'SHORT_DATE_FORMAT');
|
|
||||||
|
|
||||||
while ($line = db_fetch_assoc($result)) {
|
while ($line = db_fetch_assoc($result)) {
|
||||||
|
|
||||||
$id = $line["id"];
|
$id = $line["id"];
|
||||||
$count = $line["count"];
|
$count = $line["count"];
|
||||||
$last_error = htmlspecialchars($line["last_error"]);
|
$last_error = htmlspecialchars($line["last_error"]);
|
||||||
|
|
||||||
if (get_pref($link, 'HEADLINES_SMART_DATE')) {
|
$last_updated = make_local_datetime($link, $line['last_updated'], false);
|
||||||
$last_updated = smart_date_time(strtotime($line["last_updated"]));
|
|
||||||
} else {
|
|
||||||
$last_updated = date($short_date, strtotime($line["last_updated"]));
|
|
||||||
}
|
|
||||||
|
|
||||||
$has_img = feed_has_icon($id);
|
$has_img = feed_has_icon($id);
|
||||||
|
|
||||||
|
@ -3885,7 +3911,8 @@
|
||||||
|
|
||||||
array_push($affected_ids, $line["ref_id"]);
|
array_push($affected_ids, $line["ref_id"]);
|
||||||
|
|
||||||
$updated = smart_date_time(strtotime($line["last_updated"]));
|
$updated = make_local_datetime($link, $line['last_updated'], false,
|
||||||
|
$user_id);
|
||||||
|
|
||||||
$tpl->setVariable('FEED_TITLE', $line["feed_title"]);
|
$tpl->setVariable('FEED_TITLE', $line["feed_title"]);
|
||||||
$tpl->setVariable('ARTICLE_TITLE', $line["title"]);
|
$tpl->setVariable('ARTICLE_TITLE', $line["title"]);
|
||||||
|
@ -4396,8 +4423,6 @@
|
||||||
$total_unread = 0;
|
$total_unread = 0;
|
||||||
|
|
||||||
$category = "";
|
$category = "";
|
||||||
|
|
||||||
$short_date = get_pref($link, 'SHORT_DATE_FORMAT');
|
|
||||||
|
|
||||||
while ($line = db_fetch_assoc($result)) {
|
while ($line = db_fetch_assoc($result)) {
|
||||||
|
|
||||||
|
@ -4410,11 +4435,8 @@
|
||||||
|
|
||||||
$subop = $_REQUEST["subop"];
|
$subop = $_REQUEST["subop"];
|
||||||
|
|
||||||
if (get_pref($link, 'HEADLINES_SMART_DATE')) {
|
$last_updated = make_local_datetime($link, $line['last_updated_noms'],
|
||||||
$last_updated = smart_date_time(strtotime($line["last_updated_noms"]));
|
false);
|
||||||
} else {
|
|
||||||
$last_updated = date($short_date, strtotime($line["last_updated_noms"]));
|
|
||||||
}
|
|
||||||
|
|
||||||
$rtl_content = sql_bool_to_bool($line["rtl_content"]);
|
$rtl_content = sql_bool_to_bool($line["rtl_content"]);
|
||||||
|
|
||||||
|
@ -4797,9 +4819,9 @@
|
||||||
$entry_author = __(" - ") . $entry_author;
|
$entry_author = __(" - ") . $entry_author;
|
||||||
}
|
}
|
||||||
|
|
||||||
$parsed_updated = date(get_pref($link, 'LONG_DATE_FORMAT'),
|
$parsed_updated = make_local_datetime($link, $line["updated"], true,
|
||||||
strtotime($line["updated"]));
|
false, true);
|
||||||
|
|
||||||
print "<div class=\"postDate$rtl_class\">$parsed_updated</div>";
|
print "<div class=\"postDate$rtl_class\">$parsed_updated</div>";
|
||||||
|
|
||||||
if ($line["link"]) {
|
if ($line["link"]) {
|
||||||
|
@ -5204,12 +5226,7 @@
|
||||||
# $content_link = "<a href=\"javascript:viewContentUrl('".$line["link"]."');\">" .
|
# $content_link = "<a href=\"javascript:viewContentUrl('".$line["link"]."');\">" .
|
||||||
# $line["title"] . "</a>";
|
# $line["title"] . "</a>";
|
||||||
|
|
||||||
if (get_pref($link, 'HEADLINES_SMART_DATE')) {
|
$updated_fmt = make_local_datetime($link, $line["updated_noms"], false);
|
||||||
$updated_fmt = smart_date_time(strtotime($line["updated_noms"]));
|
|
||||||
} else {
|
|
||||||
$short_date = get_pref($link, 'SHORT_DATE_FORMAT');
|
|
||||||
$updated_fmt = date($short_date, strtotime($line["updated_noms"]));
|
|
||||||
}
|
|
||||||
|
|
||||||
if (get_pref($link, 'SHOW_CONTENT_PREVIEW')) {
|
if (get_pref($link, 'SHOW_CONTENT_PREVIEW')) {
|
||||||
$content_preview = truncate_string(strip_tags($line["content_preview"]),
|
$content_preview = truncate_string(strip_tags($line["content_preview"]),
|
||||||
|
@ -5995,7 +6012,10 @@
|
||||||
pg_query($link, "set client_encoding = 'UTF-8'");
|
pg_query($link, "set client_encoding = 'UTF-8'");
|
||||||
pg_set_client_encoding("UNICODE");
|
pg_set_client_encoding("UNICODE");
|
||||||
pg_query($link, "set datestyle = 'ISO, european'");
|
pg_query($link, "set datestyle = 'ISO, european'");
|
||||||
|
pg_query($link, "set TIME ZONE 0");
|
||||||
} else {
|
} else {
|
||||||
|
db_query($link, "SET time_zone = '+0:0'");
|
||||||
|
|
||||||
if (defined('MYSQL_CHARSET') && MYSQL_CHARSET) {
|
if (defined('MYSQL_CHARSET') && MYSQL_CHARSET) {
|
||||||
db_query($link, "SET NAMES " . MYSQL_CHARSET);
|
db_query($link, "SET NAMES " . MYSQL_CHARSET);
|
||||||
// db_query($link, "SET CHARACTER SET " . MYSQL_CHARSET);
|
// db_query($link, "SET CHARACTER SET " . MYSQL_CHARSET);
|
||||||
|
@ -6816,12 +6836,7 @@
|
||||||
WHERE owner_uid = " . $_SESSION['uid']);
|
WHERE owner_uid = " . $_SESSION['uid']);
|
||||||
|
|
||||||
$last_updated = db_fetch_result($result, 0, "last_updated");
|
$last_updated = db_fetch_result($result, 0, "last_updated");
|
||||||
|
$last_updated = make_local_datetime($link, $last_updated, false);
|
||||||
if (get_pref($link, 'HEADLINES_SMART_DATE')) {
|
|
||||||
$last_updated = smart_date_time(strtotime($last_updated));
|
|
||||||
} else {
|
|
||||||
$last_updated = date($short_date, strtotime($last_updated));
|
|
||||||
}
|
|
||||||
|
|
||||||
printf(__("Feeds last updated at %s"), $last_updated);
|
printf(__("Feeds last updated at %s"), $last_updated);
|
||||||
|
|
||||||
|
|
567
lib/timezones.txt
Normal file
567
lib/timezones.txt
Normal file
|
@ -0,0 +1,567 @@
|
||||||
|
Africa/Abidjan
|
||||||
|
Africa/Accra
|
||||||
|
Africa/Addis_Ababa
|
||||||
|
Africa/Algiers
|
||||||
|
Africa/Asmara
|
||||||
|
Africa/Asmera
|
||||||
|
Africa/Bamako
|
||||||
|
Africa/Bangui
|
||||||
|
Africa/Banjul
|
||||||
|
Africa/Bissau
|
||||||
|
Africa/Blantyre
|
||||||
|
Africa/Brazzaville
|
||||||
|
Africa/Bujumbura
|
||||||
|
Africa/Cairo
|
||||||
|
Africa/Casablanca
|
||||||
|
Africa/Ceuta
|
||||||
|
Africa/Conakry
|
||||||
|
Africa/Dakar
|
||||||
|
Africa/Dar_es_Salaam
|
||||||
|
Africa/Djibouti
|
||||||
|
Africa/Douala
|
||||||
|
Africa/El_Aaiun
|
||||||
|
Africa/Freetown
|
||||||
|
Africa/Gaborone
|
||||||
|
Africa/Harare
|
||||||
|
Africa/Johannesburg
|
||||||
|
Africa/Kampala
|
||||||
|
Africa/Khartoum
|
||||||
|
Africa/Kigali
|
||||||
|
Africa/Kinshasa
|
||||||
|
Africa/Lagos
|
||||||
|
Africa/Libreville
|
||||||
|
Africa/Lome
|
||||||
|
Africa/Luanda
|
||||||
|
Africa/Lubumbashi
|
||||||
|
Africa/Lusaka
|
||||||
|
Africa/Malabo
|
||||||
|
Africa/Maputo
|
||||||
|
Africa/Maseru
|
||||||
|
Africa/Mbabane
|
||||||
|
Africa/Mogadishu
|
||||||
|
Africa/Monrovia
|
||||||
|
Africa/Nairobi
|
||||||
|
Africa/Ndjamena
|
||||||
|
Africa/Niamey
|
||||||
|
Africa/Nouakchott
|
||||||
|
Africa/Ouagadougou
|
||||||
|
Africa/Porto-Novo
|
||||||
|
Africa/Sao_Tome
|
||||||
|
Africa/Timbuktu
|
||||||
|
Africa/Tripoli
|
||||||
|
Africa/Tunis
|
||||||
|
Africa/Windhoek
|
||||||
|
America/Adak
|
||||||
|
America/Anchorage
|
||||||
|
America/Anguilla
|
||||||
|
America/Antigua
|
||||||
|
America/Araguaina
|
||||||
|
America/Argentina/Buenos_Aires
|
||||||
|
America/Argentina/Catamarca
|
||||||
|
America/Argentina/ComodRivadavia
|
||||||
|
America/Argentina/Cordoba
|
||||||
|
America/Argentina/Jujuy
|
||||||
|
America/Argentina/La_Rioja
|
||||||
|
America/Argentina/Mendoza
|
||||||
|
America/Argentina/Rio_Gallegos
|
||||||
|
America/Argentina/Salta
|
||||||
|
America/Argentina/San_Juan
|
||||||
|
America/Argentina/San_Luis
|
||||||
|
America/Argentina/Tucuman
|
||||||
|
America/Argentina/Ushuaia
|
||||||
|
America/Aruba
|
||||||
|
America/Asuncion
|
||||||
|
America/Atikokan
|
||||||
|
America/Atka
|
||||||
|
America/Bahia
|
||||||
|
America/Bahia_Banderas
|
||||||
|
America/Barbados
|
||||||
|
America/Belem
|
||||||
|
America/Belize
|
||||||
|
America/Blanc-Sablon
|
||||||
|
America/Boa_Vista
|
||||||
|
America/Bogota
|
||||||
|
America/Boise
|
||||||
|
America/Buenos_Aires
|
||||||
|
America/Cambridge_Bay
|
||||||
|
America/Campo_Grande
|
||||||
|
America/Cancun
|
||||||
|
America/Caracas
|
||||||
|
America/Catamarca
|
||||||
|
America/Cayenne
|
||||||
|
America/Cayman
|
||||||
|
America/Chicago
|
||||||
|
America/Chihuahua
|
||||||
|
America/Coral_Harbour
|
||||||
|
America/Cordoba
|
||||||
|
America/Costa_Rica
|
||||||
|
America/Cuiaba
|
||||||
|
America/Curacao
|
||||||
|
America/Danmarkshavn
|
||||||
|
America/Dawson
|
||||||
|
America/Dawson_Creek
|
||||||
|
America/Denver
|
||||||
|
America/Detroit
|
||||||
|
America/Dominica
|
||||||
|
America/Edmonton
|
||||||
|
America/Eirunepe
|
||||||
|
America/El_Salvador
|
||||||
|
America/Ensenada
|
||||||
|
America/Fort_Wayne
|
||||||
|
America/Fortaleza
|
||||||
|
America/Glace_Bay
|
||||||
|
America/Godthab
|
||||||
|
America/Goose_Bay
|
||||||
|
America/Grand_Turk
|
||||||
|
America/Grenada
|
||||||
|
America/Guadeloupe
|
||||||
|
America/Guatemala
|
||||||
|
America/Guayaquil
|
||||||
|
America/Guyana
|
||||||
|
America/Halifax
|
||||||
|
America/Havana
|
||||||
|
America/Hermosillo
|
||||||
|
America/Indiana/Indianapolis
|
||||||
|
America/Indiana/Knox
|
||||||
|
America/Indiana/Marengo
|
||||||
|
America/Indiana/Petersburg
|
||||||
|
America/Indiana/Tell_City
|
||||||
|
America/Indiana/Vevay
|
||||||
|
America/Indiana/Vincennes
|
||||||
|
America/Indiana/Winamac
|
||||||
|
America/Indianapolis
|
||||||
|
America/Inuvik
|
||||||
|
America/Iqaluit
|
||||||
|
America/Jamaica
|
||||||
|
America/Jujuy
|
||||||
|
America/Juneau
|
||||||
|
America/Kentucky/Louisville
|
||||||
|
America/Kentucky/Monticello
|
||||||
|
America/Knox_IN
|
||||||
|
America/La_Paz
|
||||||
|
America/Lima
|
||||||
|
America/Los_Angeles
|
||||||
|
America/Louisville
|
||||||
|
America/Maceio
|
||||||
|
America/Managua
|
||||||
|
America/Manaus
|
||||||
|
America/Marigot
|
||||||
|
America/Martinique
|
||||||
|
America/Matamoros
|
||||||
|
America/Mazatlan
|
||||||
|
America/Mendoza
|
||||||
|
America/Menominee
|
||||||
|
America/Merida
|
||||||
|
America/Mexico_City
|
||||||
|
America/Miquelon
|
||||||
|
America/Moncton
|
||||||
|
America/Monterrey
|
||||||
|
America/Montevideo
|
||||||
|
America/Montreal
|
||||||
|
America/Montserrat
|
||||||
|
America/Nassau
|
||||||
|
America/New_York
|
||||||
|
America/Nipigon
|
||||||
|
America/Nome
|
||||||
|
America/Noronha
|
||||||
|
America/North_Dakota/Center
|
||||||
|
America/North_Dakota/New_Salem
|
||||||
|
America/Ojinaga
|
||||||
|
America/Panama
|
||||||
|
America/Pangnirtung
|
||||||
|
America/Paramaribo
|
||||||
|
America/Phoenix
|
||||||
|
America/Port-au-Prince
|
||||||
|
America/Port_of_Spain
|
||||||
|
America/Porto_Acre
|
||||||
|
America/Porto_Velho
|
||||||
|
America/Puerto_Rico
|
||||||
|
America/Rainy_River
|
||||||
|
America/Rankin_Inlet
|
||||||
|
America/Recife
|
||||||
|
America/Regina
|
||||||
|
America/Resolute
|
||||||
|
America/Rio_Branco
|
||||||
|
America/Rosario
|
||||||
|
America/Santa_Isabel
|
||||||
|
America/Santarem
|
||||||
|
America/Santiago
|
||||||
|
America/Santo_Domingo
|
||||||
|
America/Sao_Paulo
|
||||||
|
America/Scoresbysund
|
||||||
|
America/Shiprock
|
||||||
|
America/St_Barthelemy
|
||||||
|
America/St_Johns
|
||||||
|
America/St_Kitts
|
||||||
|
America/St_Lucia
|
||||||
|
America/St_Thomas
|
||||||
|
America/St_Vincent
|
||||||
|
America/Swift_Current
|
||||||
|
America/Tegucigalpa
|
||||||
|
America/Thule
|
||||||
|
America/Thunder_Bay
|
||||||
|
America/Tijuana
|
||||||
|
America/Toronto
|
||||||
|
America/Tortola
|
||||||
|
America/Vancouver
|
||||||
|
America/Virgin
|
||||||
|
America/Whitehorse
|
||||||
|
America/Winnipeg
|
||||||
|
America/Yakutat
|
||||||
|
America/Yellowknife
|
||||||
|
Antarctica/Casey
|
||||||
|
Antarctica/Davis
|
||||||
|
Antarctica/DumontDUrville
|
||||||
|
Antarctica/Macquarie
|
||||||
|
Antarctica/Mawson
|
||||||
|
Antarctica/McMurdo
|
||||||
|
Antarctica/Palmer
|
||||||
|
Antarctica/Rothera
|
||||||
|
Antarctica/South_Pole
|
||||||
|
Antarctica/Syowa
|
||||||
|
Antarctica/Vostok
|
||||||
|
Arctic/Longyearbyen
|
||||||
|
Asia/Aden
|
||||||
|
Asia/Almaty
|
||||||
|
Asia/Amman
|
||||||
|
Asia/Anadyr
|
||||||
|
Asia/Aqtau
|
||||||
|
Asia/Aqtobe
|
||||||
|
Asia/Ashgabat
|
||||||
|
Asia/Ashkhabad
|
||||||
|
Asia/Baghdad
|
||||||
|
Asia/Bahrain
|
||||||
|
Asia/Baku
|
||||||
|
Asia/Bangkok
|
||||||
|
Asia/Beirut
|
||||||
|
Asia/Bishkek
|
||||||
|
Asia/Brunei
|
||||||
|
Asia/Calcutta
|
||||||
|
Asia/Choibalsan
|
||||||
|
Asia/Chongqing
|
||||||
|
Asia/Chungking
|
||||||
|
Asia/Colombo
|
||||||
|
Asia/Dacca
|
||||||
|
Asia/Damascus
|
||||||
|
Asia/Dhaka
|
||||||
|
Asia/Dili
|
||||||
|
Asia/Dubai
|
||||||
|
Asia/Dushanbe
|
||||||
|
Asia/Gaza
|
||||||
|
Asia/Harbin
|
||||||
|
Asia/Ho_Chi_Minh
|
||||||
|
Asia/Hong_Kong
|
||||||
|
Asia/Hovd
|
||||||
|
Asia/Irkutsk
|
||||||
|
Asia/Istanbul
|
||||||
|
Asia/Jakarta
|
||||||
|
Asia/Jayapura
|
||||||
|
Asia/Jerusalem
|
||||||
|
Asia/Kabul
|
||||||
|
Asia/Kamchatka
|
||||||
|
Asia/Karachi
|
||||||
|
Asia/Kashgar
|
||||||
|
Asia/Kathmandu
|
||||||
|
Asia/Katmandu
|
||||||
|
Asia/Kolkata
|
||||||
|
Asia/Krasnoyarsk
|
||||||
|
Asia/Kuala_Lumpur
|
||||||
|
Asia/Kuching
|
||||||
|
Asia/Kuwait
|
||||||
|
Asia/Macao
|
||||||
|
Asia/Macau
|
||||||
|
Asia/Magadan
|
||||||
|
Asia/Makassar
|
||||||
|
Asia/Manila
|
||||||
|
Asia/Muscat
|
||||||
|
Asia/Nicosia
|
||||||
|
Asia/Novokuznetsk
|
||||||
|
Asia/Novosibirsk
|
||||||
|
Asia/Omsk
|
||||||
|
Asia/Oral
|
||||||
|
Asia/Phnom_Penh
|
||||||
|
Asia/Pontianak
|
||||||
|
Asia/Pyongyang
|
||||||
|
Asia/Qatar
|
||||||
|
Asia/Qyzylorda
|
||||||
|
Asia/Rangoon
|
||||||
|
Asia/Riyadh
|
||||||
|
Asia/Saigon
|
||||||
|
Asia/Sakhalin
|
||||||
|
Asia/Samarkand
|
||||||
|
Asia/Seoul
|
||||||
|
Asia/Shanghai
|
||||||
|
Asia/Singapore
|
||||||
|
Asia/Taipei
|
||||||
|
Asia/Tashkent
|
||||||
|
Asia/Tbilisi
|
||||||
|
Asia/Tehran
|
||||||
|
Asia/Tel_Aviv
|
||||||
|
Asia/Thimbu
|
||||||
|
Asia/Thimphu
|
||||||
|
Asia/Tokyo
|
||||||
|
Asia/Ujung_Pandang
|
||||||
|
Asia/Ulaanbaatar
|
||||||
|
Asia/Ulan_Bator
|
||||||
|
Asia/Urumqi
|
||||||
|
Asia/Vientiane
|
||||||
|
Asia/Vladivostok
|
||||||
|
Asia/Yakutsk
|
||||||
|
Asia/Yekaterinburg
|
||||||
|
Asia/Yerevan
|
||||||
|
Atlantic/Azores
|
||||||
|
Atlantic/Bermuda
|
||||||
|
Atlantic/Canary
|
||||||
|
Atlantic/Cape_Verde
|
||||||
|
Atlantic/Faeroe
|
||||||
|
Atlantic/Faroe
|
||||||
|
Atlantic/Jan_Mayen
|
||||||
|
Atlantic/Madeira
|
||||||
|
Atlantic/Reykjavik
|
||||||
|
Atlantic/South_Georgia
|
||||||
|
Atlantic/St_Helena
|
||||||
|
Atlantic/Stanley
|
||||||
|
Australia/ACT
|
||||||
|
Australia/Adelaide
|
||||||
|
Australia/Brisbane
|
||||||
|
Australia/Broken_Hill
|
||||||
|
Australia/Canberra
|
||||||
|
Australia/Currie
|
||||||
|
Australia/Darwin
|
||||||
|
Australia/Eucla
|
||||||
|
Australia/Hobart
|
||||||
|
Australia/LHI
|
||||||
|
Australia/Lindeman
|
||||||
|
Australia/Lord_Howe
|
||||||
|
Australia/Melbourne
|
||||||
|
Australia/North
|
||||||
|
Australia/NSW
|
||||||
|
Australia/Perth
|
||||||
|
Australia/Queensland
|
||||||
|
Australia/South
|
||||||
|
Australia/Sydney
|
||||||
|
Australia/Tasmania
|
||||||
|
Australia/Victoria
|
||||||
|
Australia/West
|
||||||
|
Australia/Yancowinna
|
||||||
|
Brazil/Acre
|
||||||
|
Brazil/DeNoronha
|
||||||
|
Brazil/East
|
||||||
|
Brazil/West
|
||||||
|
Canada/Atlantic
|
||||||
|
Canada/Central
|
||||||
|
Canada/East-Saskatchewan
|
||||||
|
Canada/Eastern
|
||||||
|
Canada/Mountain
|
||||||
|
Canada/Newfoundland
|
||||||
|
Canada/Pacific
|
||||||
|
Canada/Saskatchewan
|
||||||
|
Canada/Yukon
|
||||||
|
CET
|
||||||
|
Chile/Continental
|
||||||
|
Chile/EasterIsland
|
||||||
|
CST6CDT
|
||||||
|
Cuba
|
||||||
|
EET
|
||||||
|
Egypt
|
||||||
|
Eire
|
||||||
|
EST
|
||||||
|
EST5EDT
|
||||||
|
Etc/GMT
|
||||||
|
Etc/GMT+0
|
||||||
|
Etc/GMT+1
|
||||||
|
Etc/GMT+10
|
||||||
|
Etc/GMT+11
|
||||||
|
Etc/GMT+12
|
||||||
|
Etc/GMT+2
|
||||||
|
Etc/GMT+3
|
||||||
|
Etc/GMT+4
|
||||||
|
Etc/GMT+5
|
||||||
|
Etc/GMT+6
|
||||||
|
Etc/GMT+7
|
||||||
|
Etc/GMT+8
|
||||||
|
Etc/GMT+9
|
||||||
|
Etc/GMT-0
|
||||||
|
Etc/GMT-1
|
||||||
|
Etc/GMT-10
|
||||||
|
Etc/GMT-11
|
||||||
|
Etc/GMT-12
|
||||||
|
Etc/GMT-13
|
||||||
|
Etc/GMT-14
|
||||||
|
Etc/GMT-2
|
||||||
|
Etc/GMT-3
|
||||||
|
Etc/GMT-4
|
||||||
|
Etc/GMT-5
|
||||||
|
Etc/GMT-6
|
||||||
|
Etc/GMT-7
|
||||||
|
Etc/GMT-8
|
||||||
|
Etc/GMT-9
|
||||||
|
Etc/GMT0
|
||||||
|
Etc/Greenwich
|
||||||
|
Etc/UCT
|
||||||
|
Etc/Universal
|
||||||
|
Etc/UTC
|
||||||
|
Etc/Zulu
|
||||||
|
Europe/Amsterdam
|
||||||
|
Europe/Andorra
|
||||||
|
Europe/Athens
|
||||||
|
Europe/Belfast
|
||||||
|
Europe/Belgrade
|
||||||
|
Europe/Berlin
|
||||||
|
Europe/Bratislava
|
||||||
|
Europe/Brussels
|
||||||
|
Europe/Bucharest
|
||||||
|
Europe/Budapest
|
||||||
|
Europe/Chisinau
|
||||||
|
Europe/Copenhagen
|
||||||
|
Europe/Dublin
|
||||||
|
Europe/Gibraltar
|
||||||
|
Europe/Guernsey
|
||||||
|
Europe/Helsinki
|
||||||
|
Europe/Isle_of_Man
|
||||||
|
Europe/Istanbul
|
||||||
|
Europe/Jersey
|
||||||
|
Europe/Kaliningrad
|
||||||
|
Europe/Kiev
|
||||||
|
Europe/Lisbon
|
||||||
|
Europe/Ljubljana
|
||||||
|
Europe/London
|
||||||
|
Europe/Luxembourg
|
||||||
|
Europe/Madrid
|
||||||
|
Europe/Malta
|
||||||
|
Europe/Mariehamn
|
||||||
|
Europe/Minsk
|
||||||
|
Europe/Monaco
|
||||||
|
Europe/Moscow
|
||||||
|
Europe/Nicosia
|
||||||
|
Europe/Oslo
|
||||||
|
Europe/Paris
|
||||||
|
Europe/Podgorica
|
||||||
|
Europe/Prague
|
||||||
|
Europe/Riga
|
||||||
|
Europe/Rome
|
||||||
|
Europe/Samara
|
||||||
|
Europe/San_Marino
|
||||||
|
Europe/Sarajevo
|
||||||
|
Europe/Simferopol
|
||||||
|
Europe/Skopje
|
||||||
|
Europe/Sofia
|
||||||
|
Europe/Stockholm
|
||||||
|
Europe/Tallinn
|
||||||
|
Europe/Tirane
|
||||||
|
Europe/Tiraspol
|
||||||
|
Europe/Uzhgorod
|
||||||
|
Europe/Vaduz
|
||||||
|
Europe/Vatican
|
||||||
|
Europe/Vienna
|
||||||
|
Europe/Vilnius
|
||||||
|
Europe/Volgograd
|
||||||
|
Europe/Warsaw
|
||||||
|
Europe/Zagreb
|
||||||
|
Europe/Zaporozhye
|
||||||
|
Europe/Zurich
|
||||||
|
Factory
|
||||||
|
GB
|
||||||
|
GB-Eire
|
||||||
|
GMT
|
||||||
|
GMT+0
|
||||||
|
GMT-0
|
||||||
|
GMT0
|
||||||
|
Greenwich
|
||||||
|
Hongkong
|
||||||
|
HST
|
||||||
|
Iceland
|
||||||
|
Indian/Antananarivo
|
||||||
|
Indian/Chagos
|
||||||
|
Indian/Christmas
|
||||||
|
Indian/Cocos
|
||||||
|
Indian/Comoro
|
||||||
|
Indian/Kerguelen
|
||||||
|
Indian/Mahe
|
||||||
|
Indian/Maldives
|
||||||
|
Indian/Mauritius
|
||||||
|
Indian/Mayotte
|
||||||
|
Indian/Reunion
|
||||||
|
Iran
|
||||||
|
Israel
|
||||||
|
Jamaica
|
||||||
|
Japan
|
||||||
|
Kwajalein
|
||||||
|
Libya
|
||||||
|
MET
|
||||||
|
Mexico/BajaNorte
|
||||||
|
Mexico/BajaSur
|
||||||
|
Mexico/General
|
||||||
|
MST
|
||||||
|
MST7MDT
|
||||||
|
Navajo
|
||||||
|
NZ
|
||||||
|
NZ-CHAT
|
||||||
|
Pacific/Apia
|
||||||
|
Pacific/Auckland
|
||||||
|
Pacific/Chatham
|
||||||
|
Pacific/Chuuk
|
||||||
|
Pacific/Easter
|
||||||
|
Pacific/Efate
|
||||||
|
Pacific/Enderbury
|
||||||
|
Pacific/Fakaofo
|
||||||
|
Pacific/Fiji
|
||||||
|
Pacific/Funafuti
|
||||||
|
Pacific/Galapagos
|
||||||
|
Pacific/Gambier
|
||||||
|
Pacific/Guadalcanal
|
||||||
|
Pacific/Guam
|
||||||
|
Pacific/Honolulu
|
||||||
|
Pacific/Johnston
|
||||||
|
Pacific/Kiritimati
|
||||||
|
Pacific/Kosrae
|
||||||
|
Pacific/Kwajalein
|
||||||
|
Pacific/Majuro
|
||||||
|
Pacific/Marquesas
|
||||||
|
Pacific/Midway
|
||||||
|
Pacific/Nauru
|
||||||
|
Pacific/Niue
|
||||||
|
Pacific/Norfolk
|
||||||
|
Pacific/Noumea
|
||||||
|
Pacific/Pago_Pago
|
||||||
|
Pacific/Palau
|
||||||
|
Pacific/Pitcairn
|
||||||
|
Pacific/Pohnpei
|
||||||
|
Pacific/Ponape
|
||||||
|
Pacific/Port_Moresby
|
||||||
|
Pacific/Rarotonga
|
||||||
|
Pacific/Saipan
|
||||||
|
Pacific/Samoa
|
||||||
|
Pacific/Tahiti
|
||||||
|
Pacific/Tarawa
|
||||||
|
Pacific/Tongatapu
|
||||||
|
Pacific/Truk
|
||||||
|
Pacific/Wake
|
||||||
|
Pacific/Wallis
|
||||||
|
Pacific/Yap
|
||||||
|
Poland
|
||||||
|
Portugal
|
||||||
|
PRC
|
||||||
|
PST8PDT
|
||||||
|
ROC
|
||||||
|
ROK
|
||||||
|
Singapore
|
||||||
|
Turkey
|
||||||
|
UCT
|
||||||
|
Universal
|
||||||
|
US/Alaska
|
||||||
|
US/Aleutian
|
||||||
|
US/Arizona
|
||||||
|
US/Central
|
||||||
|
US/East-Indiana
|
||||||
|
US/Eastern
|
||||||
|
US/Hawaii
|
||||||
|
US/Indiana-Starke
|
||||||
|
US/Michigan
|
||||||
|
US/Mountain
|
||||||
|
US/Pacific
|
||||||
|
US/Pacific-New
|
||||||
|
US/Samoa
|
||||||
|
UTC
|
||||||
|
W-SU
|
||||||
|
WET
|
|
@ -522,13 +522,8 @@
|
||||||
$content_link = "<a href=\"?go=view&id=$id&cat=$cat_view&ret_feed=$feed&feed=$feed_id\">" .
|
$content_link = "<a href=\"?go=view&id=$id&cat=$cat_view&ret_feed=$feed&feed=$feed_id\">" .
|
||||||
$line["title"] . "</a>";
|
$line["title"] . "</a>";
|
||||||
|
|
||||||
if (get_pref($link, 'HEADLINES_SMART_DATE')) {
|
$updated_fmt = make_local_datetime($link, $line['updated'], false);
|
||||||
$updated_fmt = smart_date_time(strtotime($line["updated"]));
|
|
||||||
} else {
|
|
||||||
$short_date = get_pref($link, 'SHORT_DATE_FORMAT');
|
|
||||||
$updated_fmt = date($short_date, strtotime($line["updated"]));
|
|
||||||
}
|
|
||||||
|
|
||||||
print "<li class='$class' id=\"HROW-$id\">";
|
print "<li class='$class' id=\"HROW-$id\">";
|
||||||
|
|
||||||
print "<input type=\"checkbox\" name=\"sel_ids[$id]\"
|
print "<input type=\"checkbox\" name=\"sel_ids[$id]\"
|
||||||
|
|
|
@ -434,13 +434,8 @@
|
||||||
WHERE ref_id = '$id'
|
WHERE ref_id = '$id'
|
||||||
AND owner_uid = " . $_SESSION["uid"]);
|
AND owner_uid = " . $_SESSION["uid"]);
|
||||||
|
|
||||||
if (get_pref($link, 'HEADLINES_SMART_DATE')) {
|
$updated_fmt = make_local_datetime($link, $line['updated'], false);
|
||||||
$updated_fmt = smart_date_time(strtotime($line["updated"]));
|
|
||||||
} else {
|
|
||||||
$short_date = get_pref($link, 'SHORT_DATE_FORMAT');
|
|
||||||
$updated_fmt = date($short_date, strtotime($line["updated"]));
|
|
||||||
}
|
|
||||||
|
|
||||||
$title = $line["title"];
|
$title = $line["title"];
|
||||||
$article_link = $line["link"];
|
$article_link = $line["link"];
|
||||||
|
|
||||||
|
|
|
@ -1326,22 +1326,16 @@
|
||||||
|
|
||||||
if (!$last_updated) {
|
if (!$last_updated) {
|
||||||
$last_updated = "—";
|
$last_updated = "—";
|
||||||
} else if (get_pref($link, 'HEADLINES_SMART_DATE')) {
|
|
||||||
$last_updated = smart_date_time(strtotime($last_updated));
|
|
||||||
} else {
|
} else {
|
||||||
$short_date = get_pref($link, 'SHORT_DATE_FORMAT');
|
$last_updated = make_local_datetime($link, $last_updated, false);
|
||||||
$last_updated = date($short_date, strtotime($last_updated));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
$last_article = $line["last_article"];
|
$last_article = $line["last_article"];
|
||||||
|
|
||||||
if (!$last_article) {
|
if (!$last_article) {
|
||||||
$last_article = "—";
|
$last_article = "—";
|
||||||
} else if (get_pref($link, 'HEADLINES_SMART_DATE')) {
|
|
||||||
$last_article = smart_date_time(strtotime($last_article));
|
|
||||||
} else {
|
} else {
|
||||||
$short_date = get_pref($link, 'SHORT_DATE_FORMAT');
|
$last_article = make_local_datetime($link, $last_article, false);
|
||||||
$last_article = date($short_date, strtotime($last_article));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (get_pref($link, 'ENABLE_FEED_CATS') && $cur_cat_id != $cat_id) {
|
if (get_pref($link, 'ENABLE_FEED_CATS') && $cur_cat_id != $cat_id) {
|
||||||
|
|
|
@ -370,7 +370,13 @@
|
||||||
|
|
||||||
print "<td class=\"prefValue\">";
|
print "<td class=\"prefValue\">";
|
||||||
|
|
||||||
if ($pref_name == "DEFAULT_UPDATE_INTERVAL") {
|
if ($pref_name == "USER_TIMEZONE") {
|
||||||
|
|
||||||
|
$timezones = explode("\n", file_get_contents("lib/timezones.txt"));
|
||||||
|
|
||||||
|
print_select($pref_name, $value, $timezones);
|
||||||
|
|
||||||
|
} else if ($pref_name == "DEFAULT_UPDATE_INTERVAL") {
|
||||||
|
|
||||||
global $update_intervals_nodefault;
|
global $update_intervals_nodefault;
|
||||||
|
|
||||||
|
|
|
@ -38,11 +38,11 @@
|
||||||
|
|
||||||
print "<table width='100%'>";
|
print "<table width='100%'>";
|
||||||
|
|
||||||
$last_login = date(get_pref($link, 'LONG_DATE_FORMAT'),
|
$last_login = make_local_datetime($link,
|
||||||
strtotime(db_fetch_result($result, 0, "last_login")));
|
db_fetch_result($result, 0, "last_login"));
|
||||||
|
|
||||||
$created = date(get_pref($link, 'LONG_DATE_FORMAT'),
|
$created = make_local_datetime($link,
|
||||||
strtotime(db_fetch_result($result, 0, "created")));
|
db_fetch_result($result, 0, "created"));
|
||||||
|
|
||||||
$access_level = db_fetch_result($result, 0, "access_level");
|
$access_level = db_fetch_result($result, 0, "access_level");
|
||||||
$stored_articles = db_fetch_result($result, 0, "stored_articles");
|
$stored_articles = db_fetch_result($result, 0, "stored_articles");
|
||||||
|
@ -448,18 +448,8 @@
|
||||||
|
|
||||||
$line["login"] = htmlspecialchars($line["login"]);
|
$line["login"] = htmlspecialchars($line["login"]);
|
||||||
|
|
||||||
# $line["last_login"] = date(get_pref($link, 'SHORT_DATE_FORMAT'),
|
$line["created"] = make_local_datetime($link, $line["created"], false);
|
||||||
# strtotime($line["last_login"]));
|
$line["last_login"] = make_local_datetime($link, $line["last_login"], false);
|
||||||
|
|
||||||
if (get_pref($link, 'HEADLINES_SMART_DATE')) {
|
|
||||||
$line["last_login"] = smart_date_time(strtotime($line["last_login"]));
|
|
||||||
$line["created"] = smart_date_time(strtotime($line["created"]));
|
|
||||||
} else {
|
|
||||||
$line["last_login"] = date(get_pref($link, 'SHORT_DATE_FORMAT'),
|
|
||||||
strtotime($line["last_login"]));
|
|
||||||
$line["created"] = date(get_pref($link, 'SHORT_DATE_FORMAT'),
|
|
||||||
strtotime($line["created"]));
|
|
||||||
}
|
|
||||||
|
|
||||||
print "<td align='center'><input onclick='toggleSelectPrefRow(this, \"user\");'
|
print "<td align='center'><input onclick='toggleSelectPrefRow(this, \"user\");'
|
||||||
type=\"checkbox\" id=\"UMCHK-$uid\"></td>";
|
type=\"checkbox\" id=\"UMCHK-$uid\"></td>";
|
||||||
|
|
|
@ -10,6 +10,8 @@
|
||||||
|
|
||||||
$link = db_connect(DB_HOST, DB_USER, DB_PASS, DB_NAME);
|
$link = db_connect(DB_HOST, DB_USER, DB_PASS, DB_NAME);
|
||||||
|
|
||||||
|
init_connection($link);
|
||||||
|
|
||||||
login_sequence($link);
|
login_sequence($link);
|
||||||
|
|
||||||
$dt_add = get_script_dt_add();
|
$dt_add = get_script_dt_add();
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
require_once "functions.php";
|
require_once "functions.php";
|
||||||
|
|
||||||
define('EXPECTED_CONFIG_VERSION', 19);
|
define('EXPECTED_CONFIG_VERSION', 19);
|
||||||
define('SCHEMA_VERSION', 67);
|
define('SCHEMA_VERSION', 68);
|
||||||
|
|
||||||
if (!file_exists("config.php")) {
|
if (!file_exists("config.php")) {
|
||||||
print "<b>Fatal Error</b>: You forgot to copy
|
print "<b>Fatal Error</b>: You forgot to copy
|
||||||
|
|
|
@ -241,7 +241,7 @@ create table ttrss_tags (id integer primary key auto_increment,
|
||||||
|
|
||||||
create table ttrss_version (schema_version int not null) TYPE=InnoDB;
|
create table ttrss_version (schema_version int not null) TYPE=InnoDB;
|
||||||
|
|
||||||
insert into ttrss_version values (67);
|
insert into ttrss_version values (68);
|
||||||
|
|
||||||
create table ttrss_enclosures (id integer primary key auto_increment,
|
create table ttrss_enclosures (id integer primary key auto_increment,
|
||||||
content_url text not null,
|
content_url text not null,
|
||||||
|
@ -400,6 +400,8 @@ insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id) valu
|
||||||
|
|
||||||
insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id) values('_THEME_ID', 2, '0', '', 1);
|
insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id) values('_THEME_ID', 2, '0', '', 1);
|
||||||
|
|
||||||
|
insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id) values('USER_TIMEZONE', 2, 'UTC', 'User timezone', 1);
|
||||||
|
|
||||||
create table ttrss_user_prefs (
|
create table ttrss_user_prefs (
|
||||||
owner_uid integer not null,
|
owner_uid integer not null,
|
||||||
pref_name varchar(250),
|
pref_name varchar(250),
|
||||||
|
|
|
@ -213,7 +213,7 @@ create index ttrss_tags_owner_uid_index on ttrss_tags(owner_uid);
|
||||||
|
|
||||||
create table ttrss_version (schema_version int not null);
|
create table ttrss_version (schema_version int not null);
|
||||||
|
|
||||||
insert into ttrss_version values (67);
|
insert into ttrss_version values (68);
|
||||||
|
|
||||||
create table ttrss_enclosures (id serial not null primary key,
|
create table ttrss_enclosures (id serial not null primary key,
|
||||||
content_url text not null,
|
content_url text not null,
|
||||||
|
@ -364,6 +364,8 @@ insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id) valu
|
||||||
|
|
||||||
insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id) values('_THEME_ID', 2, '0', '', 1);
|
insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id) values('_THEME_ID', 2, '0', '', 1);
|
||||||
|
|
||||||
|
insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id) values('USER_TIMEZONE', 2, 'UTC', 'User timezone', 1);
|
||||||
|
|
||||||
create table ttrss_user_prefs (
|
create table ttrss_user_prefs (
|
||||||
owner_uid integer not null references ttrss_users(id) ON DELETE CASCADE,
|
owner_uid integer not null references ttrss_users(id) ON DELETE CASCADE,
|
||||||
pref_name varchar(250) not null references ttrss_prefs(pref_name) ON DELETE CASCADE,
|
pref_name varchar(250) not null references ttrss_prefs(pref_name) ON DELETE CASCADE,
|
||||||
|
|
7
schema/versions/mysql/68.sql
Normal file
7
schema/versions/mysql/68.sql
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
begin;
|
||||||
|
|
||||||
|
insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id) values('USER_TIMEZONE', 2, 'UTC', 'User timezone', 1);
|
||||||
|
|
||||||
|
update ttrss_version set schema_version = 68;
|
||||||
|
|
||||||
|
commit;
|
7
schema/versions/pgsql/68.sql
Normal file
7
schema/versions/pgsql/68.sql
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
begin;
|
||||||
|
|
||||||
|
insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id) values('USER_TIMEZONE', 2, 'UTC', 'User timezone', 1);
|
||||||
|
|
||||||
|
update ttrss_version set schema_version = 68;
|
||||||
|
|
||||||
|
commit;
|
|
@ -10,6 +10,8 @@
|
||||||
|
|
||||||
$link = db_connect(DB_HOST, DB_USER, DB_PASS, DB_NAME);
|
$link = db_connect(DB_HOST, DB_USER, DB_PASS, DB_NAME);
|
||||||
|
|
||||||
|
init_connection($link);
|
||||||
|
|
||||||
login_sequence($link);
|
login_sequence($link);
|
||||||
|
|
||||||
$dt_add = get_script_dt_add();
|
$dt_add = get_script_dt_add();
|
||||||
|
|
Loading…
Reference in a new issue