繁体   English   中英

TYPO3 (6.2) 和 extbase:向 QueryResult 添加项目

[英]TYPO3 (6.2) and extbase: add items to QueryResult

我有一个事件列表,我需要的是在第 1 页上显示某个类别的前 5 个事件,然后在下一页显示所有事件(包括类别 X 的前 5 个)。

所以我试图做的是为我的结果创建 2 个 extbase 查询并尝试合并这两个查询。

传递给 TYPO3\\CMS\\Fluid\\ViewHelpers\\Widget\\PaginateViewHelper::render() 的参数 1 必须实现接口 TYPO3\\CMS\\Extbase\\Persistence\\QueryResultInterface,给出 TYPO3\\CMS\\Extbase\\Persistence\\ObjectStorage 的实例

那么如何在不将它们转换为其他内容的情况下合并 2 个 QueryResults 呢? 还是有另一种方法来实现我需要实现的目标?

我如何需要这个的一个小例子:

page 1 (the first 5 Events in Category X): 
    Event 4, Category X
    Event 5, Category X
    Event 8, Category X 
    Event 9, Category X
    Event 10, Category X 
page 2 (from now on everything is sorted by ID): 
    Event 1, Category A
    Event 2, Category B
    Event 3, Category B
    Event 4, Category X
    Evnet 5, Category X
page 3: 
    Event 6, Category A
    Event 7, Category B
    Event 8, Category X
    Event 9, Category X
    Event 10, Category X

在我的模板中使用 f:widget.paginate。

首先,当从第 1 页移动到第 2 页时,分页的概念在这里并不真正适用。用户会期望什么? 肯定不是重复的结果?

更重要的是:仅从 TYPO3 7.6 开始,除了 QueryResults 之外,PaginationViewHelper 还支持数组。 但是有一个反向移植(我在 6.2 中使用过它)。

为了解决您的问题,为什么不使用带有单独页面的单独查询,因为您的内容元素在语义上似乎具有不同的用途? 使用自定义 WidgetController 时,如果您确实必须这样做,您可以在任意条件下(例如某个页面)根据您的目的调整 QueryResult(这是它的设计目的),但我建议您不要这样做。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM