如何按年

时间:2015-05-04 22:49:17

标签: modx modx-revolution

如何按年份对专辑进行分组?

例如:

2014
- Album 1
- Album 2

2013
- Album 3

我最近seen可以使用类似子文件夹的方法将它们分组到后端,但是也可以查询特定文件夹的相册吗?

我目前在我的图库概述中使用此调用:

[[!GalleryAlbums? &sort=`year` &albumCoverSort=`random`  &rowTpl=`galAlbumRowTpl`
                  &toPlaceholder=`galleries` &showAll=`1` &parent=`6`
                  &prominentOnly=`0` &limit=`50`]]
<div class="galleries">[[+galleries]]</div>

1 个答案:

答案 0 :(得分:1)

目前,GalleryAlbums代码段并不支持按年份排序,即使有一年的&#34;年份&#34;专辑对象的字段:

MODX Gallery Album Edit View

但是,有几种方法可以做到这一点。

<强> 1。编写自己的代码段

这将是性能最高的选项,但此处的说明可能超出范围,因此另一个选项可能是:

<强> 2。嵌套模板块

通过将相册嵌套在以年份命名的父相册下来整理您的相册。所以你有一张名为&#34; 2014&#34;的专辑。并且在那之下你有想要在那一年展示的儿童专辑。

然后修改您的代码段调用以包含以下属性:

&showAll=`0`
&parent=`0`

根据Gallery documentation,这就是这些属性的作用:

  • showAll如果为1,将显示所有相册而不管其父级。

  • parent仅使用具有此ID的父相册获取相册。记得将showAll设置为0,否则它不会工作!

现在修改你的rowTpl,这样就可以了:

<li>[[+name]]
    <ul>[[GalleryAlbums? &showAll=`0` &parent=`[[+id]]` ... ]]</ul>
</li>

这意味着,你的&#34;外部&#34;小部件呼叫仅获得&#34;顶级&#34;专辑,因为您指定了parent属性必须为&#34; 0&#34;。然后每个专辑的tpl再次调用Gallery片段,其中parent属性作为当前迭代的Album的ID,从而返回子专辑的列表。请注意,在上面的代码示例中,我省略了其他重要的属性,例如&amp; rowTpl,您需要填充它们。

注意:我发现您使用未缓存的令牌!来调用您的代码段。您可以通过缓存来获得性能提升,特别是如果您使用像StatCache这样的积极缓存机制。授予GalleryAlbums getList处理器使用自己的缓存处理程序,但使用嵌套的Snippet调用可能会受到性能损失,如我在此所述。