Пытаюсь скрестить Views и таксономию, то есть выводить термины из разных словарей разными видами. Столкнулся с тем, что фильтры не действуют и всё имеющиеся виды работают последовательно, не обращая внимания на принадлежность термина к тому или иному словарю. То есть есть словарь "Тэги", к терминам которого прилеплен вид "for_tags", где объявлен аргумент "Таксономия: ID термина" и проставлен фильтр "Taxonomy: Terms for Тэги". Адрес вывода вида - "taxonomy/term" .Так вот, фильтр не действует, и ВСЕ термины сайта во всех словарях выводятся этим видом.. При создании следующего вида,точно такого же, где вместо одного фильтра - другой, - начинает работать последний, причём опять же ДЛЯ ВСЕХ терминов во всех словарях. Что я делаю не так? Где копать? Пробовал ставить Адрес вывода вида - "taxonomy/term/$arg" - не помогло. Или это в принципе штатная работа и невозможно через views выводить таксономию так же, как например можно выводить категории при использовании модуля "Category". Может есть какой-то дополнительный модуль тогда, который решает эту проблему? Подскажите плиз, даже не предполагал, что будут такие проблемы, развратился с "Category"
Комментарии
Не понятно.
Сделай лучше скриншот своих views - понятней будет.
Скирншот можно сделать этой штукой - она проматывает станицу до конца.
где объявлен аргумент "Таксономия: ID термина" и проставлен фильтр "Taxonomy: Terms for Тэги"
Ниасилил... чему равен фильтр-то? Может лучше его заменить на фильтр по типу нод?
по моему, я правильно описал. В views есть стандартный вид - для ссылки taxonomy/term. Если его включить, то он применяется автоматом ко ВСЕМ терминам сайта. Мне же нужно создать несколько видов, каждый из которых будет применяться для терминов своего словаря, но не могу такого добиться. Пытаюсь решить это с помощью добавления фильтра, но не выходит - не фильтрует. Как это делается, подскажите....
Dimm Какой штукой? Ссылку видимо забыл поставить...
edhel
там есть фильтр, который выбирает ноды из определенного словаря, то есть "Taxonomy: Terms for Тэги" - Тэги - это название словаря. По типу нод - всё одно не фильтрует, да и не катит по типу - нужно чтобы выводил все данные из терминов, независимо от типов, притом у двух словарей - это табличный вид, а у третьего - списком, так что принципиально именно наличие разных видов, а не одного.
В чем проблема-то не пойму... Надо чтобы по адресу taxonomy/term выводились только ноды выбранных терминов, а выводятся все? ну хз... посмотрите что за SELECT генерится (cache_views вроде) и присутствует ли там вообще фильтр.
edhelНадо чтобы по адресу taxonomy/term выводились только ноды выбранных терминов
Надо чтобы выводились ноды терминов определенного словаря - и так для каждого из трёх словарей. А в итоге они срабатывают последовательно - то есть в итоге ВСЕ термины сайта выводятся через вид, который сделан последним
короче хз) делайте ручками модуль с хуком menu и собственным select-ом
неуже ли никто не привязывал вид к таксономии? Вот никогда не поверю...
Я привязывал конечно, только не надо было одновременно и фильтр и аргумент делать никогда... по типу бывало делал фильтр. Например, есть фоторепортажи различных категорий, делаем фильтр по типу=photoreport и аргумент по терминам.
Кстати sql-запрос, который делает view, можно посмотреть с помощью модуля devel. Вкладочка "dev queries" появляется у всех view.
Блин, проблема в том, что нужно более одного вида для таксономий - а так как ссылка то фактически одна - taxonomy/term - то работает только один из них. Как сделать ДВА вида для таксономий, неважно , какой там фильтр, это детали...
вроде должно работать с аргументами, но только один вид, как система догадается какой ей применять вид если ссылка одна?
kiev1 ок , я понимаю, как тогда решить данную вроде бы простую проблему? Привязать разные виды к разным словарям( к их терминам фактически)? КАК?
а разные адреса сделать почему нельзя???
сделать у одного вида несколько аргументов если надо
а разные адреса сделать почему нельзя???
По автомату каждомутермину ставится taxonomy/term/[nid] - а вид не реагирует на синонимы. Терминов может быть любое кол-во и постоянно добавляться - то есть это надо вручную при каждом добавлении термина менять его РЕАЛЬНЫЙ адрес - даже не знаю, чем это может грозить. Хочется просто какой то механизм, как в category - привязал вид к словар и ГОТОВО.
сделать у одного вида несколько аргументов если надо
А вот с этого места поподробнее, пожалуйста. Как сделать, чтобы этот вид с несколькими аргументами реагировал на стандартный адрес термина ?
один вид taxonomy/term с несколькими аргументами taxonomy/term/arg1/arg2/arg3 - а в самом виде обрабатывать аргументы как угодно и строить тот вывод какой нужно, хотя я не совсем понял что надо
хотя я не совсем понял что надо
я тоже ничё не могу понять что надо) и чем больше букавок, тем всё меньше и меньше понятно)
действительно, чем больше пишу, тем меньше понимаю,что в моих словах может быть непонятного. Опишу задачу полностью. Есть ТРИ словаря. В каждом из них РАЗНЫЕ типы данных, с разными полями. ВСЕ они должны выводиться в табличном виде. У ВСЕХ терминов адреса - taxonomy/term/$arg. Цель - написать для каждого словаря свой вид. Терминов ОЧЕНЬ много - по несколько сотен на словарь, для каждого словаря формируется облако. КАК сделать, чтобы при нажатии на стандартную ссылку( taxonomy/term/{любое число} ) выводился вид,который "привязан" к тому словарю, в котором этот термин находится, чтобы соответственно вывелись ноды этого термина в нужном виде.
Забить на стандартные ссылки taxonomy/term, удалив их с помощью хука link_alter (см. пример в модуле remover в моём блоге) и добавить с помощью хука link самому разные ссылки в зависимости от категории (products/$arg, photos/$arg и т.п.).
Другой вариант: в nodeXXX.tpl.php добавить для разных типов нод разные классы (<div class='<?=$node->type....?>) и сделать настройку вида с помощью css: .product {width: 33%; float: left; ...}
Используй модуль Taxonomy Redirect – позволяет направить разные словари на разные страницы (можно показывать разные словари в разных views)