Повторяющиеся термины таксономии

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

Аватар пользователя pr0fessor pr0fessor 30 октября 2011 в 14:55

Всем привет! Имею родительские термины и подтермины:
Ситроен
- подвеска
- ходовая
- кузов
Форд
- подвеска
- ходовая
- кузов
Опель
- подвеска
- ходовая
- кузов

И имею два вопроса:
1. Возможно ли создать подтермины "подвеска, ходовая, кузов" всего лишь 1 раз, и как-то их привязать к каждому новому родительскому термину текущего словаря? Т.к. число подтерминов больше раза в 2-3 и каждый раз создавая новую марку (и модель) автомобиля уж очень утомительно это делать. Да и в целом администрирование бы сайта упростилось бы.
2. Если решить первый вопрос совсем никак, то, возможно ли "копировать" все подтермины из одно родителя и "вставить" в новый родитель?

Может кто сталкивался с подобным? Подскажите куда копать?

Комментарии

Аватар пользователя pr0fessor pr0fessor 30 октября 2011 в 19:27

Думал на эту тему, но тогда стоит вопрос как их потом привязать?
На главной странице с помощью Views планирую вывести каталог в две колонки
Ситроен
- подвеска
- ходовая
- кузов
Форд
- подвеска
- ходовая
- кузов

Если ЮЗЕР нажмет по "Подвеска" из раздела СИТРОЕН, то ему ведь будет показаны все запчасти по подвеске для всех авто? А нужно только для Ситроен. Или может какой-то модуль дополнительно нужно поставить? Или это можно с помощью Views все настроить?

Аватар пользователя pr0fessor pr0fessor 30 октября 2011 в 20:57

"Darteg" wrote:
Можно по нескольким терминам фильтровать.

ОК! А а это можно делать за счет Views (с аргументами поработать) или чего-то другого?

Аватар пользователя sanita sanita 30 октября 2011 в 22:32

Через вьюс не можно, а нужно. А вы прям вот так и хотите вывести?

pr0fessor wrote:

- подвеска
- ходовая
- кузов
Форд
- подвеска
- ходовая
- кузов
Опель
- подвеска
- ходовая
- кузов

Думаю, надо делать выборку по определенным терминам (аргументы) и группировать по полю "all term", который ограничен определенным словарем. Или то, что Darteg посоветовал.

Аватар пользователя Advin Advin 31 октября 2011 в 16:51

Чуть раньше (часов на 6) задался тем же вопросом, коль скоро там никто не ответил, перейду сюда Smile

Решением Вашего первого вопроса может стать модуль Hierarchical Select, там можно нескольких родителей установить в настройках термина.

А вот как сделать фильтрацию во views – непонятно как заставить учитывать родительский термин при выборе дочернего в фильтре.

Аватар пользователя Orion76 Orion76 31 октября 2011 в 17:28

"Advin" wrote:
А вот как сделать фильтрацию во views – непонятно как заставить учитывать родительский термин при выборе дочернего в фильтре.

Проще не смешивать различные сущности в одном словаре, а разбить их на отдельные, например Марки Авто,Тип Запчасти

И все..-))
Делаем вьюс с фильтрами по словарям(проще с exposed)... выбираем из списка Марку, выводятся запчасти только выбранной Марки, Выбираем еще и Тип запчасти... получаем список запчастей выбранного типа для выбранной Марки автомобиля..

Аватар пользователя Advin Advin 31 октября 2011 в 18:22

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

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

Аватар пользователя Orion76 Orion76 31 октября 2011 в 19:14

"Advin" wrote:
Возможно, Вы подскажите, как организовать подобную зависимость для варианта с двумя словарями?

т.е. если я правильно помню, вам необходимо для каждого термина Словаря1 соответствовали не все термины Словаря2, а некое ограниченное их множество?

если только так извернуться:
http://drupal.org/project/term_fields
этот модуль позволяет добавлять cck поля к терминам такономии

http://drupal.org/project/content_taxonomy
этот модуль позволяет добавлять CCK поля - термины таксономии

т.е. к терминам Словаря1 добавляем поле-ссылку на термины Словаря2 (количество добавляемых полей - неограничено)
Добавляем к терминам Словаря1 нужные термины из Словаря2..

Получается, что у каждого термина Словаря1 будет несколько полей-ссылок на термины из Словаря2

В описании к модулю term_fields написано, что он довольно неплохо интегрирован с вьюс..
Значит проблем с организацией вывода материалов быть не должно..

