Таксономия: вид термина высшего уровня? - PullRequest
4 голосов
/ 06 июля 2011

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

Ответы [ 3 ]

4 голосов
/ 02 сентября 2011

В этом блоге рассказывается, как это сделать: http://www.raisedeyebrow.com/2011/01/show-only-top-level-terms-in-a-term-type-drupal-view/

По сути, вам нужно добавить отношения термина родительский. Затем добавьте фильтр для имени термина и выберите пусто (null), используя родительские отношения. Эффективно показывает только те термины, у которых нет родителя.

1 голос
/ 06 июля 2011

Вы можете добавить фильтр Taxonomy: Term ID и вручную выбрать, какие термины показывать (может быть утомительно, если у вас большой словарный запас).

ИЛИ

Вы можете добавить файл шаблонадля поля по вашему мнению, чтобы решить, какие условия показывать.Например, по вашему мнению, вы можете просто добавить поле Taxonomy: Term ID.Скопируйте views-view-field.tpl.php в папку вашей темы из каталога модуля views (в разделе theme).Перейдите в раздел «Информация о теме» в разделе «Основные настройки», найдите подходящее имя для шаблона и создайте новый файл с этим именем.Например, у меня было views-view-field--tax--tid.tpl.php.

Чтобы показывать только имена терминов, являющихся верхним уровнем словаря, используйте следующее (или подобное) в вашем новом файле шаблона:

<?php 
  if (count(taxonomy_get_parents($output, $key = 'tid')) == 0) {
    $term = taxonomy_get_term($output, $reset = FALSE);
    print $term->name;
  }
?>
0 голосов
/ 06 июля 2011

Да, это возможно, но не обязательно с представлениями. Ниже приведен один из способов получения терминов верхнего уровня в словаре.

$tree = taxonomy_get_tree($vocabulary_id, 0, -1, 1);

taxonomy_get_tree возвращает плоский массив терминов, так что вы можете использовать его при печати. ​​

С уважением, Чинтан.

...