Class::DBI::Pager - クラスDBIのページャー
参考
>http://cpan.uwinnipeg.ca/htdocs/Class-DBI-Pager/Class/DBI/Pager.html
Class::DBI::Pager - Pager utility for Class::DBI
- 親モジュール 「CD」
package CD; use base qw(Class::DBI); __PACKAGE__->set_db(...); use Class::DBI::Pager; # just use it
- 子モジュール 「main」
package main; use CD; my $pager = CD->pager(20, 1); # ($取得する個数, $現在位置) my @disks = $pager->retrieve_all; # 全部持ってくる。
- 使用例
- 子モジュール
# 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, } );
-
- 表示用TT
# 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 %]