generated feeds: support if-modified-since

This commit is contained in:
Andrew Dolgov 2013-04-01 21:08:32 +04:00
parent f0e015c428
commit 2e35a7070b
3 changed files with 23 additions and 5 deletions

View File

@ -43,8 +43,6 @@
require_once "db.php"; require_once "db.php";
require_once "db-prefs.php"; require_once "db-prefs.php";
no_cache_incantation();
startup_gettext(); startup_gettext();
$script_started = microtime(true); $script_started = microtime(true);

View File

@ -21,11 +21,32 @@ class Handler_Public extends Handler {
else if ($feed == -1) else if ($feed == -1)
$date_sort_field = "last_marked DESC"; $date_sort_field = "last_marked DESC";
$qfh_ret = queryFeedHeadlines($this->link, $feed,
1, $view_mode, $is_cat, $search, $search_mode,
$date_sort_field, $offset, $owner_uid,
false, 0, false, true);
$result = $qfh_ret[0];
if (db_num_rows($result) != 0) {
$ts = strtotime(db_fetch_result($result, 0, "date_entered"));
if (isset($_SERVER['HTTP_IF_MODIFIED_SINCE']) &&
strtotime($_SERVER['HTTP_IF_MODIFIED_SINCE']) >= $last_modified) {
header('HTTP/1.0 304 Not Modified');
return;
}
$last_modified = gmdate("D, d M Y H:i:s", $ts) . " GMT";
header("Last-Modified: $last_modified", true);
}
$qfh_ret = queryFeedHeadlines($this->link, $feed, $qfh_ret = queryFeedHeadlines($this->link, $feed,
$limit, $view_mode, $is_cat, $search, $search_mode, $limit, $view_mode, $is_cat, $search, $search_mode,
$date_sort_field, $offset, $owner_uid, $date_sort_field, $offset, $owner_uid,
false, 0, false, true); false, 0, false, true);
$result = $qfh_ret[0]; $result = $qfh_ret[0];
$feed_title = htmlspecialchars($qfh_ret[1]); $feed_title = htmlspecialchars($qfh_ret[1]);
$feed_site_url = $qfh_ret[2]; $feed_site_url = $qfh_ret[2];
@ -53,7 +74,8 @@ class Handler_Public extends Handler {
$tpl->setVariable('SELF_URL', htmlspecialchars(get_self_url_prefix()), true); $tpl->setVariable('SELF_URL', htmlspecialchars(get_self_url_prefix()), true);
while ($line = db_fetch_assoc($result)) { while ($line = db_fetch_assoc($result)) {
$tpl->setVariable('ARTICLE_ID', htmlspecialchars($line['link']), true); $tpl->setVariable('ARTICLE_ID', htmlspecialchars($line['link']), true);
$tpl->setVariable('ARTICLE_LINK', htmlspecialchars($line['link']), true); $tpl->setVariable('ARTICLE_LINK', htmlspecialchars($line['link']), true);
$tpl->setVariable('ARTICLE_TITLE', htmlspecialchars($line['title']), true); $tpl->setVariable('ARTICLE_TITLE', htmlspecialchars($line['title']), true);

View File

@ -24,8 +24,6 @@
require_once "db.php"; require_once "db.php";
require_once "db-prefs.php"; require_once "db-prefs.php";
no_cache_incantation();
startup_gettext(); startup_gettext();
$script_started = microtime(true); $script_started = microtime(true);