【问题标题】:Views show child taxonomy terms视图显示子分类术语
【发布时间】:2011-08-20 02:02:50
【问题描述】:

我有这样的词汇:

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

现在我想使用一个视图来创建一个父项下所有子项的列表。 所以我以为我只是创建了一个术语 Views 并将父术语作为参数传递,它将过滤掉该父项的所有子术语。 但这对于标准视图似乎是不可能的。

唯一可能的方法是在提供子项时获取父项,但反之则不行。

有人知道我该怎么做吗?

【问题讨论】:

    标签: drupal views


    【解决方案1】:

    Views 模块有一个taxonomy_term 可以使用的视图。您需要编辑视图,以便在Arguments -> Taxonomy: Term ID (with depth) -> 下更改深度,以便您可以根据需要抓取任意级别的子对象。如果要排除父项,可以通过添加过滤器来排除父项。

    【讨论】:

    • 这个问题是,当我有超过 1 个节点附加到子术语时,它会在列表中出现多次。对具有此子标签作为标签的每个节点执行一次。我尝试了不同的设置,但没有帮助。
    • 您更改了哪些设置?这如何使视图显示术语而不是节点?
    • @jdln - 这不会创建显示术语而不是节点的视图。它创建一个视图,其中包含属于父项和子项的节点,而不仅仅是属于父项的节点。
    • 问题是关于显示术语而不是节点。术语视图中没有“分类:术语 ID(带深度)”。
    【解决方案2】:

    “分类术语:父术语”有一个过滤器参数

    如果您将其设置为 bee 小于 1。您将只获得分类中的根元素。

    【讨论】:

      【解决方案3】:

      这里是快速解决方案,前往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;
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-03-21
        • 2017-11-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-09-14
        • 2022-01-06
        • 1970-01-01
        相关资源
        最近更新 更多