]> git.wh0rd.org Git - tt-rss.git/commitdiff
implement HOOK_FEED_PARSED, add example plugin (refs #424)
authorAndrew Dolgov <fox@madoka.volgo-balt.ru>
Mon, 24 Dec 2012 10:13:03 +0000 (14:13 +0400)
committerAndrew Dolgov <fox@madoka.volgo-balt.ru>
Mon, 24 Dec 2012 10:13:03 +0000 (14:13 +0400)
classes/pluginhost.php
include/rssfuncs.php
plugins/example_feed/example_feed.php [new file with mode: 0644]

index 25569302b672fc07377d98c555de249fdc1da598..e87f3a7e35d461a04bb08cd008c60509705f4e1b 100644 (file)
@@ -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;
index a28cb2063077d744d5d62d558790dcde9ef17591..817490a84ba99b96387366198946b44c6f174d2d 100644 (file)
 
                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...");
                        }
                                }
 
                                // TODO: less memory-hungry implementation
-                               global $pluginhost;
 
                                if ($debug_enabled) {
                                        _debug("update_rss_feed: applying plugin filters..");
                                        "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 (file)
index 0000000..26f392b
--- /dev/null
@@ -0,0 +1,22 @@
+<?php
+class Example_Feed extends Plugin {
+
+       // Demonstrates how to query data from the parsed feed object (SimplePie)
+       // don't enable unless debugging feed through f D hotkey or manually.
+
+       private $link;
+       private $host;
+
+       function __construct($host) {
+               $this->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());
+       }
+}
+?>