Merge branch 'master' of git.fakecake.org:tt-rss
This commit is contained in:
commit
e993d4feb2
|
@ -112,7 +112,7 @@ class Counters {
|
||||||
|
|
||||||
$id = $line["id"];
|
$id = $line["id"];
|
||||||
$last_error = htmlspecialchars($line["last_error"]);
|
$last_error = htmlspecialchars($line["last_error"]);
|
||||||
$last_updated = make_local_datetime($line['last_updated'], false);
|
$last_updated = TimeHelper::make_local_datetime($line['last_updated'], false);
|
||||||
|
|
||||||
if (Feeds::feedHasIcon($id)) {
|
if (Feeds::feedHasIcon($id)) {
|
||||||
$has_img = filemtime(Feeds::getIconFile($id));
|
$has_img = filemtime(Feeds::getIconFile($id));
|
||||||
|
|
|
@ -97,7 +97,7 @@ class Digest
|
||||||
$tpl_t->readTemplateFromFile("digest_template.txt");
|
$tpl_t->readTemplateFromFile("digest_template.txt");
|
||||||
|
|
||||||
$user_tz_string = get_pref('USER_TIMEZONE', $user_id);
|
$user_tz_string = get_pref('USER_TIMEZONE', $user_id);
|
||||||
$local_ts = convert_timestamp(time(), 'UTC', $user_tz_string);
|
$local_ts = TimeHelper::convert_timestamp(time(), 'UTC', $user_tz_string);
|
||||||
|
|
||||||
$tpl->setVariable('CUR_DATE', date('Y/m/d', $local_ts));
|
$tpl->setVariable('CUR_DATE', date('Y/m/d', $local_ts));
|
||||||
$tpl->setVariable('CUR_TIME', date('G:i', $local_ts));
|
$tpl->setVariable('CUR_TIME', date('G:i', $local_ts));
|
||||||
|
@ -159,7 +159,7 @@ class Digest
|
||||||
|
|
||||||
array_push($affected_ids, $line["ref_id"]);
|
array_push($affected_ids, $line["ref_id"]);
|
||||||
|
|
||||||
$updated = make_local_datetime($line['last_updated'], false,
|
$updated = TimeHelper::make_local_datetime($line['last_updated'], false,
|
||||||
$user_id);
|
$user_id);
|
||||||
|
|
||||||
if (get_pref('ENABLE_FEED_CATS', $user_id)) {
|
if (get_pref('ENABLE_FEED_CATS', $user_id)) {
|
||||||
|
|
|
@ -211,7 +211,7 @@ class Feeds extends Handler_Protected {
|
||||||
$feed_site_url = $qfh_ret[2];
|
$feed_site_url = $qfh_ret[2];
|
||||||
$last_error = $qfh_ret[3];
|
$last_error = $qfh_ret[3];
|
||||||
$last_updated = strpos($qfh_ret[4], '1970-') === false ?
|
$last_updated = strpos($qfh_ret[4], '1970-') === false ?
|
||||||
make_local_datetime($qfh_ret[4], false) : __("Never");
|
TimeHelper::make_local_datetime($qfh_ret[4], false) : __("Never");
|
||||||
$highlight_words = $qfh_ret[5];
|
$highlight_words = $qfh_ret[5];
|
||||||
$reply['first_id'] = $qfh_ret[6];
|
$reply['first_id'] = $qfh_ret[6];
|
||||||
$reply['is_vfeed'] = $qfh_ret[7];
|
$reply['is_vfeed'] = $qfh_ret[7];
|
||||||
|
@ -343,12 +343,12 @@ class Feeds extends Handler_Protected {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$line["updated_long"] = make_local_datetime($line["updated"],true);
|
$line["updated_long"] = TimeHelper::make_local_datetime($line["updated"],true);
|
||||||
$line["updated"] = make_local_datetime($line["updated"], false, false, false, true);
|
$line["updated"] = TimeHelper::make_local_datetime($line["updated"], false, false, false, true);
|
||||||
|
|
||||||
|
|
||||||
$line['imported'] = T_sprintf("Imported at %s",
|
$line['imported'] = T_sprintf("Imported at %s",
|
||||||
make_local_datetime($line["date_entered"], false));
|
TimeHelper::make_local_datetime($line["date_entered"], false));
|
||||||
|
|
||||||
if ($line["tag_cache"])
|
if ($line["tag_cache"])
|
||||||
$tags = explode(",", $line["tag_cache"]);
|
$tags = explode(",", $line["tag_cache"]);
|
||||||
|
@ -426,7 +426,7 @@ class Feeds extends Handler_Protected {
|
||||||
$sth->execute([$_SESSION['uid']]);
|
$sth->execute([$_SESSION['uid']]);
|
||||||
$row = $sth->fetch();
|
$row = $sth->fetch();
|
||||||
|
|
||||||
$last_updated = make_local_datetime($row["last_updated"], false);
|
$last_updated = TimeHelper::make_local_datetime($row["last_updated"], false);
|
||||||
|
|
||||||
$reply['content'] .= sprintf(__("Feeds last updated at %s"), $last_updated);
|
$reply['content'] .= sprintf(__("Feeds last updated at %s"), $last_updated);
|
||||||
|
|
||||||
|
@ -580,7 +580,7 @@ class Feeds extends Handler_Protected {
|
||||||
$sth->execute([$_SESSION['uid']]);
|
$sth->execute([$_SESSION['uid']]);
|
||||||
$row = $sth->fetch();
|
$row = $sth->fetch();
|
||||||
|
|
||||||
$last_updated = make_local_datetime($row["last_updated"], false);
|
$last_updated = TimeHelper::make_local_datetime($row["last_updated"], false);
|
||||||
|
|
||||||
$reply['headlines']['content'] .= sprintf(__("Feeds last updated at %s"), $last_updated);
|
$reply['headlines']['content'] .= sprintf(__("Feeds last updated at %s"), $last_updated);
|
||||||
|
|
||||||
|
@ -2239,7 +2239,7 @@ class Feeds extends Handler_Protected {
|
||||||
|
|
||||||
$user_tz_string = get_pref('USER_TIMEZONE', $_SESSION['uid']);
|
$user_tz_string = get_pref('USER_TIMEZONE', $_SESSION['uid']);
|
||||||
$orig_ts = strtotime(substr($k, 1));
|
$orig_ts = strtotime(substr($k, 1));
|
||||||
$k = date("Y-m-d", convert_timestamp($orig_ts, $user_tz_string, 'UTC'));
|
$k = date("Y-m-d", TimeHelper::convert_timestamp($orig_ts, $user_tz_string, 'UTC'));
|
||||||
|
|
||||||
//$k = date("Y-m-d", strtotime(substr($k, 1)));
|
//$k = date("Y-m-d", strtotime(substr($k, 1)));
|
||||||
|
|
||||||
|
|
|
@ -414,7 +414,7 @@ class Handler_Public extends Handler {
|
||||||
$rv .= "<div class='row'>"; # row
|
$rv .= "<div class='row'>"; # row
|
||||||
|
|
||||||
//$entry_author = $line["author"] ? " - " . $line["author"] : "";
|
//$entry_author = $line["author"] ? " - " . $line["author"] : "";
|
||||||
$parsed_updated = make_local_datetime($line["updated"], true,
|
$parsed_updated = TimeHelper::make_local_datetime($line["updated"], true,
|
||||||
$owner_uid, true);
|
$owner_uid, true);
|
||||||
|
|
||||||
$rv .= "<div>".$line['author']."</div>";
|
$rv .= "<div>".$line['author']."</div>";
|
||||||
|
|
|
@ -101,7 +101,7 @@ class Pref_Feeds extends Handler_Protected {
|
||||||
$feed['unread'] = -1;
|
$feed['unread'] = -1;
|
||||||
$feed['error'] = $feed_line['last_error'];
|
$feed['error'] = $feed_line['last_error'];
|
||||||
$feed['icon'] = Feeds::getFeedIcon($feed_line['id']);
|
$feed['icon'] = Feeds::getFeedIcon($feed_line['id']);
|
||||||
$feed['param'] = make_local_datetime(
|
$feed['param'] = TimeHelper::make_local_datetime(
|
||||||
$feed_line['last_updated'], true);
|
$feed_line['last_updated'], true);
|
||||||
$feed['updates_disabled'] = (int)($feed_line['update_interval'] < 0);
|
$feed['updates_disabled'] = (int)($feed_line['update_interval'] < 0);
|
||||||
|
|
||||||
|
@ -268,7 +268,7 @@ class Pref_Feeds extends Handler_Protected {
|
||||||
$feed['checkbox'] = false;
|
$feed['checkbox'] = false;
|
||||||
$feed['error'] = $feed_line['last_error'];
|
$feed['error'] = $feed_line['last_error'];
|
||||||
$feed['icon'] = Feeds::getFeedIcon($feed_line['id']);
|
$feed['icon'] = Feeds::getFeedIcon($feed_line['id']);
|
||||||
$feed['param'] = make_local_datetime(
|
$feed['param'] = TimeHelper::make_local_datetime(
|
||||||
$feed_line['last_updated'], true);
|
$feed_line['last_updated'], true);
|
||||||
$feed['unread'] = -1;
|
$feed['unread'] = -1;
|
||||||
$feed['type'] = 'feed';
|
$feed['type'] = 'feed';
|
||||||
|
@ -303,7 +303,7 @@ class Pref_Feeds extends Handler_Protected {
|
||||||
$feed['checkbox'] = false;
|
$feed['checkbox'] = false;
|
||||||
$feed['error'] = $feed_line['last_error'];
|
$feed['error'] = $feed_line['last_error'];
|
||||||
$feed['icon'] = Feeds::getFeedIcon($feed_line['id']);
|
$feed['icon'] = Feeds::getFeedIcon($feed_line['id']);
|
||||||
$feed['param'] = make_local_datetime(
|
$feed['param'] = TimeHelper::make_local_datetime(
|
||||||
$feed_line['last_updated'], true);
|
$feed_line['last_updated'], true);
|
||||||
$feed['unread'] = -1;
|
$feed['unread'] = -1;
|
||||||
$feed['type'] = 'feed';
|
$feed['type'] = 'feed';
|
||||||
|
@ -1478,7 +1478,7 @@ class Pref_Feeds extends Handler_Protected {
|
||||||
htmlspecialchars($line["title"])."</a>";
|
htmlspecialchars($line["title"])."</a>";
|
||||||
|
|
||||||
print "</td><td class='text-muted' align='right'>";
|
print "</td><td class='text-muted' align='right'>";
|
||||||
print make_local_datetime($line['last_article'], false);
|
print TimeHelper::make_local_datetime($line['last_article'], false);
|
||||||
print "</td>";
|
print "</td>";
|
||||||
print "</tr>";
|
print "</tr>";
|
||||||
|
|
||||||
|
|
|
@ -302,7 +302,7 @@ class Pref_Filters extends Handler_Protected {
|
||||||
$filter['name'] = $name[0];
|
$filter['name'] = $name[0];
|
||||||
$filter['param'] = $name[1];
|
$filter['param'] = $name[1];
|
||||||
$filter['checkbox'] = false;
|
$filter['checkbox'] = false;
|
||||||
$filter['last_triggered'] = $line["last_triggered"] ? make_local_datetime($line["last_triggered"], false) : null;
|
$filter['last_triggered'] = $line["last_triggered"] ? TimeHelper::make_local_datetime($line["last_triggered"], false) : null;
|
||||||
$filter['enabled'] = sql_bool_to_bool($line["enabled"]);
|
$filter['enabled'] = sql_bool_to_bool($line["enabled"]);
|
||||||
$filter['rules'] = $this->getfilterrules_list($line['id']);
|
$filter['rules'] = $this->getfilterrules_list($line['id']);
|
||||||
|
|
||||||
|
|
|
@ -1320,11 +1320,11 @@ class Pref_Prefs extends Handler_Protected {
|
||||||
print "<td>" . htmlspecialchars($row["title"]) . "</td>";
|
print "<td>" . htmlspecialchars($row["title"]) . "</td>";
|
||||||
|
|
||||||
print "<td align='right' class='text-muted'>";
|
print "<td align='right' class='text-muted'>";
|
||||||
print make_local_datetime($row['created'], false);
|
print TimeHelper::make_local_datetime($row['created'], false);
|
||||||
print "</td>";
|
print "</td>";
|
||||||
|
|
||||||
print "<td align='right' class='text-muted'>";
|
print "<td align='right' class='text-muted'>";
|
||||||
print make_local_datetime($row['last_used'], false);
|
print TimeHelper::make_local_datetime($row['last_used'], false);
|
||||||
print "</td>";
|
print "</td>";
|
||||||
|
|
||||||
print "</tr>";
|
print "</tr>";
|
||||||
|
|
|
@ -66,8 +66,7 @@ class Pref_System extends Handler_Protected {
|
||||||
print "<td class='login'>" . $line["login"] . "</td>";
|
print "<td class='login'>" . $line["login"] . "</td>";
|
||||||
|
|
||||||
print "<td class='timestamp'>" .
|
print "<td class='timestamp'>" .
|
||||||
make_local_datetime(
|
TimeHelper::make_local_datetime($line["created_at"], false) . "</td>";
|
||||||
$line["created_at"], false) . "</td>";
|
|
||||||
|
|
||||||
print "</tr>";
|
print "</tr>";
|
||||||
}
|
}
|
||||||
|
|
|
@ -137,10 +137,10 @@ class Pref_Users extends Handler_Protected {
|
||||||
if ($row = $sth->fetch()) {
|
if ($row = $sth->fetch()) {
|
||||||
print "<table width='100%'>";
|
print "<table width='100%'>";
|
||||||
|
|
||||||
$last_login = make_local_datetime(
|
$last_login = TimeHelper::make_local_datetime(
|
||||||
$row["last_login"], true);
|
$row["last_login"], true);
|
||||||
|
|
||||||
$created = make_local_datetime(
|
$created = TimeHelper::make_local_datetime(
|
||||||
$row["created"], true);
|
$row["created"], true);
|
||||||
|
|
||||||
$stored_articles = $row["stored_articles"];
|
$stored_articles = $row["stored_articles"];
|
||||||
|
@ -399,8 +399,8 @@ class Pref_Users extends Handler_Protected {
|
||||||
print "<tr data-row-id='$uid' onclick='Users.edit($uid)'>";
|
print "<tr data-row-id='$uid' onclick='Users.edit($uid)'>";
|
||||||
|
|
||||||
$line["login"] = htmlspecialchars($line["login"]);
|
$line["login"] = htmlspecialchars($line["login"]);
|
||||||
$line["created"] = make_local_datetime($line["created"], false);
|
$line["created"] = TimeHelper::make_local_datetime($line["created"], false);
|
||||||
$line["last_login"] = make_local_datetime($line["last_login"], false);
|
$line["last_login"] = TimeHelper::make_local_datetime($line["last_login"], false);
|
||||||
|
|
||||||
print "<td align='center'><input onclick='Tables.onRowChecked(this); event.stopPropagation();'
|
print "<td align='center'><input onclick='Tables.onRowChecked(this); event.stopPropagation();'
|
||||||
dojoType='dijit.form.CheckBox' type='checkbox'></td>";
|
dojoType='dijit.form.CheckBox' type='checkbox'></td>";
|
||||||
|
|
|
@ -647,8 +647,6 @@ class RPC extends Handler_Protected {
|
||||||
$params["php_platform"] = PHP_OS;
|
$params["php_platform"] = PHP_OS;
|
||||||
$params["php_version"] = PHP_VERSION;
|
$params["php_version"] = PHP_VERSION;
|
||||||
|
|
||||||
$params["sanity_checksum"] = sha1(file_get_contents("include/sanity_check.php"));
|
|
||||||
|
|
||||||
$pdo = Db::pdo();
|
$pdo = Db::pdo();
|
||||||
|
|
||||||
$sth = $pdo->prepare("SELECT MAX(id) AS mid, COUNT(*) AS nf FROM
|
$sth = $pdo->prepare("SELECT MAX(id) AS mid, COUNT(*) AS nf FROM
|
||||||
|
|
|
@ -0,0 +1,88 @@
|
||||||
|
<?php
|
||||||
|
class TimeHelper {
|
||||||
|
|
||||||
|
static function smart_date_time($timestamp, $tz_offset = 0, $owner_uid = false, $eta_min = false) {
|
||||||
|
if (!$owner_uid) $owner_uid = $_SESSION['uid'];
|
||||||
|
|
||||||
|
if ($eta_min && time() + $tz_offset - $timestamp < 3600) {
|
||||||
|
return T_sprintf("%d min", date("i", time() + $tz_offset - $timestamp));
|
||||||
|
} else if (date("Y.m.d", $timestamp) == date("Y.m.d", time() + $tz_offset)) {
|
||||||
|
$format = get_pref('SHORT_DATE_FORMAT', $owner_uid);
|
||||||
|
if (strpos((strtolower($format)), "a") === false)
|
||||||
|
return date("G:i", $timestamp);
|
||||||
|
else
|
||||||
|
return date("g:i a", $timestamp);
|
||||||
|
} else if (date("Y", $timestamp) == date("Y", time() + $tz_offset)) {
|
||||||
|
$format = get_pref('SHORT_DATE_FORMAT', $owner_uid);
|
||||||
|
return date($format, $timestamp);
|
||||||
|
} else {
|
||||||
|
$format = get_pref('LONG_DATE_FORMAT', $owner_uid);
|
||||||
|
return date($format, $timestamp);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static function make_local_datetime($timestamp, $long, $owner_uid = false,
|
||||||
|
$no_smart_dt = false, $eta_min = false) {
|
||||||
|
|
||||||
|
if (!$owner_uid) $owner_uid = $_SESSION['uid'];
|
||||||
|
if (!$timestamp) $timestamp = '1970-01-01 0:00';
|
||||||
|
|
||||||
|
global $utc_tz;
|
||||||
|
global $user_tz;
|
||||||
|
|
||||||
|
if (!$utc_tz) $utc_tz = new DateTimeZone('UTC');
|
||||||
|
|
||||||
|
$timestamp = substr($timestamp, 0, 19);
|
||||||
|
|
||||||
|
# We store date in UTC internally
|
||||||
|
$dt = new DateTime($timestamp, $utc_tz);
|
||||||
|
|
||||||
|
$user_tz_string = get_pref('USER_TIMEZONE', $owner_uid);
|
||||||
|
|
||||||
|
if ($user_tz_string != 'Automatic') {
|
||||||
|
|
||||||
|
try {
|
||||||
|
if (!$user_tz) $user_tz = new DateTimeZone($user_tz_string);
|
||||||
|
} catch (Exception $e) {
|
||||||
|
$user_tz = $utc_tz;
|
||||||
|
}
|
||||||
|
|
||||||
|
$tz_offset = $user_tz->getOffset($dt);
|
||||||
|
} else {
|
||||||
|
$tz_offset = (int) -$_SESSION["clientTzOffset"];
|
||||||
|
}
|
||||||
|
|
||||||
|
$user_timestamp = $dt->format('U') + $tz_offset;
|
||||||
|
|
||||||
|
if (!$no_smart_dt) {
|
||||||
|
return self::smart_date_time($user_timestamp,
|
||||||
|
$tz_offset, $owner_uid, $eta_min);
|
||||||
|
} else {
|
||||||
|
if ($long)
|
||||||
|
$format = get_pref('LONG_DATE_FORMAT', $owner_uid);
|
||||||
|
else
|
||||||
|
$format = get_pref('SHORT_DATE_FORMAT', $owner_uid);
|
||||||
|
|
||||||
|
return date($format, $user_timestamp);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static function convert_timestamp($timestamp, $source_tz, $dest_tz) {
|
||||||
|
|
||||||
|
try {
|
||||||
|
$source_tz = new DateTimeZone($source_tz);
|
||||||
|
} catch (Exception $e) {
|
||||||
|
$source_tz = new DateTimeZone('UTC');
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
$dest_tz = new DateTimeZone($dest_tz);
|
||||||
|
} catch (Exception $e) {
|
||||||
|
$dest_tz = new DateTimeZone('UTC');
|
||||||
|
}
|
||||||
|
|
||||||
|
$dt = new DateTime(date('Y-m-d H:i:s', $timestamp), $source_tz);
|
||||||
|
return $dt->format('U') + $dest_tz->getOffset($dt);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -168,26 +168,46 @@
|
||||||
Debug::log($msg);
|
Debug::log($msg);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// @deprecated
|
||||||
|
function getFeedUnread($feed, $is_cat = false) {
|
||||||
|
return Feeds::getFeedArticles($feed, $is_cat, true, $_SESSION["uid"]);
|
||||||
|
}
|
||||||
|
|
||||||
|
// @deprecated
|
||||||
function sanitize($str, $force_remove_images = false, $owner = false, $site_url = false, $highlight_words = false, $article_id = false) {
|
function sanitize($str, $force_remove_images = false, $owner = false, $site_url = false, $highlight_words = false, $article_id = false) {
|
||||||
return Sanitizer::sanitize($str, $force_remove_images, $owner, $site_url, $highlight_words, $article_id);
|
return Sanitizer::sanitize($str, $force_remove_images, $owner, $site_url, $highlight_words, $article_id);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// @deprecated
|
||||||
function fetch_file_contents($params) {
|
function fetch_file_contents($params) {
|
||||||
return UrlHelper::fetch($params);
|
return UrlHelper::fetch($params);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// @deprecated
|
||||||
function rewrite_relative_url($url, $rel_url) {
|
function rewrite_relative_url($url, $rel_url) {
|
||||||
return UrlHelper::rewrite_relative($url, $rel_url);
|
return UrlHelper::rewrite_relative($url, $rel_url);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// @deprecated
|
||||||
function validate_url($url) {
|
function validate_url($url) {
|
||||||
return UrlHelper::validate($url);
|
return UrlHelper::validate($url);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// @deprecated
|
||||||
function authenticate_user($login, $password, $check_only = false, $service = false) {
|
function authenticate_user($login, $password, $check_only = false, $service = false) {
|
||||||
return UserHelper::authenticate($login, $password, $check_only, $service);
|
return UserHelper::authenticate($login, $password, $check_only, $service);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// @deprecated
|
||||||
|
function smart_date_time($timestamp, $tz_offset = 0, $owner_uid = false, $eta_min = false) {
|
||||||
|
return TimeHelper::smart_date_time($timestamp, $tz_offset, $owner_uid, $eta_min);
|
||||||
|
}
|
||||||
|
|
||||||
|
// @deprecated
|
||||||
|
function make_local_datetime($timestamp, $long, $owner_uid = false, $no_smart_dt = false, $eta_min = false) {
|
||||||
|
return TimeHelper::make_local_datetime($timestamp, $long, $owner_uid, $no_smart_dt, $eta_min);
|
||||||
|
}
|
||||||
|
|
||||||
/* end compat shims */
|
/* end compat shims */
|
||||||
|
|
||||||
function get_ssl_certificate_id() {
|
function get_ssl_certificate_id() {
|
||||||
|
@ -271,90 +291,6 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function convert_timestamp($timestamp, $source_tz, $dest_tz) {
|
|
||||||
|
|
||||||
try {
|
|
||||||
$source_tz = new DateTimeZone($source_tz);
|
|
||||||
} catch (Exception $e) {
|
|
||||||
$source_tz = new DateTimeZone('UTC');
|
|
||||||
}
|
|
||||||
|
|
||||||
try {
|
|
||||||
$dest_tz = new DateTimeZone($dest_tz);
|
|
||||||
} catch (Exception $e) {
|
|
||||||
$dest_tz = new DateTimeZone('UTC');
|
|
||||||
}
|
|
||||||
|
|
||||||
$dt = new DateTime(date('Y-m-d H:i:s', $timestamp), $source_tz);
|
|
||||||
return $dt->format('U') + $dest_tz->getOffset($dt);
|
|
||||||
}
|
|
||||||
|
|
||||||
function make_local_datetime($timestamp, $long, $owner_uid = false,
|
|
||||||
$no_smart_dt = false, $eta_min = false) {
|
|
||||||
|
|
||||||
if (!$owner_uid) $owner_uid = $_SESSION['uid'];
|
|
||||||
if (!$timestamp) $timestamp = '1970-01-01 0:00';
|
|
||||||
|
|
||||||
global $utc_tz;
|
|
||||||
global $user_tz;
|
|
||||||
|
|
||||||
if (!$utc_tz) $utc_tz = new DateTimeZone('UTC');
|
|
||||||
|
|
||||||
$timestamp = substr($timestamp, 0, 19);
|
|
||||||
|
|
||||||
# We store date in UTC internally
|
|
||||||
$dt = new DateTime($timestamp, $utc_tz);
|
|
||||||
|
|
||||||
$user_tz_string = get_pref('USER_TIMEZONE', $owner_uid);
|
|
||||||
|
|
||||||
if ($user_tz_string != 'Automatic') {
|
|
||||||
|
|
||||||
try {
|
|
||||||
if (!$user_tz) $user_tz = new DateTimeZone($user_tz_string);
|
|
||||||
} catch (Exception $e) {
|
|
||||||
$user_tz = $utc_tz;
|
|
||||||
}
|
|
||||||
|
|
||||||
$tz_offset = $user_tz->getOffset($dt);
|
|
||||||
} else {
|
|
||||||
$tz_offset = (int) -$_SESSION["clientTzOffset"];
|
|
||||||
}
|
|
||||||
|
|
||||||
$user_timestamp = $dt->format('U') + $tz_offset;
|
|
||||||
|
|
||||||
if (!$no_smart_dt) {
|
|
||||||
return smart_date_time($user_timestamp,
|
|
||||||
$tz_offset, $owner_uid, $eta_min);
|
|
||||||
} else {
|
|
||||||
if ($long)
|
|
||||||
$format = get_pref('LONG_DATE_FORMAT', $owner_uid);
|
|
||||||
else
|
|
||||||
$format = get_pref('SHORT_DATE_FORMAT', $owner_uid);
|
|
||||||
|
|
||||||
return date($format, $user_timestamp);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function smart_date_time($timestamp, $tz_offset = 0, $owner_uid = false, $eta_min = false) {
|
|
||||||
if (!$owner_uid) $owner_uid = $_SESSION['uid'];
|
|
||||||
|
|
||||||
if ($eta_min && time() + $tz_offset - $timestamp < 3600) {
|
|
||||||
return T_sprintf("%d min", date("i", time() + $tz_offset - $timestamp));
|
|
||||||
} else if (date("Y.m.d", $timestamp) == date("Y.m.d", time() + $tz_offset)) {
|
|
||||||
$format = get_pref('SHORT_DATE_FORMAT', $owner_uid);
|
|
||||||
if (strpos((strtolower($format)), "a") === false)
|
|
||||||
return date("G:i", $timestamp);
|
|
||||||
else
|
|
||||||
return date("g:i a", $timestamp);
|
|
||||||
} else if (date("Y", $timestamp) == date("Y", time() + $tz_offset)) {
|
|
||||||
$format = get_pref('SHORT_DATE_FORMAT', $owner_uid);
|
|
||||||
return date($format, $timestamp);
|
|
||||||
} else {
|
|
||||||
$format = get_pref('LONG_DATE_FORMAT', $owner_uid);
|
|
||||||
return date($format, $timestamp);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function sql_bool_to_bool($s) {
|
function sql_bool_to_bool($s) {
|
||||||
return $s && ($s !== "f" && $s !== "false"); //no-op for PDO, backwards compat for legacy layer
|
return $s && ($s !== "f" && $s !== "false"); //no-op for PDO, backwards compat for legacy layer
|
||||||
}
|
}
|
||||||
|
@ -441,10 +377,6 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function getFeedUnread($feed, $is_cat = false) {
|
|
||||||
return Feeds::getFeedArticles($feed, $is_cat, true, $_SESSION["uid"]);
|
|
||||||
}
|
|
||||||
|
|
||||||
function checkbox_to_sql_bool($val) {
|
function checkbox_to_sql_bool($val) {
|
||||||
return ($val == "on") ? 1 : 0;
|
return ($val == "on") ? 1 : 0;
|
||||||
}
|
}
|
||||||
|
|
|
@ -98,7 +98,7 @@ class Af_Psql_Trgm extends Plugin {
|
||||||
|
|
||||||
print "</div>";
|
print "</div>";
|
||||||
|
|
||||||
print "<div style='text-align : right' class='text-muted'>" . smart_date_time(strtotime($line["updated"])) . "</div>";
|
print "<div style='text-align : right' class='text-muted'>" . TimeHelper::smart_date_time(strtotime($line["updated"])) . "</div>";
|
||||||
|
|
||||||
print "</li>";
|
print "</li>";
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue