This macro is bundled with all the XWiki products by default.
Macro developed by the XWiki Development Team.
This macro cannot currently be downloaded separately.

PagedViewLinks Macro

Generates links that can be used in a paged view, i.e. search results, list of objects, list of documents, etc. It uses two request parameters, "ipp" (items per page) and "page" (the current page to display).

All the parameters should be numbers.

If there is only one page, then the links are not printed.

It's up to you to implement the logic to display the current page. See the example below.

Usage

#pagedViewLinks(itemsPerPage totalPages crtPageNumber)

Parameters definition

NameOptionalAllowed valuesDefault valueDescription
itemsPerPagenoany integer-The number of displayed items per page.
totalPagesnoany integer-The total number of pages, starting from 0 (so 0 = 1 page, 1 = 2 pages).
crtPageNumbernoany integer-The currently displayed page, starting from 0 (so 0 = first page, 1 = second page).

Example

1 Paged Documents for space

## The full data to display #set ($spaceDocs = $xwiki.getSpaceDocsName("Main"))

#set($itemsPerPage = 5) #if($request.ipp) #set($itemsPerPage = $xwiki.parseInt($request.ipp)) #end

#set($pageNumber = 0) #if($request.page) #set($pageNumber = $xwiki.parseInt($request.page)) #end

#set($startAt = $itemsPerPage * $pageNumber) #if($startAt < 0) #set($startAt = 0) #end #set($endAt = $itemsPerPage * ($pageNumber + 1)) #if($endAt > $spaceDocs.size()) #set($endAt = $spaceDocs.size()) #end #if($startAt > $endAt) #set($startAt = $endAt) #end

#set($totalPages = ($spaceDocs.size() - 1) / $itemsPerPage) #set($crtPageNumber = $startAt / $itemsPerPage)

#set($spaceDocsInPage = $spaceDocs.subList($startAt, $endAt))

{table} Document Name #foreach($item in $spaceDocsInPage) $item #end {table}

#pagedViewLinks($itemsPerPage $totalPages $crtPageNumber)

Result

pagedLinks.png

Version 5.1 last modified by VincentMassol on 19/06/2008 at 22:10

Comments 1

MacsEntropy | 16.04.2007 at 06:44 PM
Sergiu:

This looks promising, but although you have a usage example I can't guess at where it should be invoked. Is it, for example, to be used wherever the page author deems there should be another page, and does it actually break a document into multiple pages?

Attachments 1

Image
pagedLinks.png 1.2
PostedBy: VincentMassol on 09/12/2007 (22kb )

Creator: sdumitriu on 2007/04/16 13:34
This wiki is licensed under a Creative Commons license
1.4.1.10194