cakePHP1.2 PaginatorHelperの拡張

July 18, 2009,
tags: cakephp paginator php 拡張


このエントリーをはてなブックマークに追加

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>

これで、表示件数が楽に表示できます。

comments powered by Disqus