Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
Class::DBI::Pager(3)  User Contributed Perl Documentation Class::DBI::Pager(3)

NAME
       Class::DBI::Pager - Pager utility for Class::DBI

SYNOPSIS
	 package CD;
	 use base qw(Class::DBI);
	 __PACKAGE__->set_db(...);

	 use Class::DBI::Pager;	       # just use it

	 # then, in client code!
	 package main;

	 use CD;
	 my $pager = CD->pager(20, 1);	   # ($items_per_page, $current_page)
	 my @disks = $pager->retrieve_all;

DESCRIPTION
       Class::DBI::Pager is a plugin for Class::DBI, which glues Data::Page
       with Class::DBI.	This module reduces your work a	lot, for example when
       you have	to do something	like:

	 * retrieve objects from a database
	 * display objects with	20 items per page

       In addition, your work will be reduced more, when you use Template-
       Toolkit as your templating engine. See "EXAMPLE"	for details.

EXAMPLE
	 # Controller: (MVC's C)
	 my $query    =	CGI->new;
	 my $template =	Template->new;

	 my $pager    =	Film->pager(20,	$query->param('page') || 1);
	 my $movies   =	$pager->retrieve_all;
	 $template->process($input, {
	     movies => $movies,
	     pager  => $pager,
	 });

	 # View: (MVC's	V)
	 Matched [% pager.total_entries	%] items.

	 [% WHILE (movie = movies.next)	%]
	 Title:	[% movie.title | html %]
	 [% END	%]

	 ### navigation	like: [1] [2] [3]
	 [% FOREACH num	= [pager.first_page .. pager.last_page]	%]
	 [% IF num == pager.current_page %][[% num %]]
	 [% ELSE %]<a href="display?page=[% num	%]">[[%	num %]]</a>[% END %]
	 [% END	%]

	 ### navigation	like: prev 20 |	next 20
	 [% IF pager.previous_page %]
	 <a href="display?page=[% pager.previous_page %]">
	 prev [% pager.entries_per_page	%]</a> |
	 [% END	%]
	 [% IF pager.next_page %]
	 <a href="display?page=[% pager.next_page %]">
	 next [% pager.entries_per_page	%]</a>
	 [% END	%]

NOTE / TODO
       This modules internally retrieves itertors, then	creates	"Data::Page"
       object for paging utility. Using	SQL clauses "LIMIT" and/or "OFFSET"
       with "DBIx::Pager" might	be more	memory efficient.

AUTHOR
       Tatsuhiko Miyagawa <miyagawa@bulknews.net>

       Original	idea by	Tomohiro Ikebe <ikebe@cpan.org>

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

SEE ALSO
       Class::DBI, Data::Page

perl v5.32.1			  2006-03-01		  Class::DBI::Pager(3)

NAME | SYNOPSIS | DESCRIPTION | EXAMPLE | NOTE / TODO | AUTHOR | SEE ALSO

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=Class::DBI::Pager&sektion=3&manpath=FreeBSD+13.0-RELEASE+and+Ports>

home | help