Paginate Search
Last modified by Vincent Massol on 2021/03/18 11:28
Display results from a hql query in multiple pages |
Type | Snippet |
Category | |
Developed by | |
Rating | |
License | GNU Lesser General Public License 2.1 |
Table of contents
Description
Code
#macro(paginateSearch $query $currentPage $resultsPerPage)
#set ($start = $resultsPerPage * $currentPage)
#set ($resultsnb = $xwiki.xWiki.search("select count(doc) from
XWikiDocument doc ${query}", $context.context).get(0))
#set ($list = $xwiki.searchDocuments($query, $resultsPerPage, $start))
#foreach ($item in $list)
* $item
#end
#if ($resultsnb > $resultsPerPage)
#set ($pagesnb = $resultsnb / $resultsPerPage)
#foreach ($pagenb in [0..$pagesnb])
#if ($pagenb != $currentPage)
[$pagenb>$doc.fullName?page=$pagenb]
#else
$pagenb
#end
#end
#end
#end
#if ($request.page)
#set ($page = $xwiki.parseInt($request.page))
#else
#set ($page = 0)
#end
#paginateSearch("where 1=1" $page 5)
#set ($start = $resultsPerPage * $currentPage)
#set ($resultsnb = $xwiki.xWiki.search("select count(doc) from
XWikiDocument doc ${query}", $context.context).get(0))
#set ($list = $xwiki.searchDocuments($query, $resultsPerPage, $start))
#foreach ($item in $list)
* $item
#end
#if ($resultsnb > $resultsPerPage)
#set ($pagesnb = $resultsnb / $resultsPerPage)
#foreach ($pagenb in [0..$pagesnb])
#if ($pagenb != $currentPage)
[$pagenb>$doc.fullName?page=$pagenb]
#else
$pagenb
#end
#end
#end
#end
#if ($request.page)
#set ($page = $xwiki.parseInt($request.page))
#else
#set ($page = 0)
#end
#paginateSearch("where 1=1" $page 5)
Result
- Main.Tags
- Main.TagsRss
- Main.WebHome
- Main.WebRss
- Main.WebSearch