From 791780621ba963a3d09ee5299e85e72905c3ff99 Mon Sep 17 00:00:00 2001 From: Andrew Dolgov Date: Tue, 13 Dec 2011 16:23:31 +0400 Subject: split several functions to related classes --- classes/public_handler.php | 101 ++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 100 insertions(+), 1 deletion(-) (limited to 'classes/public_handler.php') diff --git a/classes/public_handler.php b/classes/public_handler.php index 460613e36..0618a925b 100644 --- a/classes/public_handler.php +++ b/classes/public_handler.php @@ -1,6 +1,105 @@ link, "SORT_HEADLINES_BY_FEED_DATE", $owner_uid)) { + $date_sort_field = "updated"; + } else { + $date_sort_field = "date_entered"; + } + + $qfh_ret = queryFeedHeadlines($this->link, $feed, + $limit, $view_mode, $is_cat, $search, $search_mode, + $match_on, "$date_sort_field DESC", 0, $owner_uid); + + $result = $qfh_ret[0]; + $feed_title = htmlspecialchars($qfh_ret[1]); + $feed_site_url = $qfh_ret[2]; + $last_error = $qfh_ret[3]; + + $feed_self_url = get_self_url_prefix() . + "/public.php?op=rss&id=-2&key=" . + get_feed_access_key($this->link, -2, false); + + if (!$feed_site_url) $feed_site_url = get_self_url_prefix(); + + $tpl = new MiniTemplator; + + $tpl->readTemplateFromFile("templates/generated_feed.txt"); + + $tpl->setVariable('FEED_TITLE', $feed_title); + $tpl->setVariable('VERSION', VERSION); + $tpl->setVariable('FEED_URL', htmlspecialchars($feed_self_url)); + + if (PUBSUBHUBBUB_HUB && $feed == -2) { + $tpl->setVariable('HUB_URL', htmlspecialchars(PUBSUBHUBBUB_HUB)); + $tpl->addBlock('feed_hub'); + } + + $tpl->setVariable('SELF_URL', htmlspecialchars(get_self_url_prefix())); + + while ($line = db_fetch_assoc($result)) { + $tpl->setVariable('ARTICLE_ID', htmlspecialchars($line['link'])); + $tpl->setVariable('ARTICLE_LINK', htmlspecialchars($line['link'])); + $tpl->setVariable('ARTICLE_TITLE', htmlspecialchars($line['title'])); + $tpl->setVariable('ARTICLE_EXCERPT', + truncate_string(strip_tags($line["content_preview"]), 100, '...')); + + $content = sanitize($this->link, $line["content_preview"], false, $owner_uid); + + if ($line['note']) { + $content = "
Article note: " . $line['note'] . "
" . + $content; + } + + $tpl->setVariable('ARTICLE_CONTENT', $content); + + $tpl->setVariable('ARTICLE_UPDATED', date('c', strtotime($line["updated"]))); + $tpl->setVariable('ARTICLE_AUTHOR', htmlspecialchars($line['author'])); + + $tags = get_article_tags($this->link, $line["id"], $owner_uid); + + foreach ($tags as $tag) { + $tpl->setVariable('ARTICLE_CATEGORY', htmlspecialchars($tag)); + $tpl->addBlock('category'); + } + + $enclosures = get_article_enclosures($this->link, $line["id"]); + + foreach ($enclosures as $e) { + $type = htmlspecialchars($e['content_type']); + $url = htmlspecialchars($e['content_url']); + $length = $e['duration']; + + $tpl->setVariable('ARTICLE_ENCLOSURE_URL', $url); + $tpl->setVariable('ARTICLE_ENCLOSURE_TYPE', $type); + $tpl->setVariable('ARTICLE_ENCLOSURE_LENGTH', $length); + + $tpl->addBlock('enclosure'); + } + + $tpl->addBlock('entry'); + } + + $tmp = ""; + + $tpl->addBlock('feed'); + $tpl->generateOutputToString($tmp); + + print $tmp; + } + function getUnread() { $login = db_escape_string($_REQUEST["login"]); $fresh = $_REQUEST["fresh"] == "1"; @@ -195,7 +294,7 @@ class Public_Handler extends Handler { if ($owner_id) { $_SESSION['uid'] = $owner_id; - generate_syndicated_feed($this->link, 0, $feed, $is_cat, $limit, + $this->generate_syndicated_feed(0, $feed, $is_cat, $limit, $search, $search_mode, $match_on, $view_mode); } else { header('HTTP/1.1 403 Forbidden'); -- cgit v1.2.3