Перейти к содержанию

SortManager

Описание: Trait для добавления функциональности сортировки к фильтрам Этот trait предоставляет методы для управления параметрами сортировки при выполнении запросов к API Kinopoisk.dev. Может использоваться в классах фильтрации для расширения их функциональности.

С версии: 1.0.0

Версия: 1.0.0

removeSortByField()

Описание: Удаляет сортировку по указанному полю

Параметры:

  • $field (SortField): Поле для удаления из сортировки

toggleSort()

Описание: Переключает направление сортировки для указанного поля Если сортировка по полю существует, меняет направление на противоположное. Если сортировки нет, добавляет с направлением по умолчанию.

Параметры:

  • $field (SortField): Поле для переключения сортировки

sortBy()

Описание: Добавляет сортировку по указанному полю

Параметры:

  • $field (SortField): Поле для сортировки
  • $direction (SortDirection|null): Направление сортировки (по умолчанию используется рекомендуемое)

addSortCriteria()

Описание: Добавляет критерий сортировки Добавляет новый критерий сортировки к текущему набору. Если критерий для указанного поля уже существует, он будет заменен.

Параметры:

  • $criteria (SortCriteria): Критерий сортировки

hasSortBy()

Описание: Проверяет, установлена ли сортировка по указанному полю

Параметры:

  • $field (SortField): Поле для проверки

Возвращает: bool true, если сортировка по полю установлена, false в противном случае

getSortDirection()

Описание: Возвращает направление сортировки для указанного поля

Параметры:

  • $field (SortField): Поле для получения направления

Возвращает: SortDirection|null Направление сортировки или null, если сортировка не установлена

getSortCriteria()

Описание: Возвращает все критерии сортировки

Возвращает: SortCriteria[] Массив критериев сортировки

setSortCriteria()

Описание: Устанавливает множественные критерии сортировки Заменяет текущие критерии сортировки новым набором.

Параметры:

  • $criteria (SortCriteria[]): Массив критериев сортировки

clearSort()

Описание: Очищает все критерии сортировки

addMultipleSort()

Описание: Добавляет множественные критерии сортировки из массива строк

Параметры:

  • $sorts (array): Массив строк в формате "field:direction" или просто "field"

Пример:

PHP
1
2
3
4
5
$filter->addMultipleSort([
'rating.kp:desc',
'year:asc',
'name' // будет использовано направление по умолчанию
]);

getSortData()

Описание: Преобразует критерии сортировки в параметры для API Формирует строку сортировки в формате, ожидаемом API Kinopoisk.dev. Множественные критерии объединяются запятыми.

Возвращает: array|null Массив с данными о критериях сортировки или null, если критерии не установлены

getSortCount()

Описание: Возвращает количество установленных критериев сортировки

Возвращает: int Количество критериев сортировки

hasAnySorting()

Описание: Проверяет, установлены ли какие-либо критерии сортировки

Возвращает: bool true, если есть хотя бы один критерий сортировки, false в противном случае

getFirstSortCriteria()

Описание: Возвращает первый критерий сортировки

Возвращает: SortCriteria|null Первый критерий или null, если критерии отсутствуют

getLastSortCriteria()

Описание: Возвращает последний критерий сортировки

Возвращает: SortCriteria|null Последний критерий или null, если критерии отсутствуют

sortByImdbRating()

Описание: Сортировка по рейтингу IMDB (по убыванию)

sortByDesc()

Описание: Добавляет сортировку по убыванию

Параметры:

  • $field (SortField): Поле для сортировки

sortByYearOldFirst()

Описание: Сортировка по году выпуска (по возрастанию - сначала старые)

sortByAsc()

Описание: Добавляет сортировку по возрастанию

Параметры:

  • $field (SortField): Поле для сортировки

sortByName()

Описание: Сортировка по названию (по алфавиту)

sortByPopularity()

Описание: Сортировка по популярности (количество голосов Кинопоиска)

sortByCreated()

Описание: Сортировка по дате создания записи (сначала новые)

sortByUpdated()

Описание: Сортировка по дате обновления записи (сначала обновленные)

sortByBest()

Описание: Комбинированная сортировка по рейтингу и году Сначала по рейтингу Кинопоиска (по убыванию), затем по году (по убыванию).

sortByYear()

Описание: Сортировка по году выпуска (по убыванию - сначала новые)

sortByKinopoiskRating()

Описание: Сортировка по рейтингу Кинопоиска (по убыванию)

exportSortCriteria()

Описание: Экспорт критериев сортировки в массив для сериализации

Возвращает: array<array<string, string>> Массив с данными о критериях сортировки

importSortCriteria()

Описание: Импорт критериев сортировки из массива