]> git.wh0rd.org - tt-rss.git/blobdiff - classes/handler/public.php
generate_syndicated_feed: add support for virtual feeds provided by plugins
[tt-rss.git] / classes / handler / public.php
index e892a9797003c05302acac45cef2f17e62acb9d2..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]);
@@ -476,8 +496,6 @@ class Handler_Public extends Handler {
                                session_set_cookie_params(0);
                        }
 
-                       @session_start();
-
                        if (authenticate_user($login, $password)) {
                                $_POST["password"] = "";
 
@@ -501,7 +519,13 @@ class Handler_Public extends Handler {
                                        }
                                }
                        } else {
-                               $_SESSION["login_error_msg"] = __("Incorrect username or password");
+
+                               // start an empty session to deliver login error message
+                               @session_start();
+
+                               if (!isset($_SESSION["login_error_msg"]))
+                                       $_SESSION["login_error_msg"] = __("Incorrect username or password");
+
                                user_error("Failed login attempt for $login from {$_SERVER['REMOTE_ADDR']}", E_USER_WARNING);
                        }