implement article render hooks

This commit is contained in:
Andrew Dolgov 2013-02-23 16:01:51 +04:00
parent e02555c1b8
commit 84d952f141
3 changed files with 31 additions and 25 deletions

View File

@ -494,6 +494,16 @@ class Feeds extends Handler_Protected {
} else {
$line["tags"] = get_article_tags($this->link, $id, $_SESSION["uid"], $line["tag_cache"]);
unset($line["tag_cache"]);
$line["content"] = sanitize($this->link, $line["content_preview"],
false, false, $feed_site_url);
foreach ($pluginhost->get_hooks($pluginhost::HOOK_RENDER_ARTICLE_CDM) as $p) {
$line = $p->hook_render_article_cdm($line);
}
if (get_pref($this->link, 'VFEED_GROUP_BY_FEED') && $line["feed_title"]) {
if ($feed_id != $vgroup_last_feed) {
@ -627,9 +637,6 @@ class Feeds extends Handler_Protected {
$line["content_preview"] =& $line["cached_content"];
}
$article_content = sanitize($this->link, $line["content_preview"],
false, false, $feed_site_url);
$reply['content'] .= "<div id=\"POSTNOTE-$id\">";
if ($line['note']) {
$reply['content'] .= format_article_note($id, $line['note']);
@ -637,7 +644,7 @@ class Feeds extends Handler_Protected {
$reply['content'] .= "</div>";
$reply['content'] .= "<span id=\"CWRAP-$id\">";
$reply['content'] .= $article_content;
$reply['content'] .= $line["content"];
$reply['content'] .= "</span>";
/* $tmp_result = db_query($this->link, "SELECT always_display_enclosures FROM
@ -651,17 +658,13 @@ class Feeds extends Handler_Protected {
$always_display_enclosures = sql_bool_to_bool($line["always_display_enclosures"]);
$reply['content'] .= format_article_enclosures($this->link, $id, $always_display_enclosures,
$article_content);
$line["content"]);
$reply['content'] .= "</div>";
$reply['content'] .= "<div class=\"cdmFooter\">";
$tag_cache = $line["tag_cache"];
$tags_str = format_tags_string(
get_article_tags($this->link, $id, $_SESSION["uid"], $tag_cache),
$id);
$tags_str = format_tags_string($tags, $id);
$reply['content'] .= "<img src='".theme_image($this->link,
'images/tag.png')."' alt='Tags' title='Tags'>

View File

@ -17,6 +17,8 @@ class PluginHost {
const HOOK_UPDATE_TASK = 7;
const HOOK_AUTH_USER = 8;
const HOOK_HOTKEY_MAP = 9;
const HOOK_RENDER_ARTICLE = 10;
const HOOK_RENDER_ARTICLE_CDM = 11;
const KIND_ALL = 1;
const KIND_SYSTEM = 2;

View File

@ -2871,7 +2871,18 @@
$line = db_fetch_assoc($result);
$feed_site_url = $line['site_url'];
$tag_cache = $line["tag_cache"];
$line["tags"] = get_article_tags($link, $id, $owner_uid, $line["tag_cache"]);
unset($line["tag_cache"]);
$line["content"] = sanitize($link, $line["content"], false, $owner_uid, $line["site_url"]);
global $pluginhost;
foreach ($pluginhost->get_hooks($pluginhost::HOOK_RENDER_ARTICLE) as $p) {
$line = $p->hook_render_article($line);
}
$num_comments = $line["num_comments"];
$entry_comments = "";
@ -2929,15 +2940,8 @@
$rv['content'] .= "<div class='postTitle'>" . $line["title"] . "$entry_author</div>";
}
$tag_cache = $line["tag_cache"];
if (!$tag_cache)
$tags = get_article_tags($link, $id, $owner_uid);
else
$tags = explode(",", $tag_cache);
$tags_str = format_tags_string($tags, $id);
$tags_str_full = join(", ", $tags);
$tags_str = format_tags_string($line["tags"], $id);
$tags_str_full = join(", ", $line["tags"]);
if (!$tags_str_full) $tags_str_full = __("no tags");
@ -3036,13 +3040,10 @@
$line["content"] =& $line["cached_content"];
}
$article_content = sanitize($link, $line["content"], false, $owner_uid,
$feed_site_url);
$rv['content'] .= $article_content;
$rv['content'] .= $line["content"];
$rv['content'] .= format_article_enclosures($link, $id,
$always_display_enclosures, $article_content);
$always_display_enclosures, $line["content"]);
$rv['content'] .= "</div>";