| Server IP : 104.26.5.103 / Your IP : 216.73.216.4 Web Server : nginx/1.27.1 System : Linux in-5 5.15.0-143-generic #153-Ubuntu SMP Fri Jun 13 19:10:45 UTC 2025 x86_64 User : arabianexpress ( 1872) PHP Version : 8.0.30 Disable Function : exec,passthru,shell_exec,system,proc_open,popen,parse_ini_file,show_source MySQL : OFF | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /storage/v9321/leapdubai/public_html/wp-content/plugins/kirki/app/Services/ |
Upload File : |
<?php
namespace Kirki\App\Services;
use Kirki\App\Constants\PostStatus;
use Kirki\App\Constants\PostTypes;
use function Kirki\Framework\config;
defined('ABSPATH') || exit;
use Kirki\App\DTO\Media\MediaListFilterDTO;
use Kirki\App\Models\Media;
class MediaService
{
/**
* Paginate media items.
*
* @param MediaListFilterDTO $dto
* @return \Kirki\Framework\Database\Query\Paginator
*/
public function paginated(MediaListFilterDTO $dto)
{
$supported_media_types = config('media.supports');
$query = Media::query();
if (!empty($dto->category)) {
$categories = explode(',', $dto->category);
$mime_types = [];
foreach ($categories as $category) {
$category = trim($category);
if (isset($supported_media_types[$category])) {
$mime_types = array_merge($mime_types, $supported_media_types[$category]);
}
}
if (!empty($mime_types)) {
$query->where_in('post_mime_type', $mime_types);
}
}
if (!empty($dto->search)) {
$query->search($dto->search);
}
$query->order_by($dto->sort_by, $dto->sort_order);
return $query->with('meta')->paginate($dto->limit, $dto->page);
}
}