Доброго времени суток
возникла простая задача, но не знаю как решить
Суть проблемы: есть тип материала "товар" у которого есть поле ТЭГИ. Тэгов может быть несколько например ДЕРЕВЯННЫЙ, КРАСНЫЙ, КРУГЛЫЙ
Так вот нужно сделать вьюху которая бы выводила все похожие товары. Но по конкретному термину а не по всем сразу.
Если для одного товара это может быть тэг ДЕРЕВЯННЫЙ, то для другого нужно вывести КРУГЛЫЙ
Понятно что при добавлении тэгов в ноду надо как то помечать нужный, но не представляю как это сделать. Может кто нибудь сталкивался?
Комментарии
Примерно так
По указанной вами ссылки указан примитивный вывод похожих товаров, а в сабже стоить вопрос совсем в другом
Сорри , наверное невнимательно прочитал, или неправильно понял. Тогда встречный вопрос, а блок похожих товаров для одного товара один?
Я имею в виду, вот что. У товара три термина таксономии, а блок похожих нужен только по одному из трех, или какой то другой принцип используется?
Добавить контекстный фильтр - термин таксономии из урл.
https://www.drupal.org/project/similarterms - Надо патчить. Но это если словари:
Форма (круглый, квадратный)
Материал (дерево, пластик)
дабл
abutan
Да указываем несколько терминов на на ноду, но похожие товары отображаются только по одному из них
Lotar
Все фильтруется ) но Вы видимо тоже не поняли суть вопроса?
VasyOK
Как я понял единственный вариант патчить или дописывать
Словарь ТЭГИ в нем каша терминов
В процессе поиска решения заметил что пишут про дельту терминов в норде. Может можно как то по дельте фильтровать? тогда теоретически первый термин всегда можно считать самым главным и по нему выводить похожие товары
Я бы добавил еще одно поле для тегов. То есть во второе поле писать тег по которому надо выводить похожие товары. Только в нем количество значений - только одно. А так изобретать фильтр я не думаю что получится. Ведь в товаре А нужно будет вывести по первому термину, а в товаре Б по четвертому , к примеру. Вряд ли какая то автоматизация получится.
abutan
Это логичное и простое решение, но сейчас на сайте уже тысяча наименований и с ним работают несколько человек. Можно конечно обьяснить всем и пройтись по всем товарам по добавлять теги в новое поле, но мне кажется должно быть решение попроще
Хотя....
У термина делам чекбокс "Нужный термин"
Делаем вьюхи:
1. Определяет "нужный" термин
Контекстный фильтр - nid
Связь - поле ссылки на термин
Фильтр - (через связь) "нужный" термин
Поля
tid (через связь) - скрытое
просмотр - от модуля Views Field View - по аргументу tid вьюху 2
2. Контекстный фильтр - tid
Поле - Заголовок материла
В контекстных фильтрах единственная важная настройка
When the filter value is NOT available - Provide default value - Content ID from URL (для 2-й вьюхи taxonomy term ID from URL)
Согласен геморрой жуткий. Но пока вы не придумаете алгоритм по которому выбирается нужный термин, все решения сводятся к тому что надо заходить в каждый товар и каким нибудь образом указывать нужный термин. Так или иначе.
Если вы придумаете такой принцип, может кто то и придумает решение, или вспомнит готовое, или сами поймете что и как сделать.
Пока же могу только для ускорения процесса использовать вот это. Поподробней описано здесь. Смысл в том чтобы нужные поля сделать редактируемыми и вывести в представление. Добавить фильтры, чтобы каждый мог работать только со своей категорией товаров. Процесс ускоряется на несколько порядков. Сам страдал такой фигней с одним клиентом.
VasyOK
Самое смешное что эта галка и будет работать только для страницы термина ) в ноде ее не будет. Или что то путаю?
abutan
спасибо за интересные ссылки возьму на заметку
Пока еще в поисках оптимального решения
Галка - это поле термина.
А вьюха 1 - это блок на странице ноды. Там же во вьюхе связь с термирном.
VasyOK
А можете еще раз обьяснить про этот способ? Не понял логики...
Вы явно знаете в друпале больше меня
Скопировать и вставить то что написал уже?
Давайте по пунктам.
Поле чекбокса у термина задали?
2 вьюхи создали?
Блок к ноде вывели?
VasyOK
Нет копировать не надо ) я не понял логики этих вьюх для чего нужна первая и для чего вторая?
первая вьюха как я понял должна быть блоком для нод? или для терминов?
Скажите пожалуйста как нибудь можно влиять на порядковый номер добавления термина? Посмотрел еще раз ассортимент. На самом деле достаточно было бы искать похожие товары по первому термину.
Фиксирует ли система что то типа порядкового номера?
По идее вес фиксирует.
abutan
Но фиксирует как техническую информацию? не для редактирования?
А вы сделайте и поймете.
Блоком для нод. На не-нодах она будет пустой и потому не выведется. В любом случае есть фильтры в views и варианты "где показывать" в настройках блока.
У термина есть номер. TID называется. Или я не понял вопрос.
TID это идентификатор термина
я имел ввиду дополнительные параметры термина в самой ноде, например время или порядок подключения термина
Вы итоге решил тупо сделать поле, потому что оказалось что может быть такое что в похожих нужно будет показывать и товары, которые не указываются в видимых тегах
появилась другая проблема http://www.drupal.ru/node/127580
может кто нибудь может подсказать в чем проблема?
Настаиваю на том, что способ, приведенный мной выше рабочий. Другие методы не отрицаю, увы объяснить их не могу.
VasyOK
Спасибо что отозвались. После разговора с заказчиком выяснилось что изначально и нужно было два поля. Потому что иногда в похожих нужно будет показывать товары с совершенно другим термином.
Скажите пожалуйста можно ли как то передавать более одного термина во вьюхе? - http://www.drupal.ru/comment/664870#comment-664870
Не знаю честно. И даже не понимаю зачем все это.
xandeadx-а спросите в комментариях на его сайте.
Мой способ рабочий даже если 2 поля. В таком случае по нужному полю выводить товары.