CI_Pagination
「CI_Pagination」ライブラリクラスは、ページ送りのリンクを生成する機能を提供します。
ページネーション(ページ送り)とは、Googleなどのサイトで見られる、同種の情報をページ分割して Webサイトを表現する方法です。
CodeIgniterのページネーションは、モデルクラスと連携する機能はありません。
単に設定情報を元にリンクを生成するだけです。
CI_Paginationのロード
「CI_Loader」クラスの「library()」メソッドで 「CI_Pagination」クラスをロードします。
CI_Paginationクラスはロードされただけでは何も機能させることはできません。 ページネーションリンクを生成するための情報をセットする必要があります。
CI_Paginationのインスタンスに、ページネーション情報をセットする方法は3つあります。
- application/config/pagination.php設定ファイルに定義する。
- 「CI_Loader」クラスの「library()」メソッドの第二引数に指定する。
- 「CI_Pagination」クラスの「initialize()」メソッドでセットする。
$this->pagination->initialize($config);
ページネーションリンクの生成
create_links()
「CI_Pagination」ライブラリクラスをロードして、リンク生成情報をセットしたら 「create_links()」メソッドでページネーションリンクを生成します。
「create_links()」メソッドは、ページネーションリンク文字列を返すので、リンクデータをビューに渡し ビューで描画します。
- application/views/item_list.php
$config['total_rows'] = 122;
$this->load->library('pagination', $config);
$data['page_link'] = $this->pagination->create_links();
$this->load->view('item_list', $data);
<?php echo $page_link; ?>
</div>
CI_Paginationの設定項目
設定項目は31項目ありますが、最低限必要な設定項目は2つです。 その他は任意で必要な設定項目だけ指定することができます。
必須設定項目
- base_url
- total_rows
ページの基本URIパスを設定します。
通常は「/コントローラクラス/アクションメソッド/」となると思います。
データレコードの総数を指定します。
この数値から1ページ当たりのデータレコード数を割った数がページ数になります。
URIに関連する設定項目
- per_page
- デフォルト値 = 10
- uri_segment
- デフォルト値 = 3
- use_page_numbers
- デフォルト値 = FALSE
- page_query_string
- デフォルト値 = FALSE
- query_string_segment
- デフォルト値 = 'per_page'
- prefix
- suffix
1ページ当たりのデータレコード数です。
「per_page」の値 × (ページ番号 - 1)がオフセットに値なります
http://your.site/item/list/20/ // 2ページ目
http://your.site/item/list/40/ // 3ページ目
オフセット値がURIパスの何セグメント目とするか設定します。
「http://your.site/コントローラ/アクションメソッド/オフセット/」の場合は「3」となります。
「TRUE」を設定すると、オフセット値の代わりにページ番号がURIパスに付加されます。
$config['use_page_numbers'] = TRUE;
http://your.site/item/list/2/ // 2ページ目
http://your.site/item/list/3/ // 3ページ目
オフセット値(または、ページ番号)をURIパスセグメントに含めるか、GETクエリ文字列とするか設定します。
「application/config/config.php」の「$config['enable_query_strings']」を
「TRUE」に設定している場合に、この設定値を「TRUE」に設定します。
$config['page_query_string'] = TRUE;
http://your.site/?c=item&m=list&per_page=20 // 2ページ目
http://your.site/?c=item&m=list&per_page=40 // 3ページ目
「page_query_string」を「TRUE」に設定している場合の オフセット値(または、ページ番号)を示すGETクエリ文字列を設定します。
$config['query_string_segment'] = 'offset';
http://your.site/?c=item&m=list&offset=20 // 2ページ目
http://your.site/?c=item&m=list&offset=40 // 3ページ目
URIパスに付加されるオフセット値(または、ページ番号)文字列の前に付ける文字列を指定します。
http://your.site/item/list/offset20/ // 2ページ目
http://your.site/item/list/offset40/ // 3ページ目
URIパスに付加されるオフセット値(または、ページ番号)文字列の後ろに付ける文字列を指定します。
http://your.site/item/list/20offset/ // 2ページ目
http://your.site/item/list/40offset/ // 3ページ目
リンク表現に関連する設定項目 一番上に戻る
- display_pages
- デフォルト値 = TRUE
- num_links
- デフォルト値 = 2
- anchor_class
- full_tag_open
- full_tag_close
ページ番号のリンクを生成するか設定します。「TRUE」でページ番号のリンクを生成します。
「FALSE」で「最初」、「最後」、「前へ」と「次へ」のリンクのみ生成されます。
現在のページ番号の左右にいくつのページ番号リンクを生成するか設定します。
ページネーションリンクの「<a>」アンカータグに「clsas=」属性を設定します。
<a class="page-link" href="/item/list/ ">1</a>
<a class="page-link" href="/item/list/20/ ">2</a>
ページネーションリンク全体を階層化するHTMLタグの先頭タグ文字列を指定します。
ページネーションリンク全体を階層化するHTMLタグの閉じタグ文字列を指定します。
$config['full_tag_close'] = '</div>';
最初のページリンクに関連する設定項目 一番上に戻る
- first_link
- デフォルト値 = '‹ First'
- first_tag_open
- first_tag_close
- デフォルト値 = ' '
- first_url
最初のページへのリンクを表わす文字列を指定します。
最初のページへのリンクタグを階層化するHTMLタグの開始タグ文字列を指定します。
最初のページへのリンクタグを階層化するHTMLタグの閉じタグ文字列を指定します。
$config['first_tag_close'] = '</span>';
最初のページへのリンクは、通常「base_url」がセットされますが、これを変更したい場合、「first_url」で指定します。
最後のページリンクに関連する設定項目 一番上に戻る
- last_link
- デフォルト値 = 'Last ›'
- last_tag_open
- デフォルト値 = ' '
- last_tag_close
最後のページへのリンクを表わす文字列を指定します。
最後のページへのリンクタグを階層化するHTMLタグの開始タグ文字列を指定します。
最後のページへのリンクタグを階層化するHTMLタグの閉じタグ文字列を指定します。
$config['last_tag_close'] = '</span>';
次へのページリンクに関連する設定項目 一番上に戻る
- next_link
- デフォルト値 = '>'
- next_tag_open
- デフォルト値 = ' '
- next_tag_close
- デフォルト値 = ' '
次のページへのリンクを表わす文字列を指定します。
次のページへのリンクタグを階層化するHTMLタグの開始タグ文字列を指定します。
次のページへのリンクタグを階層化するHTMLタグの閉じタグ文字列を指定します。
$config['next_tag_close'] = '</span>';
前へのページリンクに関連する設定項目 一番上に戻る
- prev_link
- デフォルト値 = '<'
- prev_tag_open
- デフォルト値 = ' '
- prev_tag_close
前のページへのリンクを表わす文字列を指定します。
前のページへのリンクタグを階層化するHTMLタグの開始タグ文字列を指定します。
前次のページへのリンクタグを階層化するHTMLタグの閉じタグ文字列を指定します。
$config['prev_tag_close'] = '</span>';
現在のページリンクに関連する設定項目 一番上に戻る
- cur_tag_open
- デフォルト値 = ' <strong>'
- cur_tag_close
- デフォルト値 = '</strong>'
- num_tag_open
- デフォルト値 = ' '
- num_tag_close
現在のページ番号のリンクタグを階層化するHTMLタグの開始タグ文字列を指定します。
現在のページ番号のリンクタグを階層化するHTMLタグの閉じタグ文字列を指定します。
$config['cur_tag_close'] = '</span>';
その他のページリンクに関連する設定項目 一番上に戻る
ページ番号のリンクタグを階層化するHTMLタグの開始タグ文字列を指定します。
ページ番号のリンクタグを階層化するHTMLタグの閉じタグ文字列を指定します。
$config['num_tag_close'] = '</span>';
<span id="cur-tag"><a href="/item/list/60/">4</a></span>
<span id="num-tag"><a href="/item/list/80/">5</a></span>