Browse Source

generate_syndicated_feed: add support for virtual feeds provided by plugins

Andrew Dolgov 1 year ago
parent
commit
253dbd4856
1 changed files with 21 additions and 1 deletions
  1. 21 1
      classes/handler/public.php

+ 21 - 1
classes/handler/public.php

@@ -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]);