Source of file ArticleFilterService.php
Size: 1,065 Bytes - Last Modified: 2021-12-23T10:51:18+00:00
/var/www/docs.ssmods.com/process/src/src/Services/ArticleFilterService.php
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 | <?php declare(strict_types=1); namespace TheWebmen\Articles\Services; use SilverStripe\ORM\DataList; use TheWebmen\Articles\Filters\TagFilter; use TheWebmen\Articles\Filters\ThemeFilter; use TheWebmen\Articles\Filters\TypeFilter; final class ArticleFilterService { /** * @var DataList */ private $articles; public function __construct(DataList $articles) { $this->articles = $articles; } public function applyThemesFilter(array $themes): void { $themeFilter = new ThemeFilter(); $this->articles = $themeFilter->apply($themes, $this->articles); } public function applyTagFilter(array $tags): void { $tagsFilter = new TagFilter(); $this->articles = $tagsFilter->apply($tags, $this->articles); } public function applyTypeFilter(array $types): void { $typeFilter = new TypeFilter(); $this->articles = $typeFilter->apply($types, $this->articles); } public function getArticles(): DataList { return $this->articles; } } |