cakePHP1.2 PaginatorHelperの拡張
Paginatorで表示件数とか出すのが意外とめんどくさい。
viewにガシガシ書いていくのはなんかかっこ悪いので、PaginatorHelperを拡張してみました。
app/views/helper/spaginator.php
<?php
require_once "paginator.php";
class SpaginatorHelper extends PaginatorHelper
{
function limit($limit = null,$spname = "件"){
$model = $this->params['controller'];
if(!is_numeric($limit)){
$limit = 10;
}
if(!isset($this->params['paging'][$model]['defaults']['limit']) && $limit == 10){
$this->params['paging'][$model]['defaults']['limit'] = 10;
}
if(!isset($this->params['named']['limit'])){
$this->params['named']['limit'] = $this->params['paging'][$model]['defaults']['limit'];
}
if($this->params['named']['limit'] == $limit){
return $limit.$spname;
}
return $this->link("$limit$spname",array("limit" => $limit));
}
}
?>
とこんな感じに、Extendsさせてあげればおk。
あとはview側で、こんな風に書いてあげればいいんです。
表示件数:
<?php echo $spaginator->limit(10) ?> | <?php echo $spaginator->limit(20) ?> | <?php echo $spaginator->limit(50) ?>
</p>
これで、表示件数が楽に表示できます。