The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

DBIx::MoCo::Pageset - A flexible pager utility for DBIx::MoCo using Data::Pageset

VERSION

Version 0.01

SYNOPSIS

  ## DBIx::MoCo class.

  package Blog::User;
  use base qw 'Blog::MoCo';
  
  use DBIx::MoCo::Pageset;
  
  __PACKAGE__->table('user');
  
  
  ## your client code.
  ## you can easily use pager util.
  
  use Blog::User;
  my $pager = Blog::User->pager( {
            entries_per_page => 20,
            current_page     => 1,
            pages_per_set    => 10,
        } );
  my @users = $pager->retrieve_all;

DESCRIPTION

DBIx::MoCo::Pageset is pager class for DBIx::MoCo using <Data::Pageset>. This module referred to <Class::DBI::Pageset> and made it.

EXAMPLE

client code

  ## your client code.
  ## you can easily use pager util.
  
  use CGI;
  use Template;
  use Blog::User;
  
  my $q     = CGI->new;
  my $pager = Blog::User->pager( {
            entries_per_page => 20,
            current_page     => $q->param('p') || 1,
            pages_per_set    => 10,
        } );
  my $entries = $pager->retrieve_all;
  
  my $template = Template->new;
  $template->process($input, {
      pager  => $pager,
      entries => $entries,
  });

template (TT)

  [% IF pager.total_entries %][% pager.entries_per_page * ( pager.current_page - 1 ) + 1 %][% ELSE %]0[% END # END IF %]
   - 
  [% pager.entries_per_page * ( pager.current_page - 1 ) + pager.entries_on_this_page %] entries
  ( [% pager.total_entries %] total entries )
  
  [% IF pager.previous_page %]
  <a href="/path/?p=[% pager.previous_page %]">prev</a>
  [% ELSE %]
  prev
  [% END # END IF %]
  
  [% FOREACH num IN pager.pages_in_set %]
  [% IF num == pager.current_page %]<strong>[% num %]</strong>
  [% ELSE %]<a href=/path/?p=[% num %]">[% num %]</a>
  [% END # END IF %]
  [% END # END FOREACH %]
  
  [% IF pager.next_page %]
  <a href="/path/?p=[% pager.next_page %]">prev</a>
  [% ELSE %]
  next
  [% END # END IF %]
  
  [% FOREACH e IN entries %]
  [% e.title | html %]
  [% END # END %]

SEE ALSO

DBIx::MoCo, Data::Pageset

When I use other O/R Mapper, please use Class::DBI::Pageset, DBIx::Class::ResultSet::Data::Pageset

BUGS

Please report any bugs or suggestions at http://rt.cpan.org/NoAuth/Bugs.html?Dist=DBIx-MoCo-Pageset

AUTHOR

syushi matsumoto, <matsumoto at alink.co.jp>

COPYRIGHT AND LICENSE

Copyright (C) 2009 Alink INC. all rights reserved.

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.