Представления показывают термины детской таксономии - PullRequest
1 голос
/ 06 мая 2011

У меня есть словарь такой:

Parent 1
- Child 1
- Child 2
- Child 3
Parent 2
- Child 1
- Child 2

Теперь я хотел бы использовать представление для создания списка всех дочерних терминов под одним родителем.Поэтому я подумал, что просто создал термин Views и передал родительский термин в качестве аргумента, и он отфильтрует все дочерние термины этого родителя.Но это не представляется возможным в стандартных представлениях.

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

Кто-нибудь знает, как я могу это сделать?

Ответы [ 3 ]

6 голосов
/ 06 мая 2011

Модуль Views имеет taxonomy_term View, который вы можете использовать. Вам необходимо отредактировать представление так, чтобы в Arguments -> Taxonomy: Term ID (with depth) -> изменить глубину, чтобы вы могли захватывать столько уровней дочерних объектов, сколько хотите. Если вы хотите исключить родительский элемент, вы можете сделать это, добавив фильтр для исключения родительского элемента.

0 голосов
/ 26 марта 2018

Вот быстрое решение, перейдите на admin/structure/views/import, импортируйте представленные ниже представления и обновите представления в соответствии с вашими требованиями.

$view = new view();
$view->name = 'locations2';
$view->description = '';
$view->tag = 'default';
$view->base_table = 'taxonomy_term_data';
$view->human_name = 'Product Categories';
$view->core = 7;
$view->api_version = '3.0';
$view->disabled = FALSE; /* Edit this to true to make a default view disabled initially */

/* Display: Master */
$handler = $view->new_display('default', 'Master', 'default');
$handler->display->display_options['title'] = 'Product Categories';
$handler->display->display_options['use_more_always'] = FALSE;
$handler->display->display_options['access']['type'] = 'perm';
$handler->display->display_options['cache']['type'] = 'none';
$handler->display->display_options['query']['type'] = 'views_query';
$handler->display->display_options['query']['options']['distinct'] = TRUE;
$handler->display->display_options['query']['options']['pure_distinct'] = TRUE;
$handler->display->display_options['exposed_form']['type'] = 'basic';
$handler->display->display_options['pager']['type'] = 'some';
$handler->display->display_options['pager']['options']['items_per_page'] = '10';
$handler->display->display_options['pager']['options']['offset'] = '0';
$handler->display->display_options['style_plugin'] = 'grid';
$handler->display->display_options['row_plugin'] = 'fields';
/* Relationship: Taxonomy term: Parent term */
$handler->display->display_options['relationships']['parent']['id'] = 'parent';
$handler->display->display_options['relationships']['parent']['table'] = 'taxonomy_term_hierarchy';
$handler->display->display_options['relationships']['parent']['field'] = 'parent';
/* Field: Global: View result counter */
$handler->display->display_options['fields']['counter']['id'] = 'counter';
$handler->display->display_options['fields']['counter']['table'] = 'views';
$handler->display->display_options['fields']['counter']['field'] = 'counter';
$handler->display->display_options['fields']['counter']['label'] = '#';
$handler->display->display_options['fields']['counter']['counter_start'] = '1';
$handler->display->display_options['fields']['counter']['reverse'] = 1;
/* Field: Taxonomy term: Name */
$handler->display->display_options['fields']['name']['id'] = 'name';
$handler->display->display_options['fields']['name']['table'] = 'taxonomy_term_data';
$handler->display->display_options['fields']['name']['field'] = 'name';
$handler->display->display_options['fields']['name']['alter']['word_boundary'] = FALSE;
$handler->display->display_options['fields']['name']['alter']['ellipsis'] = FALSE;
$handler->display->display_options['fields']['name']['element_label_colon'] = FALSE;
$handler->display->display_options['fields']['name']['link_to_taxonomy'] = TRUE;
/* Filter criterion: Taxonomy vocabulary: Machine name */
$handler->display->display_options['filters']['machine_name']['id'] = 'machine_name';
$handler->display->display_options['filters']['machine_name']['table'] = 'taxonomy_vocabulary';
$handler->display->display_options['filters']['machine_name']['field'] = 'machine_name';
$handler->display->display_options['filters']['machine_name']['relationship'] = 'parent';
$handler->display->display_options['filters']['machine_name']['operator'] = 'not empty';

/* Display: Product Categories List */
$handler = $view->new_display('block', 'Product Categories List', 'block_2');
$handler->display->display_options['defaults']['style_plugin'] = FALSE;
$handler->display->display_options['style_plugin'] = 'table';
$handler->display->display_options['style_options']['columns'] = array(
  'counter' => 'counter',
  'name' => 'name',
);
$handler->display->display_options['style_options']['default'] = '-1';
$handler->display->display_options['style_options']['info'] = array(
  'counter' => array(
    'align' => '',
    'separator' => '',
    'empty_column' => 0,
  ),
  'name' => array(
    'sortable' => 0,
    'default_sort_order' => 'asc',
    'align' => '',
    'separator' => '',
    'empty_column' => 0,
  ),
);
$handler->display->display_options['defaults']['style_options'] = FALSE;
$handler->display->display_options['defaults']['row_plugin'] = FALSE;
$handler->display->display_options['defaults']['row_options'] = FALSE;
0 голосов
/ 15 октября 2013

Существует аргумент фильтра для "Термин таксономии: родительский термин"

Если вы установите значение меньше 1. Вы получите только корневые элементы в своей таксономии.

...