1
0
mirror of https://git.tt-rss.org/git/tt-rss.git synced 2026-02-10 16:01:33 +00:00

Changes to add a new hook: HOOK_QUERY_HEADLINES. An example is provided.

This commit is contained in:
justauser
2013-06-27 11:18:23 -04:00
parent b584460302
commit 891e36f57e
8 changed files with 101 additions and 25 deletions

View File

@@ -636,8 +636,13 @@ class API extends Handler {
$feed_title = $qfh_ret[1];
$headlines = array();
while ($line = db_fetch_assoc($result)) {
foreach (PluginHost::getInstance()->get_hooks(PluginHost::HOOK_QUERY_HEADLINES) as $p) {
$line = $p->hook_query_headlines($line, 100, true);
}
$is_updated = ($line["last_read"] == "" &&
($line["unread"] != "t" && $line["unread"] != "1"));
@@ -664,24 +669,27 @@ class API extends Handler {
$headline_row['attachments'] = get_article_enclosures(
$line['id']);
if ($show_excerpt) {
$excerpt = truncate_string(strip_tags($line["content_preview"]), 100);
if ($show_excerpt ){
if(isset($line["modified_preview"]))
$excerpt = strip_tags($line["content_preview"]);
else
$excerpt = truncate_string(strip_tags($line["content_preview"]), 100);
$headline_row["excerpt"] = $excerpt;
}
if ($show_content) {
if ($line["cached_content"] != "") {
$line["content_preview"] =& $line["cached_content"];
$line["content"] =& $line["cached_content"];
}
if ($sanitize_content) {
$headline_row["content"] = sanitize(
$line["content_preview"],
$line["content"],
sql_bool_to_bool($line['hide_images']),
false, $line["site_url"]);
} else {
$headline_row["content"] = $line["content_preview"];
$headline_row["content"] = $line["content"];
}
}
@@ -699,6 +707,7 @@ class API extends Handler {
$headline_row["always_display_attachments"] = sql_bool_to_bool($line["always_display_enclosures"]);
$headline_row["author"] = $line["author"];
$headline_row["score"] = (int)$line["score"];
foreach (PluginHost::getInstance()->get_hooks(PluginHost::HOOK_RENDER_ARTICLE_API) as $p) {

View File

@@ -288,6 +288,9 @@ class Feeds extends Handler_Protected {
$expand_cdm = get_pref('CDM_EXPANDED');
while ($line = $this->dbh->fetch_assoc($result)) {
foreach (PluginHost::getInstance()->get_hooks(PluginHost::HOOK_QUERY_HEADLINES) as $p) {
$line = $p->hook_query_headlines($line, 250);
}
$id = $line["id"];
$feed_id = $line["feed_id"];
$label_cache = $line["label_cache"];
@@ -360,9 +363,12 @@ class Feeds extends Handler_Protected {
$date_entered_fmt = T_sprintf("Imported at %s",
make_local_datetime($line["date_entered"], false));
if (get_pref('SHOW_CONTENT_PREVIEW')) {
$content_preview = truncate_string(strip_tags($line["content_preview"]),
250);
if (get_pref('SHOW_CONTENT_PREVIEW') ) {
if(isset($line["modified_preview"]))
$content_preview = strip_tags($line["content_preview"]);
else
$content_preview = truncate_string(strip_tags($line["content_preview"]),
250);
}
$score = $line["score"];
@@ -502,7 +508,7 @@ class Feeds extends Handler_Protected {
else
$tags = false;
$line["content"] = sanitize($line["content_preview"],
$line["content"] = sanitize($line["content"],
sql_bool_to_bool($line['hide_images']), false, $entry_site_url);
foreach (PluginHost::getInstance()->get_hooks(PluginHost::HOOK_RENDER_ARTICLE_CDM) as $p) {
@@ -575,7 +581,7 @@ class Feeds extends Handler_Protected {
$excerpt_hidden = "style=\"display : none\"";
$reply['content'] .= "<span $excerpt_hidden
id=\"CEXC-$id\" class=\"cdmExcerpt\"> - $content_preview</span>";
id=\"CEXC-$id\" class=\"cdmExcerpt\"> -" . $content_preview . "</span>";
$reply['content'] .= "</span>";
if (!get_pref('VFEED_GROUP_BY_FEED')) {

View File

@@ -87,14 +87,20 @@ class Handler_Public extends Handler {
$tpl->setVariable('SELF_URL', htmlspecialchars(get_self_url_prefix()), true);
while ($line = $this->dbh->fetch_assoc($result)) {
foreach (PluginHost::getInstance()->get_hooks(PluginHost::HOOK_QUERY_HEADLINES) as $p) {
$line = $p->hook_query_headlines($line);
}
$tpl->setVariable('ARTICLE_ID', htmlspecialchars($line['link']), true);
$tpl->setVariable('ARTICLE_LINK', htmlspecialchars($line['link']), true);
$tpl->setVariable('ARTICLE_TITLE', htmlspecialchars($line['title']), true);
$tpl->setVariable('ARTICLE_EXCERPT',
truncate_string(strip_tags($line["content_preview"]), 100, '...'), true);
if(isset($line["modified_preview"]))
$tpl->setVariable('ARTICLE_EXCERPT', strip_tags($line["content_preview"]), true);
else
$tpl->setVariable('ARTICLE_EXCERPT',
truncate_string(strip_tags($line["content_preview"]), 100, '...'), true);
$content = sanitize($line["content_preview"], false, $owner_uid);
$content = sanitize($line["content"], false, $owner_uid);
if ($line['note']) {
$content = "<div style=\"$note_style\">Article note: " . $line['note'] . "</div>" .
@@ -164,13 +170,19 @@ class Handler_Public extends Handler {
$feed['articles'] = array();
while ($line = $this->dbh->fetch_assoc($result)) {
foreach (PluginHost::getInstance()->get_hooks(PluginHost::HOOK_QUERY_HEADLINES) as $p) {
$line = $p->hook_query_headlines($line, 100);
}
$article = array();
$article['id'] = $line['link'];
$article['link'] = $line['link'];
$article['title'] = $line['title'];
$article['excerpt'] = truncate_string(strip_tags($line["content_preview"]), 100, '...');
$article['content'] = sanitize($line["content_preview"], false, $owner_uid);
if(isset($line["modified_preview"]))
$article['excerpt'] = strip_tags($line["content_preview"]);
else
$article['excerpt'] = truncate_string(strip_tags($line["content_preview"]), 100, '...');
$article['content'] = sanitize($line["content"], false, $owner_uid);
$article['updated'] = date('c', strtotime($line["updated"]));
if ($line['note']) $article['note'] = $line['note'];

View File

@@ -37,6 +37,7 @@ class PluginHost {
const HOOK_PREFS_EDIT_FEED = 20;
const HOOK_PREFS_SAVE_FEED = 21;
const HOOK_FETCH_FEED = 22;
const HOOK_QUERY_HEADLINES = 23;
const KIND_ALL = 1;
const KIND_SYSTEM = 2;

View File

@@ -97,12 +97,17 @@ class Pref_Filters extends Handler_Protected {
print "<table width=\"100%\" cellspacing=\"0\" id=\"prefErrorFeedList\">";
while ($line = $this->dbh->fetch_assoc($result)) {
foreach (PluginHost::getInstance()->get_hooks(PluginHost::HOOK_QUERY_HEADLINES) as $p) {
$line = $p->hook_query_headlines($line, 100);
}
$entry_timestamp = strtotime($line["updated"]);
$entry_tags = get_article_tags($line["id"], $_SESSION["uid"]);
$content_preview = truncate_string(
strip_tags($line["content_preview"]), 100, '...');
if(isset($line["modified_preview"]))
$content_preview = strip_tags($line["content_preview"]);
else
$content_preview = truncate_string(strip_tags($line["content_preview"]), 100, '...');
if ($line["feed_title"])
$feed_title = $line["feed_title"];