From 4412b877d02c16c033a28fd2b9d9fafa9fd16214 Mon Sep 17 00:00:00 2001 From: Andrew Dolgov Date: Mon, 24 Dec 2012 14:13:03 +0400 Subject: [PATCH] implement HOOK_FEED_PARSED, add example plugin (refs #424) --- classes/pluginhost.php | 1 + include/rssfuncs.php | 5 ++++- plugins/example_feed/example_feed.php | 22 ++++++++++++++++++++++ 3 files changed, 27 insertions(+), 1 deletion(-) create mode 100644 plugins/example_feed/example_feed.php diff --git a/classes/pluginhost.php b/classes/pluginhost.php index 25569302b..e87f3a7e3 100644 --- a/classes/pluginhost.php +++ b/classes/pluginhost.php @@ -11,6 +11,7 @@ class PluginHost { const HOOK_PREFS_TAB = 3; const HOOK_PREFS_SECTION = 4; const HOOK_PREFS_TABS = 5; + const HOOK_FEED_PARSED = 6; function __construct($link) { $this->link = $link; diff --git a/include/rssfuncs.php b/include/rssfuncs.php index a28cb2063..817490a84 100644 --- a/include/rssfuncs.php +++ b/include/rssfuncs.php @@ -261,6 +261,9 @@ if (!$rss->error()) { + global $pluginhost; + $pluginhost->run_hooks($pluginhost::HOOK_FEED_PARSED, "hook_feed_parsed", $rss); + if ($debug_enabled) { _debug("update_rss_feed: processing feed data..."); } @@ -521,7 +524,6 @@ } // TODO: less memory-hungry implementation - global $pluginhost; if ($debug_enabled) { _debug("update_rss_feed: applying plugin filters.."); @@ -534,6 +536,7 @@ "tags" => $entry_tags, "author" => $entry_author); + global $pluginhost; foreach ($pluginhost->get_hooks($pluginhost::HOOK_ARTICLE_FILTER) as $plugin) { $article = $plugin->hook_article_filter($article); } diff --git a/plugins/example_feed/example_feed.php b/plugins/example_feed/example_feed.php new file mode 100644 index 000000000..26f392bd7 --- /dev/null +++ b/plugins/example_feed/example_feed.php @@ -0,0 +1,22 @@ +link = $host->get_link(); + $this->host = $host; + + $host->add_hook($host::HOOK_FEED_PARSED, $this); + } + + function hook_feed_parsed($feed) { + _debug("I'm a little feed short and stout, here's my title: " . $feed->get_title()); + _debug("... here's my link element: " . $feed->get_link()); + } +} +?>