package Template::Plugin::Pageset;
use strict;
use vars qw($VERSION);
use Data::Page::Pageset;
use Template::Plugin;
use base qw(Template::Plugin);
our $VERSION = sprintf "%d.%02d", q$Revision: 1.02 $ =~ /: (\d+)\.(\d+)/;
sub new {
my ($proto, $context, $page, $param ) = @_;
my $class = ref($proto) || $proto;
($page, $param) = ($context, $page, $param )
unless ref($context) =~ /^Template::/;
my $pageset = Data::Page::Pageset->new( $page, $param );
return $pageset;
}
1;
=head1 NAME
Template::Plugin::Pageset - wrapper for Data::Page::Pageset
=head1 SYNOPSIS
# pager is a Data::Page object
[% USE pageset = Pageset( pager ) %] # pages_per_set is using default 10
[% USE pageset = Pageset( pager, 7 ) %] # pages_per_set is 7
[% USE pageset = Pageset( pager, { pages_per_set => 12 } ) %] # set max_pagesets to be 12
[% USE pageset = Pageset( pager, { max_pagesets => 4 } ) %] # set max_pagesets to be 4
=head1 DESCRIPTION
[% IF pageset.previous_pageset %]
Previous Pageset
[% END %]
[% FOREACH chunk = pageset.total_pagesets %]
[% IF chunk.is_current %]
[% FOREACH num = [ chunk.first .. chunk.last ] %]
[% IF num == pager.current_page %]
[% num %]
[% ELSE %]
[% num %]
[% END %]
[% END %]
[% ELSE %]
[% chunk %]
[% END %]
[% END %]
[% IF pageset.next_pageset %]
Next Pageset
[% END %]
=head1 See Also
L is the core one, more methods see that pod.
=head1 AUTHOR
Chun Sheng,
=head1 COPYRIGHT
Copyright (C) 2004-2005, Chun Sheng
This module is free software; you can redistribute it or modify it
under the same terms as Perl itself.
=cut