Taxonomy и views

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

Аватар пользователя jason32 jason32 27 сентября 2007 в 18:30

Пытаюсь скрестить Views и таксономию, то есть выводить термины из разных словарей разными видами. Столкнулся с тем, что фильтры не действуют и всё имеющиеся виды работают последовательно, не обращая внимания на принадлежность термина к тому или иному словарю. То есть есть словарь "Тэги", к терминам которого прилеплен вид "for_tags", где объявлен аргумент "Таксономия: ID термина" и проставлен фильтр "Taxonomy: Terms for Тэги". Адрес вывода вида - "taxonomy/term" .Так вот, фильтр не действует, и ВСЕ термины сайта во всех словарях выводятся этим видом.. При создании следующего вида,точно такого же, где вместо одного фильтра - другой, - начинает работать последний, причём опять же ДЛЯ ВСЕХ терминов во всех словарях. Что я делаю не так? Где копать? Пробовал ставить Адрес вывода вида - "taxonomy/term/$arg" - не помогло. Или это в принципе штатная работа и невозможно через views выводить таксономию так же, как например можно выводить категории при использовании модуля "Category". Может есть какой-то дополнительный модуль тогда, который решает эту проблему? Подскажите плиз, даже не предполагал, что будут такие проблемы, развратился с "Category"

Комментарии

Аватар пользователя Dimm Dimm 27 сентября 2007 в 19:21

Не понятно.
Сделай лучше скриншот своих views - понятней будет.
Скирншот можно сделать этой штукой - она проматывает станицу до конца.

Аватар пользователя edhel edhel 27 сентября 2007 в 20:21

где объявлен аргумент "Таксономия: ID термина" и проставлен фильтр "Taxonomy: Terms for Тэги"

Ниасилил... чему равен фильтр-то? Может лучше его заменить на фильтр по типу нод?

Аватар пользователя jason32 jason32 27 сентября 2007 в 20:24

по моему, я правильно описал. В views есть стандартный вид - для ссылки taxonomy/term. Если его включить, то он применяется автоматом ко ВСЕМ терминам сайта. Мне же нужно создать несколько видов, каждый из которых будет применяться для терминов своего словаря, но не могу такого добиться. Пытаюсь решить это с помощью добавления фильтра, но не выходит - не фильтрует. Как это делается, подскажите....
Dimm Какой штукой? Ссылку видимо забыл поставить...

Аватар пользователя jason32 jason32 27 сентября 2007 в 20:28

edhel
там есть фильтр, который выбирает ноды из определенного словаря, то есть "Taxonomy: Terms for Тэги" - Тэги - это название словаря. По типу нод - всё одно не фильтрует, да и не катит по типу - нужно чтобы выводил все данные из терминов, независимо от типов, притом у двух словарей - это табличный вид, а у третьего - списком, так что принципиально именно наличие разных видов, а не одного.

Аватар пользователя edhel edhel 27 сентября 2007 в 20:39

В чем проблема-то не пойму... Надо чтобы по адресу taxonomy/term выводились только ноды выбранных терминов, а выводятся все? ну хз... посмотрите что за SELECT генерится (cache_views вроде) и присутствует ли там вообще фильтр.

Аватар пользователя jason32 jason32 27 сентября 2007 в 21:19

edhelНадо чтобы по адресу taxonomy/term выводились только ноды выбранных терминов
Надо чтобы выводились ноды терминов определенного словаря - и так для каждого из трёх словарей. А в итоге они срабатывают последовательно - то есть в итоге ВСЕ термины сайта выводятся через вид, который сделан последним

Аватар пользователя edhel edhel 28 сентября 2007 в 22:52

Я привязывал конечно, только не надо было одновременно и фильтр и аргумент делать никогда... по типу бывало делал фильтр. Например, есть фоторепортажи различных категорий, делаем фильтр по типу=photoreport и аргумент по терминам.

Аватар пользователя edhel edhel 28 сентября 2007 в 13:41

Кстати sql-запрос, который делает view, можно посмотреть с помощью модуля devel. Вкладочка "dev queries" появляется у всех view.

Аватар пользователя jason32 jason32 28 сентября 2007 в 22:43

Блин, проблема в том, что нужно более одного вида для таксономий - а так как ссылка то фактически одна - taxonomy/term - то работает только один из них. Как сделать ДВА вида для таксономий, неважно , какой там фильтр, это детали...

Аватар пользователя kiev1 kiev1 28 сентября 2007 в 23:23

вроде должно работать с аргументами, но только один вид, как система догадается какой ей применять вид если ссылка одна?

Аватар пользователя jason32 jason32 29 сентября 2007 в 14:18

kiev1 ок , я понимаю, как тогда решить данную вроде бы простую проблему? Привязать разные виды к разным словарям( к их терминам фактически)? КАК?

Аватар пользователя jason32 jason32 30 сентября 2007 в 11:24

а разные адреса сделать почему нельзя???
По автомату каждомутермину ставится taxonomy/term/[nid] - а вид не реагирует на синонимы. Терминов может быть любое кол-во и постоянно добавляться - то есть это надо вручную при каждом добавлении термина менять его РЕАЛЬНЫЙ адрес - даже не знаю, чем это может грозить. Хочется просто какой то механизм, как в category - привязал вид к словар и ГОТОВО.
сделать у одного вида несколько аргументов если надо
А вот с этого места поподробнее, пожалуйста. Как сделать, чтобы этот вид с несколькими аргументами реагировал на стандартный адрес термина ?

Аватар пользователя kiev1 kiev1 30 сентября 2007 в 17:11

один вид taxonomy/term с несколькими аргументами taxonomy/term/arg1/arg2/arg3 - а в самом виде обрабатывать аргументы как угодно и строить тот вывод какой нужно, хотя я не совсем понял что надо

Аватар пользователя edhel edhel 30 сентября 2007 в 18:07

хотя я не совсем понял что надо

я тоже ничё не могу понять что надо) и чем больше букавок, тем всё меньше и меньше понятно)

Аватар пользователя jason32 jason32 1 октября 2007 в 3:14

действительно, чем больше пишу, тем меньше понимаю,что в моих словах может быть непонятного. Опишу задачу полностью. Есть ТРИ словаря. В каждом из них РАЗНЫЕ типы данных, с разными полями. ВСЕ они должны выводиться в табличном виде. У ВСЕХ терминов адреса - taxonomy/term/$arg. Цель - написать для каждого словаря свой вид. Терминов ОЧЕНЬ много - по несколько сотен на словарь, для каждого словаря формируется облако. КАК сделать, чтобы при нажатии на стандартную ссылку( taxonomy/term/{любое число} ) выводился вид,который "привязан" к тому словарю, в котором этот термин находится, чтобы соответственно вывелись ноды этого термина в нужном виде.

Аватар пользователя edhel edhel 1 октября 2007 в 5:05

Забить на стандартные ссылки taxonomy/term, удалив их с помощью хука link_alter (см. пример в модуле remover в моём блоге) и добавить с помощью хука link самому разные ссылки в зависимости от категории (products/$arg, photos/$arg и т.п.).

Аватар пользователя edhel edhel 1 октября 2007 в 5:09

Другой вариант: в nodeXXX.tpl.php добавить для разных типов нод разные классы (<div class='<?=$node->type....?>) и сделать настройку вида с помощью css: .product {width: 33%; float: left; ...}

Аватар пользователя Eugef Eugef 26 октября 2007 в 17:21

Используй модуль Taxonomy Redirect – позволяет направить разные словари на разные страницы (можно показывать разные словари в разных views)