1
0
mirror of https://github.com/flarum/core.git synced 2025-10-13 07:54:25 +02:00

Use filterer for ListPostsController (#2479)

This commit is contained in:
Alexander Skvortsov
2021-02-28 14:06:07 -05:00
committed by GitHub
parent ea840ba594
commit 458a5cc6be
12 changed files with 483 additions and 107 deletions

View File

@@ -9,6 +9,8 @@
namespace Flarum\Filter;
use Flarum\Event\ConfigurePostsQuery;
use Flarum\Post\Filter\PostFilterer;
use Flarum\Search\ApplySearchParametersTrait;
use Flarum\Search\SearchCriteria;
use Flarum\Search\SearchResults;
@@ -68,6 +70,12 @@ abstract class AbstractFilterer
$this->applyOffset($filterState, $offset);
$this->applyLimit($filterState, $limit + 1);
// DEPRECATED BC LAYER, REMOVE BETA 17
if (static::class === PostFilterer::class) {
event(new ConfigurePostsQuery($query, $criteria->query));
}
// END DEPRECATED BC LAYER
foreach ($this->filterMutators as $mutator) {
$mutator($query, $actor, $criteria->query, $criteria->sort);
}

View File

@@ -9,15 +9,13 @@
namespace Flarum\Filter;
use Flarum\Discussion\Filter\AuthorFilterGambit;
use Flarum\Discussion\Filter\CreatedFilterGambit;
use Flarum\Discussion\Filter as DiscussionFilter;
use Flarum\Discussion\Filter\DiscussionFilterer;
use Flarum\Discussion\Filter\HiddenFilterGambit;
use Flarum\Discussion\Filter\UnreadFilterGambit;
use Flarum\Foundation\AbstractServiceProvider;
use Flarum\Foundation\ContainerUtil;
use Flarum\User\Filter\EmailFilterGambit;
use Flarum\User\Filter\GroupFilterGambit;
use Flarum\Post\Filter as PostFilter;
use Flarum\Post\Filter\PostFilterer;
use Flarum\User\Filter as UserFilter;
use Flarum\User\Filter\UserFilterer;
use Illuminate\Support\Arr;
@@ -33,15 +31,22 @@ class FilterServiceProvider extends AbstractServiceProvider
$this->app->singleton('flarum.filter.filters', function () {
return [
DiscussionFilterer::class => [
AuthorFilterGambit::class,
CreatedFilterGambit::class,
HiddenFilterGambit::class,
UnreadFilterGambit::class,
DiscussionFilter\AuthorFilterGambit::class,
DiscussionFilter\CreatedFilterGambit::class,
DiscussionFilter\HiddenFilterGambit::class,
DiscussionFilter\UnreadFilterGambit::class,
],
UserFilterer::class => [
EmailFilterGambit::class,
GroupFilterGambit::class,
]
UserFilter\EmailFilterGambit::class,
UserFilter\GroupFilterGambit::class,
],
PostFilterer::class => [
PostFilter\AuthorFilter::class,
PostFilter\DiscussionFilter::class,
PostFilter\IdFilter::class,
PostFilter\NumberFilter::class,
PostFilter\TypeFilter::class,
],
];
});