Дано:
- Настроенные поля CCK, ограниченные списком допустимых значений.
- Из соображений производительности и удобства этот список оформлен в виде key|label, т.е. пользователю отображается label, а в саму базу заносится key. Например:
1|Красный
2|Жёлтый
3|Зелёный - Чтобы база весила меньше, все подобные поля выбора лучше делать типа integer (целочисленные).
Задача:
Добавить во вьюшку (View/Представление) расшаренный (exposed) фильтр, позволяющий пользователям отображать материалы в зависимости от значения поля.
По умолчанию фильтр Views выглядит как текстовое поле а-ля "значение больше", "значение равно"...
Решение
При создании фильтра надо всего лишь вместо "Содержимое: <поле>" выбрать "Содержимое: <поле> - Допустимые значения".
Дополнительно, можно сделать интерфейс фильтра ещё более дружелюбным, воспользовавшись модулем Better Exposed Filter - он позволяет заменить дефолтный блок выбора/дропдаун на галки/радиокнопки.
Огромное спасибо Kail@drupal.org за то, что не проигнорировал этот, как оказалось, простой вопрос - а указал на ошибку.
Комментарии
У меня в списке фильтров есть фильтры вида "Cодержимое: ... - Allowed values". В таком фильтре корректно подгружаются любые данные из полей-списков или ограниченных списком значений, правда, к сожалению, нету операторов "между", "менее, чем" и подобных.
Ещё есть разрабатываемый Views Filter Pack, не использовал, но можно посмотреть.
Спасибо огромное.
Похоже, не там копал. Я как запутался с непонятным "Cодержимое: ... - delta", так потом сразу проскакивал эту фазу, выбирая первый из предложенных вариантов.
А про Views Filter Pack - я про него тоже читал, но раз мне это надо для рабочего сайта - dev версии неприемлемы. Поэтому и остановился на Better Exposed Filter - он хотя бы бета.