有没有一种方法可以根据 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
模块子类,使用分页,我们需要在数据库排序级别修复此问题,这将涉及一些有趣的非规范化。但在这种情况下,我们不必担心。
所以我正在创建一个可下载文档的页面,并使用 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
模块子类,使用分页,我们需要在数据库排序级别修复此问题,这将涉及一些有趣的非规范化。但在这种情况下,我们不必担心。