Data::Page::Navigation

d:id:iox:20070618:1182158941の記事にid:fbisさんからブックマークでData::Page::Navigationを使うとさらに便利と教えてもらいましたので、早速少し使ってみました。

このモジュールは、Data::Pageモジュールにメソッドを加えたモジュールのようで、pages_per_navigation()をコールすることによってナビゲーションに表示する項目に制限をかけることができるようです。

使い方はこんな感じ。

CGI側:

my $pager = Data::Page->new(100,  # トータルのエントリ数
                            10,   # ページ毎に表示するエントリ数
                            1,    # 表示するページ
                           ); 
$pager->pages_per_navigation(3);  # ナビゲーションに表示する項目を3つまでに制限

View側(Tempalte Toolkit):

[% FOREACH num= pager.pages_in_navigation %]
  [% IF num == pager.current_page %]% num %
  [% ELSE %][[% num %]]
  [% END %]
[% END %]

データ数が多い場合に、全て表示するのではなく制限したい場合にとても便利ですね。
id:fbisさん、情報ありがとうございました。