Вариант не проверенный, теория, так сказать...
Пробуйте... может оно...

ЗЫ.. в семерке, кстати это сдалать проще... данный функционал там в ядре...

Аватар пользователя sanita sanita 31 октября 2011 в 20:13

Зачем плодить сущности? Сделайте два словаря и выбирайте из второго только то, что нужно. В вьюс для первого словаря выводите только те термины второго словаря, у которого есть ноды с соответствующим термином первого словаря. /не знаю, понятно ли я написала.../

Аватар пользователя Advin Advin 1 ноября 2011 в 13:16

"orion76" wrote:
к терминам Словаря1 добавляем поле-ссылку на термины Словаря2 (количество добавляемых полей - неограничено)

Благодарю за хорошее предложение.

Остается вопрос, как реализовать:

"orion76" wrote:
Добавляем к терминам Словаря1 нужные термины из Словаря2..

В седьмой версии, в поле «ссылка на термин из словаря 2» нашел возможность только установить значение по умолчанию из словаря 2. При этом в форме создания материала вообще нет возможности задать значения дополнительного поля термина словаря 1.

"sanita" wrote:
Сделайте два словаря и выбирайте из второго только то, что нужно. В вьюс для первого словаря выводите только те термины второго словаря, у которого есть ноды с соответствующим термином первого словаря. /не знаю, понятно ли я написала.../

Есть ли возможность реализовать штатными средствами views зависимость значений вариантов выбора для второго фильтра от выбора в первым. Если не ошибаюсь, это можно сделать, только написав свой фильтр.

P.s. Как говорил кот Матроскин : Интересуюсь в целях повышения образованности Smile

Аватар пользователя pr0fessor pr0fessor 31 октября 2011 в 23:55

Ребята, подскажите пожалуйста, как??? Smile Тут относительно первого варианта моего поста появились новые элементы в словаре про "Марки автомобилей", а именно: Термин-родитель и подтермины.

По вашему совету создал 2 словаря, "Марка\модель автомобиля" и "Запчасти". Сами словари выглядят так:
Словарь №1:
Марка\модель автомобия:
- Опель
-- Вектра А
-- Кадет
- Форд
-- Фокус 2
-- Фиеста

Словарь №2:
Запчасти:
- Оптика
- Ходовая
- Кузов

К большому сожалению не являюсь спецом в Views (многое делал на нем, менее сложного, каталог не приходилось).

Как вывести сначала Родительские термины Словаря "Марка\модель автомобиля" (т.е. просто марку авто, без моделей), а под ними вывести термины из словаря "Запчасти", т.е. примерно так на выходе:

Опель
Ходовая, Оптика, Кузов

Форд
Ходовая, Оптика, Кузов

При этом кликнув по Ходовая (под родителем Опель) я попаду на все запчасти ходовой именно по Опелям...

Я уже и аргументы втыкал и зависимости, фильтры... в итоге вообще каша получилось и никаких пока выходов не вижу\не знаю. Пожалуйста, ребятки, подскажите, кто реализовывал подобное?...

Читал статью http://druit.ru/blogs/views/18, все удачно реализовал, но она по-моему рассчитана на 1 словарь с родителями и подтерминами. Крутил вертел - не получилось, видимо приведенный там код нужно править. Все что получилось могу показать на действующем сайте.

Аватар пользователя Orion76 Orion76 1 ноября 2011 в 1:46

"pr0fessor" wrote:
Я уже и аргументы втыкал и зависимости, фильтры...

почему бы просто не сделать вывод списка запчастей, с возможностью фильтрации по авто и по типу..
Например как сдесь:
http://www.butik-postel.ru/catalog/komplekty-belya/15-spalnoe

делается просто.. добавляем экспозед фильтры по терминам таксономии(в настройках фильтра кнопка exposed(раскрыть) и все..

и посетителю удобно и интуитивно-понятно-))

Аватар пользователя Orion76 Orion76 1 ноября 2011 в 15:19

"Advin" wrote:
В седьмой версии, в поле «ссылка на термин из словаря 2» нашел возможность только установить значение

тип поля не "ссылка на термин"(или как там оно..) а "ссылка на сущность" (entity reference)..
выбираем сущность, на которую ссылаться, нужный словарь таксономии...

чтобы "entity reference" появилось, надо модуль поставить Entity Reference (он требует также модуль Entity API)