Как сделать фильтры для Collection в админке MODX?
Используется компонент Collections для вывода списка ресурсов в админке (разбиение на категории).
Необходимо внутри коллекции добавить фильтрацию по ТВ параметрам ресурсов, т.е. там где в коллекции Поиск по ресурсам, фильтр «Опубликован/нет...», вот там нужен ещё фильтр по определённым, заранее подготовленным ТВ.
Как это можно сделать, есть какой-нибудь мануал? В инете не смог найти ничего.
Добавляете в /assets/components/collections/js/mgr/extra/collections.combo.js в collections.combo.FilterStatus store необходимые записи.
Дорабатываете процессор /core/components/collections/processors/mgr/resource/getlist.class.php, чтобы он мог фильтровать по TV в функции prepareQueryBeforeCount (в настройках коллекции включать невидимую колонку с этой TV, тогда будет она присоединяться сразу к запросу)
К сожалению смотрел, и там речь идёт об организации сортировки, а не фильтрации. И организовать сортировку которая может отфильтровать - невозможно, это всё таки разные вещи.
Тут уже даже интереснее как остальные решают этот вопрос, по опыту знаю что невозможно управлять десятками тысяч товаров например, без использования фильтрации. Вряд ли все делали магазинчики на 5-10 товаров, где в этом просто нет необходимости.
Я конечно понимаю что можно работать с поиском, но как быть тогда, если необходимо получить список товаров с пустым полем?) Что делать если два независимых друг от друга поля могут иметь одинаковые значения, а отфильтровать нужно только по одному?)
Евгений, Можно использовать сортировку по полю и поиск одновременно.
либо дописывать свои фильтры для Collection, хотя лучше использовать тогда Minishop2
Froggyweb, а если например нужно создать не интернет-магазин а портал, то тут Minishop2 не нужен!) Собственно ответ я нашел, конечно не самый удобный способ, но он есть.
Но это просто странно, что такую очевидную и необходимую функцию не включили в Collection, ведь даже в MIGX впихнули фильтрацию. А в MIGX она не особо и нужна. Это всё странно...
Кстати в Builder для OctoberCMS эта фича есть, правда всё равно ручками приходиться писать небольшой конфиг, но это в 100 раз проще чем в Collection реализовать.