ePages 6.10 - DE_EPAGES/Presentation/API/Object/Pager.pm

Package DE_EPAGES::Presentation::API::Object::Pager

Base class for pager objects. Pagers are used for navigation in long lists. Sub classes must override at least the 2 abstract methods countItems and items.
see DE_EPAGES::Presentation::API::Object::PagerChildren for an example implementation.

Base
DE_EPAGES::Core::API::Object::BaseObject
Example
my $Pager = PagerClass->new({ PageSize => 10 });
$Pager->statistics;
my $Count = $Pager->countItems;
my $aItems = $Pager->items( 1 );

Functions

allItems
countItems
countPages
firstItemOfPage
items
lastItemOfPage
new
orderBy
orderDesc
page
pageOfItem
pageOfItemByObjectID
sortObjects
statistic

allItems

Returns all objects of all pages.

Syntax
$aItems = $Pager->allItems;
Return
$aItems (ref.array.object)
list of objects

countItems

Returns the total number of items to be paged.

Syntax
$Count = $Pager->countItems;
Return
$Count (integer)
number of items

countPages

Calculates the number of pages for a given number of items.

Syntax
$CountPages = $Pager->countPages($CountOfItems);
Input
$CountOfItems (integer)
total number of items
Return
$CountPages (integer)
total number of pages

firstItemOfPage

Returns the 0-based index of the first item on a page.

Syntax
$Index = $Pager->firstItemOfPage($Page);
Input
$Page (integer)
page index
Return
$Index (integer)
index of the first item

items

Returns all objects of a page.

Syntax
$aItems = $Pager->items($Page);
Input
$Page (integer)
current page number
Return
$aItems (ref.array.object)
list of objects

lastItemOfPage

Returns the 0-based index of the last item on a page.

Syntax
$Index = $Pager->lastItemOfPage($Page);
Input
$Page (integer)
page index
Return
$Index (integer)
index of the last item

new

Creates a new pager object.

Syntax
$Pager = DE_EPAGES::Presentation::API::Object::Pager->new($hInfo);
Input
$hInfo (ref.hash)
parameters with keys
  • Servlet - servlet object
  • ViewAction - view action name (default=View)
  • ObjectID - object id for ViewAction (required unless Servlet is given)
  • Page - page number (default=1)
  • PageSize - max. number of items per page (default=10)
  • PagerSize - max. number of pages in pager area (default=10)
  • OrderBy - sort attribute name (default=Alias)
  • OrderDesc - sort direction (0=ascending, 1=descending, default=0)
  • UriParameters - additinal parameter that are included in
    the links, for example to next and previous page
    - ref-hash.string
Return
$Pager (object)
pager

orderBy

Returns the attribute by which the results are sorted.

Syntax
$OrderBy = $Pager->orderBy;
Return
$OrderBy (string)
name of the attribute for sorting of results

orderDesc

Returns the sort direction (ascending or descending).

Syntax
$OrderDesc = $Pager->orderDesc;
Return
$OrderDesc (string)
true if the results are sorted in descending direction

page

Returns the values that are required to display the current page. Runs $Pager->statistic if statistic wasnt run before. Calls $Pager->items($Page) for current page.

Syntax
$hPagerVars = $Pager->page
Example
print $Pager->page->{'Pager'}->{'LastPage'};
# create a Pager from a UI (ViewAction) function
sub ViewPagedChildren {
    my $self = shift;
    my $Servlet = shift;

    my $Pager = DE_EPAGES::Presentation::API::Object::PagerChildren->new({
        'Servlet' => $Servlet,
        'Object' => $Servlet->object
    });
    return $Pager->page;
}
Return
$hPagerVars (ref.hash)
pager variables that can be used inside a template.
  • Pager - pager info (hash ref)
    • Items - list of items on this page - ref.array.hash
    • FirstPage - 1 - integer
    • LastPage- total number of pages - integer
    • Page - current page number - integer
    • Pages - array of pages - ref.array.hash
      • Page - page number - integer
      • URLPage - page link - string

    • NextPage - next page number -integer
    • PreviousPage - previous page number -integer
    • ItemOffset - offset for items on this page - integer
    • URL - current page link - string

pageOfItem

Returns the page where object with given objectid is positionate. Can used if pager doesnt contain real objects.

Syntax
$Page = $Pager->pageOfItem(sub{ ... });
Example
my $ObjectID = 0815;
$Page = $Pager->pageOfItem(sub{
    my ($Object) = @_;
    return $Object->id eq $ObjectID ? 1 : 0;
});
Input
$FindFunction (integer)
function that makes a comparison on pager items
Return
$Page (integer)
page of pager where object is find

pageOfItemByObjectID

Returns the page where object with given objectid is positionate. Can only used if pager contains real objects.

Syntax
$Page = $Pager->pageOfItemByObjectID($ObjectID);
Input
$ObjectID (integer)
id of object to search
Return
$Page (integer)
page of pager where object is find

sortObjects

Sorts the objects according to the 'OrderBy' and 'OrderDesc' attributes, which are set by corresponding input fields.

Syntax
$aSortedObjects = $Pager->sortObjects($aObjects);
Input
$aObjects (ref.array.object)
list of objects
Return
$aSortedObjects (ref.array.object)
sorted list of objects

statistic

Calls countPages and countItems to collect required information for all pages.

Syntax
$Pager->statistic;