Класс: FilterFormService¶
Краткое содержание:¶
Сервис фильтрации списковых страниц админки (наследник логики TwigFilter).
Свойства¶
Нет публичных свойств.
Методы¶
- public getDefaultFilters()
- public getSort()
- public resolveListCount()
- public normalizeOrder()
- public buildLogsTableAjaxUrl()
- public parseRequestQuery()
- public parseRules()
- public buildCatalogViewModel()
- public buildChipViewModel()
- public createFilterChoices()
- public createRangeFilter()
- public createDateRangeFilter()
- public rulesToCriteria()
- private isRuleComplete()
- private enrichCatalogField()
- private findField()
- private formatRuleSummary()
- private appendMultiCriterion()
- private appendTextCriterion()
- private appendBetweenCriterion()
Подробности¶
- Путь:
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).