Views - фильтрация по терминам (OR/AND) - проблема

Главные вкладки

Аватар пользователя Zigs Zigs 16 апреля 2012 в 22:40

Коллеги, можно ли как-то модифицировать Taxonomy term view, чтобы она выводила только те ноды, в которых указан определенный набор терминов?
Allow multiple values стоит...
Однако проблема в том, что независимо от того передаю я в фильтр параметр 1+2+4 или 1,2,3 в любом случае генерится запрос на выборку любого из указанных терминов. Мне же надо чтобы был AND, а не OR.

В настройках контекстного фильтра есть странная фраза для Allow Multiple Values:

If selected, users can enter multiple values in the form of 1+2+3. Due to the number of JOINs it would require, AND will be treated as OR with this filter.

Как бы написано, что из-за большого кол-ва джойнов, AND будет рассматриваться как OR.... Что за бред? Мне же нужен AND Smile

Что понимает, объясните, пожалуйста.

Комментарии

Аватар пользователя Zigs Zigs 17 апреля 2012 в 0:00

Ну это я понимаю, но это же не повод, чтобы AND становился OR-ом Smile

Мне надо фильтровать сразу по трем терминам, как тогда быть?

Аватар пользователя Zigs Zigs 17 апреля 2012 в 17:28

Граждане, неужели ни у кого не возникало подобной задачи? Или все как-то обходятся?

П.С. Уже второй день хожу по всем форумам, нигде нет ни одного нормального решения, везде какие-то корявые советы.

Аватар пользователя Xermit Xermit 18 апреля 2012 в 2:41

Не надо, на самом деле можно без аргументов обойтись совсем, по крайне мере, когда я исследовал этот вопрос у меня получилось обойтись исключительно фильтрами.
Таким образом я легко могу найти все товары, у которых указано оба термина таксономии, как из одного словаря так и из разных, а аргументы мне нужны были только лишь из-за того, что у меня параметры exposed фильтров передаются в виде чистых ссылок.
Тогда и проблем с ограничением на количество join-ов не будет, так как все условия фильтров уйдут в секцию where.

Аватар пользователя Semantics Semantics 18 апреля 2012 в 9:14

"Xermit" wrote:

Тогда и проблем с ограничением на количество join-ов не будет, так как все условия фильтров уйдут в секцию where.

Очень сомневаюсь.
Покажите запрос который будет фильтровать по трём терминам, условие AND, без джойнов

Аватар пользователя Xermit Xermit 18 апреля 2012 в 22:01

Да, вы правы, без join-ов не обошлось :(. Причем именно как вы описали, чем больше фильтров по терминам, тем во столько раз больше left join-ов будет использоваться для построения перекрестной таблицы.