move Article::format_article() to Handler_Public
This commit is contained in:
parent
966fe6d612
commit
b2c079893b
|
@ -552,278 +552,6 @@ class Article extends Handler_Protected {
|
||||||
return $rv;
|
return $rv;
|
||||||
}
|
}
|
||||||
|
|
||||||
static function format_article($id, $mark_as_read = true, $zoom_mode = false, $owner_uid = false) {
|
|
||||||
if (!$owner_uid) $owner_uid = $_SESSION["uid"];
|
|
||||||
|
|
||||||
$rv = array();
|
|
||||||
|
|
||||||
$rv['id'] = $id;
|
|
||||||
|
|
||||||
/* we can figure out feed_id from article id anyway, why do we
|
|
||||||
* pass feed_id here? let's ignore the argument :(*/
|
|
||||||
|
|
||||||
$pdo = Db::pdo();
|
|
||||||
|
|
||||||
$sth = $pdo->prepare("SELECT feed_id FROM ttrss_user_entries
|
|
||||||
WHERE ref_id = ?");
|
|
||||||
$sth->execute([$id]);
|
|
||||||
$row = $sth->fetch();
|
|
||||||
|
|
||||||
$feed_id = (int) $row["feed_id"];
|
|
||||||
|
|
||||||
$rv['feed_id'] = $feed_id;
|
|
||||||
|
|
||||||
//if (!$zoom_mode) { print "<article id='$id'><![CDATA["; };
|
|
||||||
|
|
||||||
if ($mark_as_read) {
|
|
||||||
$sth = $pdo->prepare("UPDATE ttrss_user_entries
|
|
||||||
SET unread = false,last_read = NOW()
|
|
||||||
WHERE ref_id = ? AND owner_uid = ?");
|
|
||||||
$sth->execute([$id, $owner_uid]);
|
|
||||||
|
|
||||||
CCache::update($feed_id, $owner_uid);
|
|
||||||
}
|
|
||||||
|
|
||||||
$sth = $pdo->prepare("SELECT id,title,link,content,feed_id,comments,int_id,lang,
|
|
||||||
".SUBSTRING_FOR_DATE."(updated,1,16) as updated,
|
|
||||||
(SELECT site_url FROM ttrss_feeds WHERE id = feed_id) as site_url,
|
|
||||||
(SELECT title FROM ttrss_feeds WHERE id = feed_id) as feed_title,
|
|
||||||
(SELECT hide_images FROM ttrss_feeds WHERE id = feed_id) as hide_images,
|
|
||||||
(SELECT always_display_enclosures FROM ttrss_feeds WHERE id = feed_id) as always_display_enclosures,
|
|
||||||
num_comments,
|
|
||||||
tag_cache,
|
|
||||||
author,
|
|
||||||
guid,
|
|
||||||
orig_feed_id,
|
|
||||||
note
|
|
||||||
FROM ttrss_entries,ttrss_user_entries
|
|
||||||
WHERE id = ? AND ref_id = id AND owner_uid = ?");
|
|
||||||
$sth->execute([$id, $owner_uid]);
|
|
||||||
|
|
||||||
if ($line = $sth->fetch()) {
|
|
||||||
|
|
||||||
$line["tags"] = Article::get_article_tags($id, $owner_uid, $line["tag_cache"]);
|
|
||||||
unset($line["tag_cache"]);
|
|
||||||
|
|
||||||
$line["content"] = sanitize($line["content"],
|
|
||||||
$line['hide_images'],
|
|
||||||
$owner_uid, $line["site_url"], false, $line["id"]);
|
|
||||||
|
|
||||||
foreach (PluginHost::getInstance()->get_hooks(PluginHost::HOOK_RENDER_ARTICLE) as $p) {
|
|
||||||
$line = $p->hook_render_article($line);
|
|
||||||
}
|
|
||||||
|
|
||||||
$line['content'] = rewrite_cached_urls($line['content']);
|
|
||||||
|
|
||||||
$num_comments = (int) $line["num_comments"];
|
|
||||||
$entry_comments = "";
|
|
||||||
|
|
||||||
if ($num_comments > 0) {
|
|
||||||
if ($line["comments"]) {
|
|
||||||
$comments_url = htmlspecialchars($line["comments"]);
|
|
||||||
} else {
|
|
||||||
$comments_url = htmlspecialchars($line["link"]);
|
|
||||||
}
|
|
||||||
$entry_comments = "<a class=\"comments\"
|
|
||||||
target='_blank' rel=\"noopener noreferrer\" href=\"$comments_url\">$num_comments ".
|
|
||||||
_ngettext("comment", "comments", $num_comments)."</a>";
|
|
||||||
|
|
||||||
} else {
|
|
||||||
if ($line["comments"] && $line["link"] != $line["comments"]) {
|
|
||||||
$entry_comments = "<a class=\"comments\" target='_blank' rel=\"noopener noreferrer\" href=\"".
|
|
||||||
htmlspecialchars($line["comments"])."\">".__("comments")."</a>";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
$enclosures = self::get_article_enclosures($line["id"]);
|
|
||||||
|
|
||||||
if ($zoom_mode) {
|
|
||||||
header("Content-Type: text/html");
|
|
||||||
$rv['content'] .= "<!DOCTYPE html>
|
|
||||||
<html><head>
|
|
||||||
<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\"/>
|
|
||||||
<title>".$line["title"]."</title>".
|
|
||||||
stylesheet_tag("css/default.css")."
|
|
||||||
<link rel=\"shortcut icon\" type=\"image/png\" href=\"images/favicon.png\">
|
|
||||||
<link rel=\"icon\" type=\"image/png\" sizes=\"72x72\" href=\"images/favicon-72px.png\">";
|
|
||||||
|
|
||||||
$rv['content'] .= "<meta property=\"og:title\" content=\"".htmlspecialchars($line["title"])."\"/>\n";
|
|
||||||
$rv['content'] .= "<meta property=\"og:site_name\" content=\"".htmlspecialchars($line["feed_title"])."\"/>\n";
|
|
||||||
$rv['content'] .= "<meta property=\"og:description\" content=\"".
|
|
||||||
htmlspecialchars(truncate_string(strip_tags($line["content"]), 500, "..."))."\"/>\n";
|
|
||||||
|
|
||||||
$rv['content'] .= "</head>";
|
|
||||||
|
|
||||||
$og_image = false;
|
|
||||||
|
|
||||||
foreach ($enclosures as $enc) {
|
|
||||||
if (strpos($enc["content_type"], "image/") !== FALSE) {
|
|
||||||
$og_image = $enc["content_url"];
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!$og_image) {
|
|
||||||
$tmpdoc = new DOMDocument();
|
|
||||||
|
|
||||||
if (@$tmpdoc->loadHTML(mb_substr($line["content"], 0, 131070))) {
|
|
||||||
$tmpxpath = new DOMXPath($tmpdoc);
|
|
||||||
$first_img = $tmpxpath->query("//img")->item(0);
|
|
||||||
|
|
||||||
if ($first_img) {
|
|
||||||
$og_image = $first_img->getAttribute("src");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($og_image) {
|
|
||||||
$rv['content'] .= "<meta property=\"og:image\" content=\"" . htmlspecialchars($og_image) . "\"/>";
|
|
||||||
}
|
|
||||||
|
|
||||||
$rv['content'] .= "<body class='flat ttrss_utility ttrss_zoom'>";
|
|
||||||
}
|
|
||||||
|
|
||||||
$rv['content'] .= "<div class='post post-$id'>";
|
|
||||||
|
|
||||||
/* header */
|
|
||||||
|
|
||||||
$rv['content'] .= "<div class='header'>";
|
|
||||||
$rv['content'] .= "<div class='row'>"; # row
|
|
||||||
|
|
||||||
//$entry_author = $line["author"] ? " - " . $line["author"] : "";
|
|
||||||
$parsed_updated = make_local_datetime($line["updated"], true,
|
|
||||||
$owner_uid, true);
|
|
||||||
|
|
||||||
if ($line["link"]) {
|
|
||||||
$rv['content'] .= "<div class='title'><a target='_blank' rel='noopener noreferrer'
|
|
||||||
title=\"".htmlspecialchars($line['title'])."\"
|
|
||||||
href=\"" .htmlspecialchars($line["link"]) . "\">" . $line["title"] . "</a></div>";
|
|
||||||
} else {
|
|
||||||
$rv['content'] .= "<div class='title'>" . $line["title"] . "</div>";
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!$zoom_mode)
|
|
||||||
$rv['content'] .= "<div class='date'>$parsed_updated<br/></div>";
|
|
||||||
|
|
||||||
$rv['content'] .= "</div>"; # row
|
|
||||||
|
|
||||||
$rv['content'] .= "<div class='row'>"; # row
|
|
||||||
|
|
||||||
/* left buttons */
|
|
||||||
|
|
||||||
$rv['content'] .= "<div class='buttons left'>";
|
|
||||||
foreach (PluginHost::getInstance()->get_hooks(PluginHost::HOOK_ARTICLE_LEFT_BUTTON) as $p) {
|
|
||||||
$rv['content'] .= $p->hook_article_left_button($line);
|
|
||||||
}
|
|
||||||
$rv['content'] .= "</div>";
|
|
||||||
|
|
||||||
/* comments */
|
|
||||||
|
|
||||||
$rv['content'] .= "<div class='comments'>$entry_comments</div>";
|
|
||||||
$rv['content'] .= "<div class='author'>".$line['author']."</div>";
|
|
||||||
|
|
||||||
/* tags */
|
|
||||||
|
|
||||||
$tags_str = Article::format_tags_string($line["tags"], $id);
|
|
||||||
$tags_str_full = join(", ", $line["tags"]);
|
|
||||||
|
|
||||||
if (!$tags_str_full) $tags_str_full = __("no tags");
|
|
||||||
|
|
||||||
$rv['content'] .= "<i class='material-icons'>label_outline</i><div>";
|
|
||||||
|
|
||||||
if (!$zoom_mode) {
|
|
||||||
$rv['content'] .= "<span id=\"ATSTR-$id\">$tags_str</span>
|
|
||||||
<a title=\"".__('Edit tags for this article')."\"
|
|
||||||
href=\"#\" onclick=\"Article.editTags($id)\">(+)</a>";
|
|
||||||
|
|
||||||
$rv['content'] .= "<div dojoType=\"dijit.Tooltip\"
|
|
||||||
id=\"ATSTRTIP-$id\" connectId=\"ATSTR-$id\"
|
|
||||||
position=\"below\">$tags_str_full</div>";
|
|
||||||
|
|
||||||
} else {
|
|
||||||
$tags_str = strip_tags($tags_str);
|
|
||||||
$rv['content'] .= "<span id=\"ATSTR-$id\">$tags_str</span>";
|
|
||||||
}
|
|
||||||
|
|
||||||
$rv['content'] .= "</div>";
|
|
||||||
|
|
||||||
/* buttons */
|
|
||||||
|
|
||||||
$rv['content'] .= "<div class='buttons right'>";
|
|
||||||
foreach (PluginHost::getInstance()->get_hooks(PluginHost::HOOK_ARTICLE_BUTTON) as $p) {
|
|
||||||
$rv['content'] .= $p->hook_article_button($line);
|
|
||||||
}
|
|
||||||
$rv['content'] .= "</div>";
|
|
||||||
|
|
||||||
$rv['content'] .= "</div>"; # row
|
|
||||||
|
|
||||||
$rv['content'] .= "</div>"; # header
|
|
||||||
|
|
||||||
/* note */
|
|
||||||
|
|
||||||
$rv['content'] .= "<div id=\"POSTNOTE-$id\">";
|
|
||||||
if ($line['note']) {
|
|
||||||
$rv['content'] .= Article::format_article_note($id, $line['note'], !$zoom_mode);
|
|
||||||
}
|
|
||||||
$rv['content'] .= "</div>";
|
|
||||||
|
|
||||||
/* content */
|
|
||||||
|
|
||||||
$lang = $line['lang'] ? $line['lang'] : "en";
|
|
||||||
$rv['content'] .= "<div class=\"content\" lang=\"$lang\">";
|
|
||||||
|
|
||||||
/* originally from */
|
|
||||||
|
|
||||||
if (!$zoom_mode && $line["orig_feed_id"]) {
|
|
||||||
|
|
||||||
$of_sth = $pdo->prepare("SELECT * FROM ttrss_archived_feeds
|
|
||||||
WHERE id = ? AND owner_uid = ?");
|
|
||||||
$of_sth->execute([$line["orig_feed_id"], $owner_uid]);
|
|
||||||
|
|
||||||
if ($tmp_line = $of_sth->fetch()) {
|
|
||||||
|
|
||||||
$rv['content'] .= "<div clear='both'>";
|
|
||||||
$rv['content'] .= __("Originally from:");
|
|
||||||
|
|
||||||
$rv['content'] .= " ";
|
|
||||||
|
|
||||||
$rv['content'] .= "<a target='_blank' rel='noopener noreferrer'
|
|
||||||
href=' " . htmlspecialchars($tmp_line['site_url']) . "'>" .
|
|
||||||
$tmp_line['title'] . "</a>";
|
|
||||||
|
|
||||||
$rv['content'] .= " ";
|
|
||||||
|
|
||||||
$rv['content'] .= "<a target='_blank' rel='noopener noreferrer' href='" . htmlspecialchars($tmp_line['feed_url']) . "'>";
|
|
||||||
|
|
||||||
$rv['content'] .= "</div>";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/* content body */
|
|
||||||
|
|
||||||
$rv['content'] .= $line["content"];
|
|
||||||
|
|
||||||
if (!$zoom_mode) {
|
|
||||||
$rv['content'] .= Article::format_article_enclosures($id,
|
|
||||||
$line["always_display_enclosures"],
|
|
||||||
$line["content"],
|
|
||||||
$line["hide_images"]);
|
|
||||||
}
|
|
||||||
|
|
||||||
$rv['content'] .= "</div>"; # content
|
|
||||||
|
|
||||||
$rv['content'] .= "</div>"; # post
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
foreach (PluginHost::getInstance()->get_hooks(PluginHost::HOOK_FORMAT_ARTICLE) as $p) {
|
|
||||||
$rv['content'] = $p->hook_format_article($rv['content'], $line, $zoom_mode);
|
|
||||||
}
|
|
||||||
|
|
||||||
return $rv;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
static function get_article_tags($id, $owner_uid = 0, $tag_cache = false) {
|
static function get_article_tags($id, $owner_uid = 0, $tag_cache = false) {
|
||||||
|
|
||||||
$a_id = $id;
|
$a_id = $id;
|
||||||
|
|
|
@ -300,16 +300,207 @@ class Handler_Public extends Handler {
|
||||||
$id = $row["ref_id"];
|
$id = $row["ref_id"];
|
||||||
$owner_uid = $row["owner_uid"];
|
$owner_uid = $row["owner_uid"];
|
||||||
|
|
||||||
$article = Article::format_article($id, false, true, $owner_uid);
|
print $this->format_article($id, $owner_uid);
|
||||||
|
|
||||||
print_r($article['content']);
|
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
|
header($_SERVER["SERVER_PROTOCOL"]." 404 Not Found");
|
||||||
print "Article not found.";
|
print "Article not found.";
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private function format_article($id, $owner_uid) {
|
||||||
|
|
||||||
|
$pdo = Db::pdo();
|
||||||
|
|
||||||
|
$sth = $pdo->prepare("SELECT id,title,link,content,feed_id,comments,int_id,lang,
|
||||||
|
".SUBSTRING_FOR_DATE."(updated,1,16) as updated,
|
||||||
|
(SELECT site_url FROM ttrss_feeds WHERE id = feed_id) as site_url,
|
||||||
|
(SELECT title FROM ttrss_feeds WHERE id = feed_id) as feed_title,
|
||||||
|
(SELECT hide_images FROM ttrss_feeds WHERE id = feed_id) as hide_images,
|
||||||
|
(SELECT always_display_enclosures FROM ttrss_feeds WHERE id = feed_id) as always_display_enclosures,
|
||||||
|
num_comments,
|
||||||
|
tag_cache,
|
||||||
|
author,
|
||||||
|
guid,
|
||||||
|
orig_feed_id,
|
||||||
|
note
|
||||||
|
FROM ttrss_entries,ttrss_user_entries
|
||||||
|
WHERE id = ? AND ref_id = id AND owner_uid = ?");
|
||||||
|
$sth->execute([$id, $owner_uid]);
|
||||||
|
|
||||||
|
$rv = '';
|
||||||
|
|
||||||
|
if ($line = $sth->fetch()) {
|
||||||
|
|
||||||
|
$line["tags"] = Article::get_article_tags($id, $owner_uid, $line["tag_cache"]);
|
||||||
|
unset($line["tag_cache"]);
|
||||||
|
|
||||||
|
$line["content"] = sanitize($line["content"],
|
||||||
|
$line['hide_images'],
|
||||||
|
$owner_uid, $line["site_url"], false, $line["id"]);
|
||||||
|
|
||||||
|
foreach (PluginHost::getInstance()->get_hooks(PluginHost::HOOK_RENDER_ARTICLE) as $p) {
|
||||||
|
$line = $p->hook_render_article($line);
|
||||||
|
}
|
||||||
|
|
||||||
|
$line['content'] = rewrite_cached_urls($line['content']);
|
||||||
|
|
||||||
|
$num_comments = (int) $line["num_comments"];
|
||||||
|
$entry_comments = "";
|
||||||
|
|
||||||
|
if ($num_comments > 0) {
|
||||||
|
if ($line["comments"]) {
|
||||||
|
$comments_url = htmlspecialchars($line["comments"]);
|
||||||
|
} else {
|
||||||
|
$comments_url = htmlspecialchars($line["link"]);
|
||||||
|
}
|
||||||
|
$entry_comments = "<a class=\"comments\"
|
||||||
|
target='_blank' rel=\"noopener noreferrer\" href=\"$comments_url\">$num_comments ".
|
||||||
|
_ngettext("comment", "comments", $num_comments)."</a>";
|
||||||
|
|
||||||
|
} else {
|
||||||
|
if ($line["comments"] && $line["link"] != $line["comments"]) {
|
||||||
|
$entry_comments = "<a class=\"comments\" target='_blank' rel=\"noopener noreferrer\" href=\"".
|
||||||
|
htmlspecialchars($line["comments"])."\">".__("comments")."</a>";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$enclosures = Article::get_article_enclosures($line["id"]);
|
||||||
|
|
||||||
|
header("Content-Type: text/html");
|
||||||
|
|
||||||
|
$rv .= "<!DOCTYPE html>
|
||||||
|
<html><head>
|
||||||
|
<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\"/>
|
||||||
|
<title>".$line["title"]."</title>".
|
||||||
|
stylesheet_tag("css/default.css")."
|
||||||
|
<link rel=\"shortcut icon\" type=\"image/png\" href=\"images/favicon.png\">
|
||||||
|
<link rel=\"icon\" type=\"image/png\" sizes=\"72x72\" href=\"images/favicon-72px.png\">";
|
||||||
|
|
||||||
|
$rv .= "<meta property=\"og:title\" content=\"".htmlspecialchars($line["title"])."\"/>\n";
|
||||||
|
$rv .= "<meta property=\"og:site_name\" content=\"".htmlspecialchars($line["feed_title"])."\"/>\n";
|
||||||
|
$rv .= "<meta property=\"og:description\" content=\"".
|
||||||
|
htmlspecialchars(truncate_string(strip_tags($line["content"]), 500, "..."))."\"/>\n";
|
||||||
|
|
||||||
|
$rv .= "</head>";
|
||||||
|
|
||||||
|
$og_image = false;
|
||||||
|
|
||||||
|
foreach ($enclosures as $enc) {
|
||||||
|
if (strpos($enc["content_type"], "image/") !== FALSE) {
|
||||||
|
$og_image = $enc["content_url"];
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!$og_image) {
|
||||||
|
$tmpdoc = new DOMDocument();
|
||||||
|
|
||||||
|
if (@$tmpdoc->loadHTML(mb_substr($line["content"], 0, 131070))) {
|
||||||
|
$tmpxpath = new DOMXPath($tmpdoc);
|
||||||
|
$first_img = $tmpxpath->query("//img")->item(0);
|
||||||
|
|
||||||
|
if ($first_img) {
|
||||||
|
$og_image = $first_img->getAttribute("src");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($og_image) {
|
||||||
|
$rv .= "<meta property=\"og:image\" content=\"" . htmlspecialchars($og_image) . "\"/>";
|
||||||
|
}
|
||||||
|
|
||||||
|
$rv .= "<body class='flat ttrss_utility ttrss_zoom'>";
|
||||||
|
$rv .= "<div class='post post-$id'>";
|
||||||
|
|
||||||
|
/* header */
|
||||||
|
|
||||||
|
$rv .= "<div class='header'>";
|
||||||
|
$rv .= "<div class='row'>"; # row
|
||||||
|
|
||||||
|
//$entry_author = $line["author"] ? " - " . $line["author"] : "";
|
||||||
|
$parsed_updated = make_local_datetime($line["updated"], true,
|
||||||
|
$owner_uid, true);
|
||||||
|
|
||||||
|
if ($line["link"]) {
|
||||||
|
$rv .= "<div class='title'><a target='_blank' rel='noopener noreferrer'
|
||||||
|
title=\"".htmlspecialchars($line['title'])."\"
|
||||||
|
href=\"" .htmlspecialchars($line["link"]) . "\">" . $line["title"] . "</a></div>";
|
||||||
|
} else {
|
||||||
|
$rv .= "<div class='title'>" . $line["title"] . "</div>";
|
||||||
|
}
|
||||||
|
|
||||||
|
$rv .= "<div class='date'>$parsed_updated<br/></div>";
|
||||||
|
|
||||||
|
$rv .= "</div>"; # row
|
||||||
|
|
||||||
|
$rv .= "<div class='row'>"; # row
|
||||||
|
|
||||||
|
/* left buttons */
|
||||||
|
|
||||||
|
$rv .= "<div class='buttons left'>";
|
||||||
|
foreach (PluginHost::getInstance()->get_hooks(PluginHost::HOOK_ARTICLE_LEFT_BUTTON) as $p) {
|
||||||
|
$rv .= $p->hook_article_left_button($line);
|
||||||
|
}
|
||||||
|
$rv .= "</div>";
|
||||||
|
|
||||||
|
/* comments */
|
||||||
|
|
||||||
|
$rv .= "<div class='comments'>$entry_comments</div>";
|
||||||
|
$rv .= "<div class='author'>".$line['author']."</div>";
|
||||||
|
|
||||||
|
/* tags */
|
||||||
|
|
||||||
|
$tags_str = Article::format_tags_string($line["tags"], $id);
|
||||||
|
|
||||||
|
$rv .= "<i class='material-icons'>label_outline</i><div>";
|
||||||
|
|
||||||
|
$tags_str = strip_tags($tags_str);
|
||||||
|
$rv .= "<span id=\"ATSTR-$id\">$tags_str</span>";
|
||||||
|
|
||||||
|
$rv .= "</div>";
|
||||||
|
|
||||||
|
/* buttons */
|
||||||
|
|
||||||
|
$rv .= "<div class='buttons right'>";
|
||||||
|
foreach (PluginHost::getInstance()->get_hooks(PluginHost::HOOK_ARTICLE_BUTTON) as $p) {
|
||||||
|
$rv .= $p->hook_article_button($line);
|
||||||
|
}
|
||||||
|
$rv .= "</div>";
|
||||||
|
|
||||||
|
$rv .= "</div>"; # row
|
||||||
|
|
||||||
|
$rv .= "</div>"; # header
|
||||||
|
|
||||||
|
/* content */
|
||||||
|
|
||||||
|
$lang = $line['lang'] ? $line['lang'] : "en";
|
||||||
|
$rv .= "<div class=\"content\" lang=\"$lang\">";
|
||||||
|
|
||||||
|
/* content body */
|
||||||
|
|
||||||
|
$rv .= $line["content"];
|
||||||
|
|
||||||
|
/* $rv .= Article::format_article_enclosures($id,
|
||||||
|
$line["always_display_enclosures"],
|
||||||
|
$line["content"],
|
||||||
|
$line["hide_images"]); */
|
||||||
|
|
||||||
|
$rv .= "</div>"; # content
|
||||||
|
|
||||||
|
$rv .= "</div>"; # post
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach (PluginHost::getInstance()->get_hooks(PluginHost::HOOK_FORMAT_ARTICLE) as $p) {
|
||||||
|
$rv = $p->hook_format_article($rv, $line, true);
|
||||||
|
}
|
||||||
|
|
||||||
|
return $rv;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
function rss() {
|
function rss() {
|
||||||
$feed = clean($_REQUEST["id"]);
|
$feed = clean($_REQUEST["id"]);
|
||||||
$key = clean($_REQUEST["key"]);
|
$key = clean($_REQUEST["key"]);
|
||||||
|
|
Loading…
Reference in New Issue