如何按年份对专辑进行分组?
例如:
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>
答案 0 :(得分:1)
目前,GalleryAlbums代码段并不支持按年份排序,即使有一年的&#34;年份&#34;专辑对象的字段:
但是,有几种方法可以做到这一点。
<强> 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调用可能会受到性能损失,如我在此所述。