summaryrefslogtreecommitdiff
path: root/classes
diff options
context:
space:
mode:
authorwn_ <invalid@email.com>2024-11-12 03:49:58 +0000
committerwn_ <invalid@email.com>2024-11-12 03:49:58 +0000
commit5a200755b8afd8e719214f19b51a38dc8870fe09 (patch)
tree08c0f14ca1880b64a0e32fdf0eebfebd1314f09e /classes
parentdca2ae60a1c7a7951ee769aefeb19c4576c57aa6 (diff)
Move 'IVirtualFeed' checks into 'PluginHost::get_feed_handler()'.
Diffstat (limited to 'classes')
-rw-r--r--classes/API.php4
-rw-r--r--classes/Feeds.php13
-rw-r--r--classes/Handler_Public.php3
-rw-r--r--classes/PluginHost.php13
4 files changed, 16 insertions, 17 deletions
diff --git a/classes/API.php b/classes/API.php
index d44a7eaea..826d1f333 100644
--- a/classes/API.php
+++ b/classes/API.php
@@ -693,9 +693,7 @@ class API extends Handler {
$handler = PluginHost::getInstance()->get_feed_handler($pfeed_id);
- if ($handler && implements_interface($handler, 'IVirtualFeed')) {
- /** @var Plugin&IVirtualFeed $handler */
-
+ if ($handler) {
$params = array(
"feed" => $feed_id,
"limit" => $limit,
diff --git a/classes/Feeds.php b/classes/Feeds.php
index 22f34f719..b4df690a7 100644
--- a/classes/Feeds.php
+++ b/classes/Feeds.php
@@ -106,9 +106,7 @@ class Feeds extends Handler_Protected {
$handler = PluginHost::getInstance()->get_feed_handler(
PluginHost::feed_to_pfeed_id($feed));
- if ($handler && implements_interface($handler, 'IVirtualFeed')) {
- /** @var Plugin&IVirtualFeed $handler */
-
+ if ($handler) {
$options = array(
"limit" => $limit,
"view_mode" => $view_mode,
@@ -936,15 +934,10 @@ class Feeds extends Handler_Protected {
if ($is_cat) {
return self::_get_cat_unread($n_feed, $owner_uid);
- } else if(is_numeric($feed) && $feed < PLUGIN_FEED_BASE_INDEX && $feed > LABEL_BASE_INDEX) { // virtual Feed
+ } else if (is_numeric($feed) && $feed < PLUGIN_FEED_BASE_INDEX && $feed > LABEL_BASE_INDEX) { // virtual Feed
$feed_id = PluginHost::feed_to_pfeed_id($feed);
$handler = PluginHost::getInstance()->get_feed_handler($feed_id);
- if (implements_interface($handler, 'IVirtualFeed')) {
- /** @var Plugin&IVirtualFeed $handler */
- return $handler->get_unread($feed_id);
- } else {
- return 0;
- }
+ return $handler ? $handler->get_unread($feed_id) : 0;
} else if ($n_feed == Feeds::FEED_RECENTLY_READ) {
return 0;
// tags
diff --git a/classes/Handler_Public.php b/classes/Handler_Public.php
index be4254783..518dcad05 100644
--- a/classes/Handler_Public.php
+++ b/classes/Handler_Public.php
@@ -53,8 +53,7 @@ class Handler_Public extends Handler {
$handler = $tmppluginhost->get_feed_handler(
PluginHost::feed_to_pfeed_id((int)$feed));
- if ($handler && implements_interface($handler, 'IVirtualFeed')) {
- /** @var Plugin&IVirtualFeed $handler */
+ if ($handler) {
$qfh_ret = $handler->get_headlines(PluginHost::feed_to_pfeed_id((int)$feed), $params);
} else {
user_error("Failed to find handler for plugin feed ID: $feed", E_USER_ERROR);
diff --git a/classes/PluginHost.php b/classes/PluginHost.php
index b54e48d4f..608355158 100644
--- a/classes/PluginHost.php
+++ b/classes/PluginHost.php
@@ -782,12 +782,21 @@ class PluginHost {
return $this->feeds[$cat_id] ?? [];
}
- // convert feed_id (e.g. -129) to pfeed_id first
+ /**
+ * convert feed_id (e.g. -129) to pfeed_id first
+ *
+ * @return (Plugin&IVirtualFeed)|null
+ */
function get_feed_handler(int $pfeed_id): ?Plugin {
foreach ($this->feeds as $cat) {
foreach ($cat as $feed) {
if ($feed['id'] == $pfeed_id) {
- return $feed['sender'];
+ if (implements_interface($feed['sender'], 'IVirtualFeed')) {
+ /** @var Plugin&IVirtualFeed $feed['sender'] */
+ return $feed['sender'];
+ } else {
+ return null;
+ }
}
}
}