#CakePHP3のPaginator独自タグの設定が楽になった!
CakePHPにはデフォルトでPaginatorの機能がついていますが、そこで出力されるタグがデザインのページャと合わないことはよくあると思います。
##CakePHP2では・・・
<div class="paging">
<?php echo $this->Paginator->prev('< 前', array('tag' => 'span'), null, array('class' => 'disabled')); ?>
<?php echo $this->Paginator->numbers(array('tag' => 'span','before' => ' ','after' => ' ','separator' => ' ','modulus' => 4)); ?>
<?php echo $this->Paginator->next('次 >', array('tag' => 'span'), null, array('class' => 'disabled')); ?>
</div>
こんな感じで引数に色々設定することである程度設定可能でした。
でも、限界があってデザインに合わせるために結局PaginatorHelperを継承した独自のヘルパーを作成する羽目になることなってよくありましたよね・・・
##CakePHP3では!
こんな感じで設定可能です。
###/config/paginator-templates.php
<?php
return [
'nextActive' => '<span class="next"><a rel="next" href="{{url}}">{{text}}</a></span>',
'nextDisabled' => '<span class="disabled">{{text}}</span>',
'prevActive' => '<span class="prev"><a rel="prev" href="{{url}}">{{text}}</a></span> | ',
'prevDisabled' => '<span class="disabled">{{text}}</span> | ',
'number' => '<span><a href="{{url}}">{{text}}</a></span> | ',
'current' => '<span class="current">{{text}}</span> | ',
];
###Controller
public $helpers = [
'Paginator' => ['templates' => 'paginator-templates']
];
###View
<div class="paging">
<?= $this->Paginator->prev('<< ' . __('prev')); ?>
<?= $this->Paginator->numbers(); ?>
<?= $this->Paginator->next(__('next') . ' >>'); ?>
</div>
デフォルトの設定がコアのPaginatorヘルパーに設定されていますので、それを参考に独自でタグを設定するといいでしょう。
これでデザイナーさんからCakeにあわないようなデザインのページャが来ても安心!