Связать во Views два словаря таксономии

Аватар пользователя inspire inspire 10 сентября 2012 в 16:45

Всем привет и заранее спасибо за внимание.
Есть два словаря таксономии: Менеджеры и Категории
При создании ноды указывается к какой категории она относится и к какому менеджеру.
На странице "Контакты" (представляет из себя вьюс) выводится таблица с контактными данными менеджеров.
Я хочу: добавить во вьюс "Контакты" в контактам менеджера 2-3 ссылки на категории, к нодам которых данный менеджер имеет большинство привязок.

Например,
Есть менеджер Иван Пупкин.
Есть категория "Продукты" -> "Овощи", "Продукты" -> "Ягоды", "Продукты" -> "Фрукты"
Есть ноды "Арбуз" (ягоды), "Вишня" (ягоды), "Помидоры" (овощи), "Бананы" (фрукты), "Апельсины" (фрукты), "Яблоки" (фрукты)
В каждой ноде есть и определены поля field_manager и field_main_cat

На странице контактов я хочу выдать следующее:
Менеджер: Иван Пупкин
Телефон: 555-55-55
email: ipupkin@microsoft.com
Ведущие направления: Фрукты, Ягоды, Овощи

Названия категорий кликабельны.

Куда копать?

Комментарии

Аватар пользователя Chyvakoff Chyvakoff 10 сентября 2012 в 17:43

А менеджер у вас - это получается термин таксономии?

Можно посмотреть в сторону node refernce

Аватар пользователя AI AI 11 сентября 2012 в 8:27

Отношения и аргументы...
1. Аргументами можно сделать проверку на принадлежность ноды определенному типу материала, если потребуется вывод на странице "ягоды" всех ваших менеджеров, которые занимаются ягодами.
2. Отношения позволят подтянуть все термины таксономии, свойственные нодам, и покопаться в них.

Вьюха перебирает ноды (суть передставления: пройти по всем записям таблицы, в данном случае по всем нодам). Аргументами можно получить номера нод, если эти ноды разных типов, и уникально идентифицировать ноды. Если ноды одного типа, то аргументы в принципе не нужны, но тут по месту и контексту задачи смотреть надо. Отношениями можно забрать данные из ноды по полям field_manager и field_main_cat и подтянуть из них сущности, необходимые для работы вьюхи. После чего вы получите внутри вьюхи те данные, которые ранее не были доступны. Например, термины из категории "Продукты", свойственные "менеджеру". Или "менеджеров" из "овощей".

Структура Ваших сущностей, а так же взаимоотношения между ними мне до конца не ясны, но кажутся не очень правильными. Я бы попробовал упростить, хотя применительно к Вашей задаче простое решение, возможно, уже реализуется Вами.

Чуть ранее я ломал голову с отношениями... Есть страница с клиентом. Клиент принадлежит организации (например, Школа принадлежит Управлению Образования). Организация = термин в словаре. В ноде с клиентом поле с сылкой на термин из словаря. Каждый термин содержит cck-поле с контактными данными (например, главный сисадмин, который знает всё про все Школы). При просмотре любой страницы с клиентом в блок выводил контактную информацию по организации. Работают отношения и аргументы.

Аватар пользователя inspire inspire 11 сентября 2012 в 9:16

Благодарю за ответы!

"Chyvakoff" wrote:
А менеджер у вас - это получается термин таксономии?

Да.
AI, большое спасибо за развернутый ответ. Надо обдумать эту мысль.

Аватар пользователя inspire inspire 11 сентября 2012 в 11:01

Спасибо за подсказку! Да, действительно, данная задача вполне решается отношениями. Сейчас вот не могу сообразить как сгруппировать данные. Поясню лучше на примере.

Сейчас данные выводятся в таблицу вида:

term_name | term_description | field_main_cat

Ну, term_name здесь - имя менеджера, term_description - описание (конаткты и пр.), field_main_cat - то самое поле, которое я подтащил через relations.
Но, если менеджер засветился в нескольких разных категориях продуктов, то для него выводятся несколько строк:

Иван Пупкин | Телефон: 555-55-55 | Фрукты
Иван Пупкин | Телефон: 555-55-55 | Ягоды
Иван Пупкин | Телефон: 555-55-55 | Овощи

А мне бы хотелось такой вывод:

Иван Пупкин | Телефон: 555-55-55 | Фрукты, Ягоды, Овощи

Ну или во вторую колонку запихать:

Иван Пупкин | Телефон: 555-55-55, Направления: Фрукты, Ягоды, Овощи

Аватар пользователя ll ll 12 сентября 2012 в 10:46

Здравствуйте. у меня похожая ситуация, но с нюансами, может подскажете. Нужно чтобы информация об организации бралась из профиля который заполняет сам пользователь. Есть город (из профиля), в нем организация (из профиля) и услуги этой организации (ССК) которые тоже вносит сам пользователь. Организация и ее услуги должны автоматически появляться в том городе, который указан в его профиле. Понимаю что это должна быть таксономия городов, но непонимаю как связать город, профиль и услуги в данном случае
Может подскажете в каком направлении искать решение ?

Аватар пользователя ll ll 12 сентября 2012 в 10:59

inspire, при выводе содержимого во вьюсе есть галка
-Группировать множественные значения
В этом случае не будут дублироваться данные но выведутся все равно в столбик

Иван Пупкин
Телефон: 555-55-55
Фрукты
Ягоды
Овощи

Аватар пользователя iNFerNo iNFerNo 12 сентября 2012 в 12:12

в д7 и виевс 3 вроде через запятую все значения полей выводятся если галка стоит множественое значение и сепаратор можно выбрать.

Аватар пользователя inspire inspire 12 сентября 2012 в 12:18

"iNFerNo" wrote:
если галка стоит множественое значение

Дык, а где она ставится, не подскажете? Я вроде все облазил...

Аватар пользователя iNFerNo iNFerNo 12 сентября 2012 в 13:59

в настройке поля вроде как. может быть для терминов это не распространяется...

Аватар пользователя iNFerNo iNFerNo 12 сентября 2012 в 14:01

у меня в настройках поля появляется такое

Multiple field settings
Display all values in the same row
If checked, multiple values for this field will be shown in the same row. If not checked, each value in this field will create a new row. If using group by, please make sure to group by "Entity
ID" for this setting to have any effect.

Display type
Unordered list
Ordered list
Simple separator

Аватар пользователя iNFerNo iNFerNo 12 сентября 2012 в 15:36

я терминами не юзаю. поэтому подсказать не могу. видимо не для терминов

Аватар пользователя inspire inspire 12 сентября 2012 в 17:12

Хм, да у меня и для "Содержимого" таких полей нет... Может это с каким-то модулем добавляется?