如何使用getResources(ModX)通过电视对条目进行分组?

时间:2015-12-28 14:19:44

标签: modx modx-revolution

我有一个getResources调用,结果看起来或多或少像这样:

  • 01.01.2016 - 新年午餐(会议)
  • 2015年12月11日 - 写作课(班级)
  • 01.12.2015 - 伦敦之旅(旅行)
  • 23.11.2015 - 法语课(班级)

我可以按标签对它们进行排序:

  • 会议

效果很好。这是我的代码:

[[!getResourcesTag?
             &parents=2`  
             &tagKey=`Tags` 
             &showHidden=`1`
             &tpl=`datesTpl
             &limit=`3`
             &includeContent=`1`
             &includeTVs=`1`
             &processTVs=`1`
             &tvPrefix=`` 
             &hideContainers=`1`
             &pageLimit=`10` 
         ]]

现在出现的部分,给我带来了麻烦。我想按月对结果进行分组。所以我想要实现的结果是:

2016年1月

01.01.2016 - 新年午餐(会议)

2015年12月

  • 2015年12月11日 - 写作课(班级)
  • 01.12.2015 - 伦敦之旅(旅行)

2015年11月

  • 23.11.2015 - 法语课(班级)

输出日期的电视名称为"日期"。这台电视为我提供了每个条目的时间戳输出。例如:" 2015-12-11 00:56:00"。 我写了一个片段(formatDate),稍后输出我想要的格式。我这样用它:

[[formatDate? &date=`[[+date]]`]]

所以我认为我可以使用Archivist Grouper解决这个问题。但它没有用。不知怎的,它并没有处理我的电视。这是我的代码: 1

[[!ArchivistGrouper? &parents=`2` &itemTpl=`datesTpl` &includeTVs=`1` &tvPrefix=`` &includeContent=`1` &processTVs=`1`]]

Archivist Grouper的结果是:

2016年1月

  • 01.01.2016 - 新年午餐()

2015年12月

  • 01.01.2016 - 写作课()
  • 01.01.2016 - 伦敦之旅()

2015年11月

  • 01.01.2016 - french class()

所以我的问题是,我能用getResources得到我想要的结果吗?或者你有任何想法让它运行!我非常希望你能提供帮助。我很高兴每一个提示笑脸

2 个答案:

答案 0 :(得分:0)

您将无法设置getResources以分组格式输出任何内容。您必须编写自己的代码段。

您可以在getResources中启用调试,以查看它输出的查询类型,并将其复制到您的代码段[不太好]或使用xPDO [更好]重建它,迭代完成以获取您的分组,您必须在getChunk上进行分组以格式化输出。

答案 1 :(得分:0)

这将逐年分解。

[[pdoNeighbors?
    &id=`[[+id]]`
    &tplWrapper=`@INLINE [[+next]]`
    &sortby=`publishedon`
    &sortdir=`asc`
    &tplNext=`@INLINE [[+publishedon:strtotime:date=`%Y`]]`
    &toPlaceholder=`neighborYear`
]]
[[+neighborYear:notequalto=`[[+year]]`:then=`<h3>[[+neighborYear]]</h3>`]]
   <dt>[[+publishedon:strtotime:date=`%m/%d/%Y`]]</dt>
   <dd><a href="[[~[[+id]]]]" [[+link_attributes]] title="[[+pagetitle]]">[[+pagetitle]]</a></dd>
[[+publishedon:strtotime:date=`%Y`:toPlaceholder=`year`]]

要按年份和月份进一步细分,请使用%Y%m