Как вывести родителя термина!?

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

Аватар пользователя curtdp curtdp 21 декабря 2008 в 2:23

Условия:
есть словарь

Машины
-марка машины
--модель машины этой марки1
--модель машины этой марки2
--модель машины этой марки3
-другая марка машины
--модель машины этой марки1
--модель машины этой марки2
--модель машины этой марки3

нужно с помощью модуля views вывести столбец с маркой машины, который соответствует текущей модели, этой марки машин.

нашел плагин Customfield Views который позволяет вместо поля подставить PHP код, а как вывести родителя я не понимаю... есть текущий термин, как вывести его родителя!?
все материалы сайта находятся под двумя уровнями таксономии, то есть у каждого термина словаря, обязательно есть, только один, предок. А то получается модели машин выводятся, а производители нет...
в модуле views можно вывести доп поле сатегория записи, при этом выводится '--модель машины этой маркиN', нужно вывести родителя 'модель машины этой маркиN'
помогите пожалуйста

Комментарии

Аватар пользователя Eugene_S Eugene_S 21 декабря 2008 в 15:46

Решал похожую проблему. Правда, выводил не во views, а в кастомизированном шаблоне материала. И в Drupal 5.
Возможно, мое решение направит вас на нужный ход мысли.

Итак:
1. Нужно вывести все термины из конкретного словаря для данной ноды. Например, в вашем случае это словарь "Машины" (допустим, его $vid=1). Термины пусть будут, к примеру, родительский - "Ford" (вес 18) и дочерний "Focus" (вес 3). В моем случае надо было вывести просто название термина текстом, без ссылки на сам термин.
Для этого я применил решение, найденное на drupal.org.
В нужном месте вызываем функцию, указав словарь (1):

<?php
$car_name = mytheme_taxonomy_text($node, 1);
print $car_name;
?>

2. Итак, термины показываются, но не в нужном нам порядке (возможно, в шестерке это уже не так, не знаю).
У меня отображалось так: Focus Ford (зависело от веса термина, причем не учитывалось, какой из них родительский).
Решил с помощью этого модуля.

3. Получил правильное название машины Ford Focus. В принципе, мне этого было достаточно.
В вашем случае я бы просто использовал explode(), чтобы отделить марку от модели и использовать где нужно.

Возможно, несколько путано получилось. Должно быть гораздо более простое и красивое решение.

Аватар пользователя curtdp curtdp 10 ноября 2015 в 11:45

Я тоже решил эту проблему... по своему Smile
Надо было просто в модуле views детальней порыться...
и добавить виду поле taxonomy:term у которого указать relationship - parent (родитель)

Аватар пользователя Eugene_S Eugene_S 21 декабря 2008 в 20:46

Что-то я не подумал. Раз у вас D6, то и views, соответственно, 2.
В первом такого нет, насколько я знаю. Интересно. Возьму на заметку.