PluginProbe ʕ •ᴥ•ʔ
Kirki – Freeform Page Builder, Website Builder & Customizer / 6.2.0
Kirki – Freeform Page Builder, Website Builder & Customizer v6.2.0
6.2.1 6.2.0 6.1.1 6.1.0 6.0.14 6.0.13 6.0.12 6.0.11 6.0.10 6.0.9 6.0.8 6.0.7 6.0.6 6.0.5 6.0.4 6.0.3 6.0.2 6.0.1 3.1.3 3.1.4 3.1.5 3.1.6 3.1.7 3.1.8 3.1.9 4.0.19 4.0.20 4.0.21 4.0.22 4.0.23 4.0.24 4.1 4.2.0 5.0.0 5.1.0 5.1.1 5.2.0 5.2.1 5.2.2 5.2.3 6.0.0 trunk 3.0.40 3.0.41 3.0.42 3.0.43 3.0.44 3.0.45 3.1.0 3.1.1 3.1.2
kirki / app / Services / MediaService.php
kirki / app / Services Last commit date
AppsService.php 2 weeks ago CollaborationCommentService.php 1 month ago CollaborationService.php 1 week ago CollectionItemService.php 1 month ago CollectionService.php 1 week ago ContentManagerTemplateBinder.php 1 week ago ContentManagerTemplateService.php 1 week ago EditorService.php 1 month ago FontService.php 2 weeks ago FormSubmissionService.php 1 week ago GlobalDataService.php 2 weeks ago MediaService.php 1 month ago PageService.php 1 week ago PageSettingsService.php 1 month ago PostService.php 1 week ago UtilityPageService.php 1 week ago
MediaService.php
53 lines
1 <?php
2
3 namespace Kirki\App\Services;
4
5 use Kirki\App\Constants\PostStatus;
6 use Kirki\App\Constants\PostTypes;
7 use function Kirki\Framework\config;
8
9 defined('ABSPATH') || exit;
10
11 use Kirki\App\DTO\Media\MediaListFilterDTO;
12 use Kirki\App\Models\Media;
13
14 class MediaService
15 {
16 /**
17 * Paginate media items.
18 *
19 * @param MediaListFilterDTO $dto
20 * @return \Kirki\Framework\Database\Query\Paginator
21 */
22 public function paginated(MediaListFilterDTO $dto)
23 {
24 $supported_media_types = config('media.supports');
25
26 $query = Media::query();
27
28 if (!empty($dto->category)) {
29 $categories = explode(',', $dto->category);
30 $mime_types = [];
31
32 foreach ($categories as $category) {
33 $category = trim($category);
34
35 if (isset($supported_media_types[$category])) {
36 $mime_types = array_merge($mime_types, $supported_media_types[$category]);
37 }
38 }
39
40 if (!empty($mime_types)) {
41 $query->where_in('post_mime_type', $mime_types);
42 }
43 }
44
45 if (!empty($dto->search)) {
46 $query->search($dto->search);
47 }
48
49 $query->order_by($dto->sort_by, $dto->sort_order);
50
51 return $query->with('meta')->paginate($dto->limit, $dto->page);
52 }
53 }