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

时间:2019-09-06 17:21:48

标签: apostrophe-cms

因此,我正在创建可下载文档的页面,并使用apostrophe-files-widgets来呈现“文件”管理栏项下上传的文档。效果很好,但是在页面上呈现时,它们会按上传顺序显示。我宁愿标签名称按字母顺序排列。

我知道这里有apostrophe-pieces-orderings-bundle,但那感觉很麻烦。也许我错了...

是否可以访问单个文件,查找其标签,然后按这些标签对它们进行分组。为简单起见,假设每个文件仅关联一个标签。

1 个答案:

答案 0 :(得分:0)

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

{# 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模块子类,则需要在数据库排序级别进行修复,这将涉及一些有趣的反规范化。但是在这种情况下,我们不必为此担心。