summaryrefslogtreecommitdiff
path: root/classes/feeds.php
diff options
context:
space:
mode:
authorAndrew Dolgov <[email protected]>2021-02-08 22:46:01 +0300
committerAndrew Dolgov <[email protected]>2021-02-08 22:46:01 +0300
commit345dbb35217c36b258520dbf815133613c339a72 (patch)
treed7012f37c3e63531776349bdb4502fa9a3d9241b /classes/feeds.php
parent6c8ccd2acca72f4fe0c2cd0c27329150bbf96a30 (diff)
rewrite some more hooks
Diffstat (limited to 'classes/feeds.php')
-rwxr-xr-xclasses/feeds.php46
1 files changed, 29 insertions, 17 deletions
diff --git a/classes/feeds.php b/classes/feeds.php
index 194a41c98..2ad4c541f 100755
--- a/classes/feeds.php
+++ b/classes/feeds.php
@@ -874,13 +874,17 @@ class Feeds extends Handler_Protected {
if (is_array($search) && $search[0]) {
$search_qpart = "";
- foreach (PluginHost::getInstance()->get_hooks(PluginHost::HOOK_SEARCH) as $plugin) {
- list($search_qpart, $search_words) = $plugin->hook_search($search[0]);
- break;
- }
+ PluginHost::getInstance()->chain_hooks_callback(PluginHost::HOOK_SEARCH,
+ function ($result) use (&$search_qpart, &$search_words) {
+ if (!empty($result)) {
+ list($search_qpart, $search_words) = $result;
+ return true;
+ }
+ },
+ $search[0]);
// fall back in case of no plugins
- if (!$search_qpart) {
+ if (empty($search_qpart)) {
list($search_qpart, $search_words) = self::search_to_sql($search[0], $search[1], $owner_uid);
}
} else {
@@ -1160,11 +1164,13 @@ class Feeds extends Handler_Protected {
$contents = @UrlHelper::fetch($url, false, $auth_login, $auth_pass);
- foreach (PluginHost::getInstance()->get_hooks(PluginHost::HOOK_SUBSCRIBE_FEED) as $plugin) {
- $contents = $plugin->hook_subscribe_feed($contents, $url, $auth_login, $auth_pass);
- }
+ PluginHost::getInstance()->chain_hooks_callback(PluginHost::HOOK_SUBSCRIBE_FEED,
+ function ($result) use (&$contents) {
+ $contents = $result;
+ },
+ $contents, $url, $auth_login, $auth_pass);
- if (!$contents) {
+ if (empty($contents)) {
if (preg_match("/cloudflare\.com/", $fetch_last_error_content)) {
$fetch_last_error .= " (feed behind Cloudflare)";
}
@@ -1473,10 +1479,14 @@ class Feeds extends Handler_Protected {
if ($search) {
$search_query_part = "";
- foreach (PluginHost::getInstance()->get_hooks(PluginHost::HOOK_SEARCH) as $plugin) {
- list($search_query_part, $search_words) = $plugin->hook_search($search);
- break;
- }
+ PluginHost::getInstance()->chain_hooks_callback(PluginHost::HOOK_SEARCH,
+ function ($result) use (&$search_query_part, &$search_words) {
+ if (!empty($result)) {
+ list($search_query_part, $search_words) = $result;
+ return true;
+ }
+ },
+ $search);
// fall back in case of no plugins
if (!$search_query_part) {
@@ -2347,11 +2357,13 @@ class Feeds extends Handler_Protected {
$query = "";
$skip_first_id = false;
- foreach (PluginHost::getInstance()->get_hooks(PluginHost::HOOK_HEADLINES_CUSTOM_SORT_OVERRIDE) as $p) {
- list ($query, $skip_first_id) = $p->hook_headlines_custom_sort_override($order);
+ PluginHost::getInstance()->chain_hooks_callback(PluginHost::HOOK_HEADLINES_CUSTOM_SORT_OVERRIDE,
+ function ($result) use (&$query, &$skip_first_id) {
+ list ($query, $skip_first_id) = $result;
+ },
+ $order);
- if ($query) return [$query, $skip_first_id];
- }
+ if ($query) return [$query, $skip_first_id];
switch ($order) {
case "title":