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

Класс: FilterFormService

Краткое содержание:

Сервис фильтрации списковых страниц админки (наследник логики TwigFilter).


Свойства

Нет публичных свойств.


Методы


Подробности

  • Путь: devcraft/src/classes/Admin/FilterFormService.php

Детали

Методы

getDefaultFilters()

Возвращает карту стандартных PHP-фильтров для query-параметров админки.

С версии: 173.3.0

Возвращает: array<string, — int> Объединённые фильтры без null-значений.

getSort()

Преобразует строку направления сортировки в константу SelectQuery.

С версии: 173.3.0

Параметры: - $sort — Строка asc/desc.

Возвращает: string — SelectQuery::SORT_ASC или SelectQuery::SORT_DESC.

resolveListCount()

Определяет размер страницы списка из настроек DevCraft или DLE.

С версии: 200.4.0

Возвращает: int — Число записей на странице.

normalizeOrder()

Нормализует имя колонки сортировки по допустимым ключам схемы.

С версии: 200.4.0

Параметры: - $order — Запрошенная колонка. - $schema — Схема фильтра.

Возвращает: string — Валидная колонка или исходное значение.

buildLogsTableAjaxUrl()

Формирует URL Ajax-запроса таблицы журнала с параметрами фильтра.

С версии: 200.4.0

Параметры: - $userHash — CSRF-хеш пользователя DLE. - $order — Колонка сортировки. - $sort — Направление сортировки.

Возвращает: string — Полный URL ajax-контроллера.

parseRequestQuery()

Читает и санитизирует query-параметры текущего GET-запроса.

С версии: 173.3.4

Возвращает: array<string, — mixed> Нормализованные параметры запроса.

parseRules()

Разбирает массив filter_rules в список нормализованных правил.

С версии: 200.4.0

Возвращает: list<array<string, mixed>> — Завершённые правила фильтрации.

buildCatalogViewModel()

Строит view-model каталога полей фильтра с опциями из репозитория.

С версии: 200.4.0

Параметры: - $schema — Схема фильтра. - $repo — Репозиторий для динамических choices.

Возвращает: array{sections: list<array{title: string, fields: list<array<string, mixed>> — }>} Каталог секций.

buildChipViewModel()

Формирует view-model чипов активных правил фильтра.

С версии: 200.4.0

Параметры: - $schema — Схема фильтра.

Возвращает: list<array{index: int, field: string, label: string, summary: string} — > Чипы для UI.

createFilterChoices()

Создаёт список значений для multi-фильтра по distinct-колонке репозитория.

С версии: 200.4.0

Параметры: - $repo — Репозиторий с FilterableRepositoryInterface. - $name — Id поля (legacy-параметр). - $column — Имя SQL-колонки. - $schema — Схема фильтра.

Возвращает: array<string, — string> Карта value => label.

createRangeFilter()

Создаёт конфигурацию range-фильтра по границам колонки.

С версии: 200.4.0

Параметры: - $repo — Репозиторий данных. - $column — Имя SQL-колонки. - $label — Подпись фильтра. - $schema — Схема фильтра.

Возвращает: array<string, array<string, mixed>> — Конфигурация по ключу колонки.

createDateRangeFilter()

Создаёт конфигурацию daterange-фильтра по границам дат колонки.

С версии: 200.4.0

Параметры: - $repo — Репозиторий данных. - $column — Имя SQL-колонки. - $label — Подпись фильтра. - $schema — Схема фильтра.

Возвращает: array<string, array<string, mixed>> — Конфигурация по ключу колонки.

rulesToCriteria()

Преобразует UI-правила в критерии запроса репозитория.

С версии: 200.4.0

Параметры: - $schema — Схема фильтра.

Возвращает: list<array{column: string, op: string, value: mixed} — > Критерии where.

isRuleComplete()

Проверяет, содержит ли черновик правила все обязательные значения.

С версии: 200.4.0

Возвращает: bool — true, если правило можно применить.

enrichCatalogField()

Обогащает поле каталога данными choices или границ диапазона.

С версии: 200.4.0

Параметры: - $field — Поле схемы. - $repo — Репозиторий или null. - $schema — Схема фильтра.

Возвращает: array<string, — mixed> Данные поля для Twig.

findField()

Находит поле схемы по id.

С версии: 200.4.0

Параметры: - $schema — Схема фильтра. - $fieldId — Id поля.

Возвращает: FormField|null — Поле или null.

formatRuleSummary()

Формирует краткую текстовую сводку правила для чипа.

С версии: 200.4.0

Параметры: - $label — Подпись поля.

Возвращает: string — Текстовая сводка.

appendMultiCriterion()

Добавляет критерий IN для multi-правила.

С версии: 200.4.0

Параметры: - $column — SQL-колонка.

appendTextCriterion()

Добавляет критерий LIKE для text-правила.

С версии: 200.4.0

Параметры: - $column — SQL-колонка.

appendBetweenCriterion()

Добавляет критерий BETWEEN для range/daterange-правила.

С версии: 200.4.0

Параметры: - $column — SQL-колонка. - $type — Тип диапазона (range|daterange).