有没有一种方法可以根据 Apostrophe CMS 中的标签对小部件中的片段进行分组

Is there a way to group pieces in a widget based on it's tags in Apostrophe CMS

所以我正在创建一个可下载文档的页面,并使用 apostrophe-files-widgets 呈现在文件管理栏项下上传的文档。这工作正常,但在页面上呈现时,它们会按上传顺序显示。我宁愿让它们按标签名称的字母顺序排列。

我知道有 apostrophe-pieces-orderings-bundle,但这感觉开销很大。也许我错了...

有没有办法访问单个文件,查看它们的标签,然后按这些标签对它们进行分组。为简单起见,假设每个文件仅关联一个标签。

您正在显示 所有 文件,因此您可以继续对模板中的标签进行分组:

{# in widget.html #}
{% set grouped = apos.utils.groupBy(data.widget._pieces, 'tags') %}
{% for tag, pieces in grouped %}
  <h3>{{ tag }}</h3>
  {% for piece in pieces %}
    <h4>{{ piece.title }}</h4>
  {% endfor %}
{% endfor %}

如果您在这里构建一个 apostrophe-pieces-pages 模块子类,使用分页,我们需要在数据库排序级别修复此问题,这将涉及一些有趣的非规范化。但在这种情况下,我们不必担心。