1

我有一个体育用品网站。我使用分层选择来标记添加到站点的产品 - 并保存术语沿袭,因此分类菜单会自动创建链接到分类页面的漂亮分层菜单 - 我已经使用视图覆盖了这些菜单。

见这里的例子: http ://dayalssports.com/product-menu/badminton/rackets

球拍根据分类术语进行分组。问题是,随着术语沿袭被保存,分类视图以看似随机的顺序显示所有术语。它不会像您期望的那样显示它们 parent->Child1->Child2 等。

我只想显示最深的术语。因此,而不是:

球拍 > Y 系列球拍 > 羽毛球

无论如何,这是不正常的,我只是得到

Y 系列球拍

有没有办法做到这一点?或者至少有一种方法可以正确订购它们?

顺便说一句 - 术语之间的>字符不是默认分隔符,我只是将其设置为我认为术语会按顺序显示的值。因为它们不是,它看起来有点愚蠢,因为它给人的印象是等级制度。层次结构实际上是

羽毛球 > 球拍 > Y系列球拍

4

1 回答 1

0

尝试这个:

function theme_hs_taxonomy_formatter_lineage($variables) {
  $output = '';
  $lineage = $variables['lineage'];
  $separator = theme('hierarchical_select_item_separator');

  // Render each item within a lineage.
  $items = array();
  foreach ($lineage as $level => $item ) {
    dpm($item);
    $line  = '<span class="lineage-item lineage-item-level-' . $level . '">';
    $line .= drupal_render($item);
    //this adds a flag link to every term, not just the last term
    if(!count(taxonomy_get_children($item['#options']['entity']->tid))){
      $line .= flag_create_link('hobbies_and_interests', $item['#options']['entity']->tid);
    }

    $line .= '</span>';
    $items[] = $line;
  }
  $output .= implode($separator, $items);
  return $output;
}

参考:https ://drupal.stackexchange.com/questions/58691/how-can-i-show-a-flag-link-only-for-the-deepest-terms-for-a-field-with-multipl

于 2013-10-09T13:06:51.320 回答