CakePHP2.0のpaginateをtwitter bootstrapで組み込んでみる

かゆいところに手が届かない。。

http://twitter.github.com/bootstrap/components.html#pagination
のところ

bootstrapだと、現在のページのliにclassとしてdisabledを付与しなくてはいけないのだが、CakePHPのpaginatorHelperではcurrentClassがcurrent固定のため、ここを修正する必要がある。

numbersメソッドの$currentClassを以下のように変更
$currentClass = ‘current’;

$currentClass = ‘disabled’;

そしてもう一つ、現在ページはaタグなしのspanがデフォのCakePHP。ただbootstrapではaタグがないと崩れてしまうので、PaginatorHelperの745行目を修正

$out .= $this->Html->tag($tag, $i, array(‘class’ => $currentClass));

$out .= $this->Html->tag($tag, $this->link($i, array(‘page’ => $i), $options), array(‘class’ => $currentClass));

これで実際のviewの方を以下のように記述すればとりあえず表示できる。

 

もっと上手くできれば良いんだけど。。

2012.5.8追記
CSSを以下のようにしてしまっても対応可能。どっちにしろスマートな対応じゃないけど。。

.pagination li.current {
-moz-border-bottom-colors: none;
-moz-border-image: none;
-moz-border-left-colors: none;
-moz-border-right-colors: none;
-moz-border-top-colors: none;
border-color: #DDDDDD;
border-style: solid;
border-width: 1px 1px 1px 0;
float: left;
line-height: 34px;
padding: 0 14px;
text-decoration: none;
background-color: #F5F5F5;
color: #999999;
cursor: default;
}