Data::Page::Navigationリリースしました
CPANのindexerが復活したようなので午前中にアップしたData::Page::Navigationもでてくるようになりました。
関連エントリー
1st Data::Pageとページナビゲーション
2nd Data::Page::Navigation いい感じのページナビゲーション
使い方は、
use Data::Page::Navigation;
とuseするだけです。
あとは普通に
my $pager = Data::Page->new(100,10,2);
とData::Pageのオブジェクトを生成します。すると、表示するページ番号のリストをつくるpages_in_navigationメソッドが使えるようになってます。
my @list = $pager->pages_in_navigation();
Catalystでの例ですが、Class::DBI::PagerやDBIx::Classと一緒に使えるので、
use Data::Page::Navigation; sub default : Private { my ( $self, $c ) = @_; $c->stash->{entries}=MyApp::Model::DBIC::Entry->search(); $c->stash->{template} = 'list.tt.html'; $c->forward('View::TT'); }
などとコントローラーの方は今まで通りに書くだけで、テンプレート中で
[% pager = c.stash.entries.pager %] [% FOREACH num = pager.pages_in_navigation %] [% IF num == pager.current_page %][% num %][% ELSE %]<a href="/list?page=[% num %]">[% num %]</a>[% END %] [% END %]
とpages_in_navigationメソッドが使えます。
ちょっと便利。