syndicated feeds: add orig_guid to optionally alter item id to workaround duplicate checking for syndicated content; add <link> element to <source>
This commit is contained in:
parent
4b7ebe93a8
commit
fcf6bfba32
|
@ -3,7 +3,7 @@ class Handler_Public extends Handler {
|
||||||
|
|
||||||
private function generate_syndicated_feed($owner_uid, $feed, $is_cat,
|
private function generate_syndicated_feed($owner_uid, $feed, $is_cat,
|
||||||
$limit, $offset, $search, $search_mode,
|
$limit, $offset, $search, $search_mode,
|
||||||
$view_mode = false, $format = 'atom', $order = false) {
|
$view_mode = false, $format = 'atom', $order = false, $orig_guid = false) {
|
||||||
|
|
||||||
require_once "lib/MiniTemplator.class.php";
|
require_once "lib/MiniTemplator.class.php";
|
||||||
|
|
||||||
|
@ -88,7 +88,10 @@ class Handler_Public extends Handler {
|
||||||
|
|
||||||
while ($line = $this->dbh->fetch_assoc($result)) {
|
while ($line = $this->dbh->fetch_assoc($result)) {
|
||||||
|
|
||||||
$tpl->setVariable('ARTICLE_ID', htmlspecialchars($line['link']), true);
|
$tpl->setVariable('ARTICLE_ID',
|
||||||
|
htmlspecialchars($orig_guid ? $line['link'] :
|
||||||
|
get_self_url_prefix() .
|
||||||
|
"/public.php?url=" . urlencode($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);
|
||||||
$tpl->setVariable('ARTICLE_EXCERPT',
|
$tpl->setVariable('ARTICLE_EXCERPT',
|
||||||
|
@ -111,6 +114,7 @@ class Handler_Public extends Handler {
|
||||||
|
|
||||||
$tpl->setVariable('ARTICLE_AUTHOR', htmlspecialchars($line['author']), true);
|
$tpl->setVariable('ARTICLE_AUTHOR', htmlspecialchars($line['author']), true);
|
||||||
|
|
||||||
|
$tpl->setVariable('ARTICLE_SOURCE_LINK', htmlspecialchars($line['site_url']), true);
|
||||||
$tpl->setVariable('ARTICLE_SOURCE_TITLE', htmlspecialchars($line['feed_title']), true);
|
$tpl->setVariable('ARTICLE_SOURCE_TITLE', htmlspecialchars($line['feed_title']), true);
|
||||||
|
|
||||||
$tags = get_article_tags($line["id"], $owner_uid);
|
$tags = get_article_tags($line["id"], $owner_uid);
|
||||||
|
@ -344,7 +348,7 @@ class Handler_Public extends Handler {
|
||||||
function rss() {
|
function rss() {
|
||||||
$feed = $this->dbh->escape_string($_REQUEST["id"]);
|
$feed = $this->dbh->escape_string($_REQUEST["id"]);
|
||||||
$key = $this->dbh->escape_string($_REQUEST["key"]);
|
$key = $this->dbh->escape_string($_REQUEST["key"]);
|
||||||
$is_cat = $_REQUEST["is_cat"] != false;
|
$is_cat = $_REQUEST["is_cat"] != "false";
|
||||||
$limit = (int)$this->dbh->escape_string($_REQUEST["limit"]);
|
$limit = (int)$this->dbh->escape_string($_REQUEST["limit"]);
|
||||||
$offset = (int)$this->dbh->escape_string($_REQUEST["offset"]);
|
$offset = (int)$this->dbh->escape_string($_REQUEST["offset"]);
|
||||||
|
|
||||||
|
@ -354,6 +358,7 @@ class Handler_Public extends Handler {
|
||||||
$order = $this->dbh->escape_string($_REQUEST["order"]);
|
$order = $this->dbh->escape_string($_REQUEST["order"]);
|
||||||
|
|
||||||
$format = $this->dbh->escape_string($_REQUEST['format']);
|
$format = $this->dbh->escape_string($_REQUEST['format']);
|
||||||
|
$orig_guid = $_REQUEST["orig_guid"] != "false";
|
||||||
|
|
||||||
if (!$format) $format = 'atom';
|
if (!$format) $format = 'atom';
|
||||||
|
|
||||||
|
@ -373,7 +378,7 @@ class Handler_Public extends Handler {
|
||||||
|
|
||||||
if ($owner_id) {
|
if ($owner_id) {
|
||||||
$this->generate_syndicated_feed($owner_id, $feed, $is_cat, $limit,
|
$this->generate_syndicated_feed($owner_id, $feed, $is_cat, $limit,
|
||||||
$offset, $search, $search_mode, $view_mode, $format, $order);
|
$offset, $search, $search_mode, $view_mode, $format, $order, $orig_guid);
|
||||||
} else {
|
} else {
|
||||||
header('HTTP/1.1 403 Forbidden');
|
header('HTTP/1.1 403 Forbidden');
|
||||||
}
|
}
|
||||||
|
|
|
@ -20,7 +20,9 @@
|
||||||
<content type="html"><![CDATA[${ARTICLE_CONTENT}]]></content>
|
<content type="html"><![CDATA[${ARTICLE_CONTENT}]]></content>
|
||||||
<updated>${ARTICLE_UPDATED_ATOM}</updated>
|
<updated>${ARTICLE_UPDATED_ATOM}</updated>
|
||||||
<author><name>${ARTICLE_AUTHOR}</name></author>
|
<author><name>${ARTICLE_AUTHOR}</name></author>
|
||||||
<source><title>${ARTICLE_SOURCE_TITLE}</title></source>
|
<source>
|
||||||
|
<link rel="self" href="${ARTICLE_SOURCE_LINK}"/>
|
||||||
|
<title>${ARTICLE_SOURCE_TITLE}</title></source>
|
||||||
<!-- $BeginBlock category -->
|
<!-- $BeginBlock category -->
|
||||||
<category term="${ARTICLE_CATEGORY}"/>
|
<category term="${ARTICLE_CATEGORY}"/>
|
||||||
<!-- $EndBlock category -->
|
<!-- $EndBlock category -->
|
||||||
|
|
Loading…
Reference in New Issue