]> git.wh0rd.org Git - tt-rss.git/commitdiff
generate_syndicated_feed: add support for virtual feeds provided by plugins
authorAndrew Dolgov <noreply@fakecake.org>
Wed, 7 Nov 2018 11:21:39 +0000 (14:21 +0300)
committerAndrew Dolgov <noreply@fakecake.org>
Wed, 7 Nov 2018 11:21:39 +0000 (14:21 +0300)
classes/handler/public.php

index de9c9684a00336db2b37d1b8d4ddf967e8f01c5f..dbed3fee6f6b2e578a3f27b7713ba426914c4e2d 100755 (executable)
@@ -33,6 +33,7 @@ class Handler_Public extends Handler {
                        $date_sort_field = "updated DESC";
                        break;
                }
+
                $params = array(
                        "owner_uid" => $owner_uid,
                        "feed" => $feed,
@@ -47,7 +48,26 @@ class Handler_Public extends Handler {
                        "start_ts" => $start_ts
                );
 
-               $qfh_ret = Feeds::queryFeedHeadlines($params);
+               if (!$is_cat && is_numeric($feed) && $feed < PLUGIN_FEED_BASE_INDEX && $feed > LABEL_BASE_INDEX) {
+
+                       $user_plugins = get_pref("_ENABLED_PLUGINS", $owner_uid);
+
+                       $tmppluginhost = new PluginHost();
+                       $tmppluginhost->load(PLUGINS, PluginHost::KIND_ALL);
+                       $tmppluginhost->load($user_plugins, PluginHost::KIND_USER, $owner_uid);
+                       $tmppluginhost->load_data();
+
+                       $handler = $tmppluginhost->get_feed_handler(
+                               PluginHost::feed_to_pfeed_id($feed));
+
+                       if ($handler) {
+                               $qfh_ret = $handler->get_headlines(PluginHost::feed_to_pfeed_id($feed),
+                                       $options);
+                       }
+
+               } else {
+                       $qfh_ret = Feeds::queryFeedHeadlines($params);
+               }
 
                $result = $qfh_ret[0];
                $feed_title = htmlspecialchars($qfh_ret[1]);