栃木県のJavaエンジニア、WEBプログラマーのためのサイト

2016.01.18[CakePHP] ページネーションのHTMLをカスタマイズ

Paginatorヘルパー

CakePHP2では、PaginatorHelperを使ってページネーションを生成しますが、そのまま使うとSPANタグ使ったHTMLを出力します。でもコーダーから渡されたHTMLでは、別タグを使っていたりクラス名を指定したかったりしますよね。
そんな場合は、オプション引数を指定してあげると思い通りのHTMLを出力させることが出来ます。

例えば、次のHTMLをCakePHPのビューに直すと

<div class="pager">
  <div class="row">
    <div class="pager_view">
      <ul class="pager_list">
        <li class="btn_prev"><a href="#"><</a></li>
        <li class="active"><span>1</span></li>
        <li><a href="#">2</a></li>
        <li><a href="#">3</a></li>
        <li><a href="#">4</a></li>
        <li><a href="#">5</a></li>
        <li class="btn_next"><a href="#">></a></li>
      </ul>
    </div>
  </div>
</div>

オプション引数に tag, class, currentTag 等を指定してあげると、同じようなHTMLを出力出来ます。

<div class="pager">
  <div class="row">
    <div class="pager_view">
      <ul class="pager_list">
        <?= $this->Paginator->prev('<', ['tag' => 'li', 'class' => 'btn_prev', 'disabledTag' => 'a']) ?>
        <?= $this->Paginator->numbers(['first' => 1, 'last' => 1, 'ellipsis' => ' ... ', 'tag' => 'li', 'currentTag' => 'span', 'currentClass' => 'active', 'separator' => '']) ?>
        <?= $this->Paginator->next('>', ['tag' => 'li', 'class' => 'btn_next', 'disabledTag' => 'a']) ?>
      </ul>
    </div>
  </div>
</div>

参考