INSTALLATION
To install this module type the following:
perl Makefile.PL
make
make test
make install
NAME
Data::Pageset - Page numbering and page sets
SYNOPSIS
use Data::Pageset;
my $page_info = Data::Pageset->new({
'total_entries' => $total_entries,
'entries_per_page' => $entries_per_page,
# Optional, will use defaults otherwise.
'current_page' => $current_page,
'pages_per_set' => $pages_per_set,
});
# General page information
print " First page: ", $page_info->first_page, "\n";
print " Last page: ", $page_info->last_page, "\n";
print " Next page: ", $page_info->next_page, "\n";
print " Previous page: ", $page_info->previous_page, "\n";
# Results on current page
print "First entry on page: ", $page_info->first, "\n";
print " Last entry on page: ", $page_info->last, "\n";
# Can add in the pages per set after the object is created
$page_info->pages_per_set($pages_per_set);
# Page set information
print "First page of previous page set: ", $page_info->previous_set, "\n";
print " First page of next page set: ", $page_info->next_set, "\n";
# Print the page numbers of the current set
foreach my $page (@{$page_info->pages_in_set()}) {
if($page == $page_info->current_page()) {
print "$page ";
} else {
print "$page ";
}
}
DESCRIPTION
The object produced by Data::Pageset can be used to create page
navigation, it inherits from Data::Page and has access to all methods
from this object.
In addition it also provides methods for dealing with set of pages, so
that if there are too many pages you can easily break them into chunks
for the user to browse through.
The object can easily be passed to a templating system such as Template
Toolkit or be used within a script.
METHODS
new()
use Data::Pageset;
my $page_info = Data::Pageset->new({
'total_entries' => $total_entries,
'entries_per_page' => $entries_per_page,
# Optional, will use defaults otherwise.
'current_page' => $current_page,
'pages_per_set' => $pages_per_set,
});
This is the constructor of the object, it requires an anonymous hash
containing the 'total_entries', how many data units you have, and the
number of 'entries_per_page' to display. Optionally the 'current_page'
(defaults to page 1) and pages_per_set (how many pages to display) can
be added. If the pages_per_set are not passed in they can be added
later, though obviously if it is never added you will not be able to use
the page set specific functionality.
pages_per_set()
$page_info->pages_per_set($number_of_pages_per_set);
Calling this method initalises the calculations required to use the
paging methods below. The value can also be passed into the constructor
method new().
If called without any arguments it will return the current number of
pages per set.
previous_set()
print "Back to previous set which starts at ", $page_info->previous_set(), "\n";
This method returns the page number at the start of the previous page
set. undef is return if pages_per_set has not been set.
next_set()
print "Next set starts at ", $page_info->next_set(), "\n";
This method returns the page number at the start of the next page set.
undef is return if pages_per_set has not been set.
pages_in_set()
foreach my $page_num (@{$page_info->pages_in_set()}) {
print "Page: $page_num \n";
}
This method returns an array ref of the the page numbers within the
current set. undef is return if pages_per_set has not been set.
EXPORT
None by default.
AUTHOR
Leo Lapworth LLAP@cuckoo.org
SEE ALSO
Data::Page.
COPYRIGHT
Copyright (C) 2000-2, Leo Lapworth
This module is free software; you can redistribute it or modify it under
the same terms as Perl itself.
With thanks to Foxtons for letting me develop this in their time and
to Leon for being orange - or being helpful, I forget.