NAME

Activator::Pager - Object to assist in implementing pagination interfaces

SYNOPSIS

use Activator::Pager;
my $pager = new Activator::Pager( $offset, $length, $count, $total );

METHODS

new

Constructor to set internal variables.

Arguments: $offset - offset of the first item in this set ( 0 indexed ) $page_size - number of items per page $set_size - actual number of items in this set $total - total items available

Returns: $self

Sample:

n == highest possible offset
p == highest possbile page

$self = bless( {
  next_offset => 5,  -- offset of next page ( 0..n ) or undef if you are 
                        on last page
  set_size => 5,     -- constructor argument
  prev_offset => 0,  -- offset of previous page ( 0..n ) or undef if you 
                        are on first page
  cur_page => 1,     -- the current page number of $offset
  last_page => 21,   -- the last page page for the total passed in ( 1..p )
  last_offset => 100,-- the last possible offset based on number pages ( 0..n )
  total => 103,      -- constructor argument
  next_page => 2,    -- the next possible page ( 1..p ) or undef if on 
                        last page ( offset == last_offset )
  page_size => 5     -- constructor argument
  to => 5,           -- the last member number of current page ( 1..n+1 )
  from => 1,         -- the first member number of current page ( offset+1 )
  prev_page => 1,    -- the previous page ( 1..p ) or undef if on first 
                        page ( offset == 0 )
  offset => 0        -- constructor argument
}, Activator::Pager );

NOTE: we need to document the assuption of offset not being $to

FUTURE WORK

Implement getter functions if anyone wants it. We just access the vars directly at this time.

This module would be nicer if it did more magic such that I can include pagination trivially in a template.

AUTHOR

Karim A. Nassar

COPYRIGHT

Copyright (c) 2007 Karim A. Nassar <karim.nassar@acm.org>

You may distribute under the terms of either the GNU General Public License or the Artistic License, as specified in the Perl README file.