64日目:Pagerはカスタムヘルパーで
ヘルパーでやるのが正解だろうなぁと思って調べてみたら、既にやっている方がいました。ありがたく参考にさせていただきました。
Milano::Monolog: ページャーをリファクタリングする
http://rebecca.ac/milano/mt/archives/001799.html
自分なりにちょっとだけ変更してあります。
/var/www/podtv/lib/helper/PagerHelper.php
<?php function pager_navigation( $pager, $uri) { $navigation = ''; if ( $pager->haveToPaginate()) { $uri .= (preg_match( '/\?/', $uri) ? '&' : '?'); $uri .= 'page='; $navigation .= link_to( '《', $uri .$pager->getFirstPage()); $navigation .= " "; $navigation .= link_to( '<', $uri .$pager->getPreviousPage()); $navigation .= " "; foreach ( $pager->getLinks() as $page) { if ( $page == $pager->getPage()) { $navigation .= '<b><font size="+2">' .$page .'</font></b>' ; } else { $navigation .= link_to( $page, $uri .$page); } if ( $page != $pager->getCurrentMaxLink()) { $navigation .= ' - '; } else { $navigation .= ' '; } } $navigation .= link_to( '>', $uri .$pager->getNextPage()); $navigation .= " "; $navigation .= link_to( '》', $uri .$pager->getLastPage()); $navigation .= " "; } return $navigation; } ?>
これの呼び出しは、
/var/www/podtv/apps/frontend/modules/channel/templates/listSuccess.php
<?php use_helper('Pager'); ?> <?php echo pager_navigation( $pager, 'channel/list'); ?>
で、実行結果
http://podtvlabo.com/channel/list/page/2
fontタグとか使ってるのはまぁ目をつぶって、一応できました。
後は、filterがうまく動けば、必要なものは大体そろうのかな?