Drupal 7视图上下文过滤器(分类法:摘要显示),显示可读的术语名称而不是术语ID


9

在我看来,我正在使用上下文过滤器(带有默认的“ 摘要输出 ”)来按分类术语过滤结果。

问题在于摘要结果是按分类法术语ID(包括节点计数)的列表而不是人类可读的术语ID名称进行分组的。

  • 1(21)
  • 2(16)
  • 等等

是否可以通过不列出摘要的term-id而是列出term-id-name来更改(或挂钩)摘要的视图输出?

  • 术语名称A(21)
  • 术语名称B(16)

(如果实际的请求URL保持不变,这对我来说并不麻烦。)

我的目标是为我的分类术语摘要创建一个更具可读性的输出格式,最终用户可以理解。


我发现了关于如何使用Views参数返回分类术语名称而不是术语ID的相同问题,以及有关在filter参数为term id时将视图标题设置为term name的积极讨论。他们提供了补丁,但没有成功。
Stefan Looij,2011年

Answers:


7
  1. 将视图设置为字段,并显示包含相关分类法术语的字段。

  2. 设置上下文过滤器以过滤分类术语,然后选择包含验证器。

  3. 将验证器设置为分类术语,然后选中您的词汇框。

  4. 选择过滤器值类型的选项为'将术语名称转换为术语ID。

  5. 保存过滤器,然后转到预览框。如果输入术语的文本名称,则应该看到所需的内容。

如果要从URl传递信息,则由于计算机名称使用破折号,因此可能还必须选中“将URL中的破折号转换为术语名称过滤器值中的空格”复选框


我忘记的是,在选择上下文过滤器时,它必须用于分类术语(名称),并使用与要显示给术语本身的节点上的字段的关系,而不是内容:my_term_field_name
CR47

该答案告诉您如何使上下文过滤器与分类术语的人类可读名称一起使用,但不会回答该问题。问题是如何在过滤后的结果中显示分类术语的可读名称。
BrokenBinary

5

将“ views_view-summary.tpl.php”文件复制到“ modules / contrib / views / theme”文件夹中。(您可以通过添加文件名后缀来使其查看或阻止特定的内容。)

注意:如果您将此文件用作管理员视图显示,请确保将此文件复制到管理员主题文件夹中,而不是默认主题文件夹中!

您无需更改显示设置。只需将tpl-override调整为以下几行,即可将您的Term-ID转换为可读的Term-name:

<div class="item-list">
  <ul class="views-summary">
    <?php foreach ($rows as $id => $row): ?>
    <li>
      <a href="<?php print $row->url; ?>"<?php print !empty($row_classes[$id]) ? ' class="'. $row_classes[$id] .'"' : ''; ?>>
        <?php
        /* begin replacement */
        $term_object = taxonomy_term_load($row->link);
        print  $term_object->name; 
        /* end replacement*/
        ?>
      </a>
      <?php if (!empty($options['count'])): ?>
      &nbsp;(<?php print $row->count?>)
      <?php endif; ?>
    </li>
    <?php endforeach; ?>
  </ul>
</div>

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.