diff options
Diffstat (limited to 'app/Controllers')
| -rw-r--r-- | app/Controllers/categoryController.php | 2 | ||||
| -rw-r--r-- | app/Controllers/configureController.php | 4 | ||||
| -rw-r--r-- | app/Controllers/indexController.php | 2 | ||||
| -rw-r--r-- | app/Controllers/subscriptionController.php | 17 |
4 files changed, 15 insertions, 10 deletions
diff --git a/app/Controllers/categoryController.php b/app/Controllers/categoryController.php index fd148bf05..9bea88a1f 100644 --- a/app/Controllers/categoryController.php +++ b/app/Controllers/categoryController.php @@ -110,7 +110,7 @@ class FreshRSS_category_Controller extends FreshRSS_ActionController { $category->_attribute('read_when_same_title_in_category', null); } - $category->_filtersAction('read', Minz_Request::paramTextToArray('filteractions_read')); // Keep as HTML + $category->_filtersAction('read', Minz_Request::paramTextToArray('filteractions_read', plaintext: true)); if (Minz_Request::paramBoolean('use_default_purge_options')) { $category->_attribute('archiving', null); diff --git a/app/Controllers/configureController.php b/app/Controllers/configureController.php index 8bc0d08c4..8b42a1441 100644 --- a/app/Controllers/configureController.php +++ b/app/Controllers/configureController.php @@ -164,8 +164,8 @@ class FreshRSS_configure_Controller extends FreshRSS_ActionController { 'site' => Minz_Request::paramBoolean('mark_open_site'), 'focus' => Minz_Request::paramBoolean('mark_focus'), ]; - FreshRSS_Context::userConf()->_filtersAction('read', Minz_Request::paramTextToArray('filteractions_read')); // Keep as HTML - FreshRSS_Context::userConf()->_filtersAction('star', Minz_Request::paramTextToArray('filteractions_star')); // Keep as HTML + FreshRSS_Context::userConf()->_filtersAction('read', Minz_Request::paramTextToArray('filteractions_read', plaintext: true)); + FreshRSS_Context::userConf()->_filtersAction('star', Minz_Request::paramTextToArray('filteractions_star', plaintext: true)); FreshRSS_Context::userConf()->save(); invalidateHttpCache(); diff --git a/app/Controllers/indexController.php b/app/Controllers/indexController.php index c51dd6662..7def8e781 100644 --- a/app/Controllers/indexController.php +++ b/app/Controllers/indexController.php @@ -94,7 +94,7 @@ class FreshRSS_index_Controller extends FreshRSS_ActionController { }; $searchString = $operator . ':' . ($offset < 0 ? '/' : '') . date('Y-m-d', $timestamp + ($offset * 86400)) . ($offset > 0 ? '/' : ''); return Minz_Url::display(Minz_Request::modifiedCurrentRequest([ - 'search' => FreshRSS_Context::$search->getRawInput() === '' ? $searchString : + 'search' => FreshRSS_Context::$search->__toString() === '' ? $searchString : FreshRSS_Context::$search->enforce(new FreshRSS_Search($searchString))->__toString(), ])); } diff --git a/app/Controllers/subscriptionController.php b/app/Controllers/subscriptionController.php index ad9b05787..02942583f 100644 --- a/app/Controllers/subscriptionController.php +++ b/app/Controllers/subscriptionController.php @@ -247,7 +247,7 @@ class FreshRSS_subscription_Controller extends FreshRSS_ActionController { ]); } - $feed->_filtersAction('read', Minz_Request::paramTextToArray('filteractions_read')); // Keep as HTML + $feed->_filtersAction('read', Minz_Request::paramTextToArray('filteractions_read', plaintext: true)); $feed->_kind(Minz_Request::paramInt('feed_kind') ?: FreshRSS_Feed::KIND_RSS); if ($feed->kind() === FreshRSS_Feed::KIND_HTML_XPATH || $feed->kind() === FreshRSS_Feed::KIND_XML_XPATH) { @@ -418,17 +418,22 @@ class FreshRSS_subscription_Controller extends FreshRSS_ActionController { $filteractions = Minz_Request::paramTextToArray('filteractions_read', plaintext: true); $filteractions = array_map(fn(string $action): string => trim($action), $filteractions); $filteractions = array_filter($filteractions, fn(string $action): bool => $action !== ''); - $search = "f:$id ("; + $actionsSearch = new FreshRSS_BooleanSearch('', operator: 'AND'); foreach ($filteractions as $action) { - $search .= "($action) OR "; + $actionSearch = new FreshRSS_BooleanSearch($action, operator: 'OR'); + if ($actionSearch->__toString() === '') { + continue; + } + $actionsSearch->add($actionSearch); } - $search = preg_replace('/ OR $/', '', $search); - $search .= ')'; + $search = new FreshRSS_BooleanSearch(''); + $search->add(new FreshRSS_Search("f:$id")); + $search->add($actionsSearch); Minz_Request::forward([ 'c' => 'index', 'a' => 'index', 'params' => [ - 'search' => $search, + 'search' => $search->__toString(), ], ], redirect: true); } |
