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

更新日: 2016年2月25日

実行時間: 0.0231

CI_Pagination

 「CI_Pagination」ライブラリクラスは、ページ送りのリンクを生成する機能を提供します。

 ページネーション(ページ送り)とは、Googleなどのサイトで見られる、同種の情報をページ分割して Webサイトを表現する方法です。

前へ   1 2 3 4 5   次へ

 CodeIgniterのページネーションは、モデルクラスと連携する機能はありません。
 単に設定情報を元にリンクを生成するだけです。

CI_Paginationのロード

 「CI_Loader」クラスの「library()」メソッドで 「CI_Pagination」クラスをロードします。

    $this->load->library('pagination');

 CI_Paginationクラスはロードされただけでは何も機能させることはできません。  ページネーションリンクを生成するための情報をセットする必要があります。

 CI_Paginationのインスタンスに、ページネーション情報をセットする方法は3つあります。

  1. application/config/pagination.php設定ファイルに定義する。
  2. 「CI_Loader」クラスの「library()」メソッドの第二引数に指定する。
  3. $this->load->library('pagination', $config);
  4. 「CI_Pagination」クラスの「initialize()」メソッドでセットする。
  5. $this->load->library('pagination');
    $this->pagination->initialize($config);

ページネーションリンクの生成

create_links()

 「CI_Pagination」ライブラリクラスをロードして、リンク生成情報をセットしたら 「create_links()」メソッドでページネーションリンクを生成します。

 「create_links()」メソッドは、ページネーションリンク文字列を返すので、リンクデータをビューに渡し ビューで描画します。

    $config['base_url'] = '/item/list/';
    $config['total_rows'] = 122;
    $this->load->library('pagination', $config);
    $data['page_link'] = $this->pagination->create_links();
    $this->load->view('item_list', $data);
    • application/views/item_list.php
    <div id="pagination">
      <?php echo $page_link; ?>
    </div>

CI_Paginationの設定項目

 設定項目は31項目ありますが、最低限必要な設定項目は2つです。 その他は任意で必要な設定項目だけ指定することができます。

必須設定項目

  • base_url
  • ページの基本URIパスを設定します。
    通常は「/コントローラクラス/アクションメソッド/」となると思います。

    $config['base_url'] = '/item/list/';
  • total_rows
  • データレコードの総数を指定します。
    この数値から1ページ当たりのデータレコード数を割った数がページ数になります。

    $config['total_rows'] = '122';

URIに関連する設定項目

  • per_page
    • デフォルト値 = 10

     1ページ当たりのデータレコード数です。
     「per_page」の値 × (ページ番号 - 1)がオフセットに値なります

    $config['per_page'] = 20;
    http://your.site/item/list/ // 1ページ目
    http://your.site/item/list/20/ // 2ページ目
    http://your.site/item/list/40/ // 3ページ目
  • uri_segment
    • デフォルト値 = 3

     オフセット値がURIパスの何セグメント目とするか設定します。
    「http://your.site/コントローラ/アクションメソッド/オフセット/」の場合は「3」となります。

    $config['uri_segment'] = 3;
  • use_page_numbers
    • デフォルト値 = FALSE

     「TRUE」を設定すると、オフセット値の代わりにページ番号がURIパスに付加されます。

    $config['per_page'] = 20;
    $config['use_page_numbers'] = TRUE;
    http://your.site/item/list/ // 1ページ目
    http://your.site/item/list/2/ // 2ページ目
    http://your.site/item/list/3/ // 3ページ目
  • page_query_string
    • デフォルト値 = FALSE

     オフセット値(または、ページ番号)をURIパスセグメントに含めるか、GETクエリ文字列とするか設定します。
     「application/config/config.php」の「$config['enable_query_strings']」を 「TRUE」に設定している場合に、この設定値を「TRUE」に設定します。

    $config['per_page'] = 20;
    $config['page_query_string'] = TRUE;
    http://your.site/?c=item&m=list // 1ページ目
    http://your.site/?c=item&m=list&per_page=20 // 2ページ目
    http://your.site/?c=item&m=list&per_page=40 // 3ページ目
  • query_string_segment
    • デフォルト値 = 'per_page'

     「page_query_string」を「TRUE」に設定している場合の オフセット値(または、ページ番号)を示すGETクエリ文字列を設定します。

    $config['page_query_string'] = TRUE;
    $config['query_string_segment'] = 'offset';
    http://your.site/?c=item&m=list // 1ページ目
    http://your.site/?c=item&m=list&offset=20 // 2ページ目
    http://your.site/?c=item&m=list&offset=40 // 3ページ目
  • prefix
  •  URIパスに付加されるオフセット値(または、ページ番号)文字列の前に付ける文字列を指定します。

    $config['prefix'] = 'offset';
    http://your.site/item/list/ // 1ページ目
    http://your.site/item/list/offset20/ // 2ページ目
    http://your.site/item/list/offset40/ // 3ページ目
  • suffix
  •  URIパスに付加されるオフセット値(または、ページ番号)文字列の後ろに付ける文字列を指定します。

    $config['prefix'] = 'offset';
    http://your.site/item/list/ // 1ページ目
    http://your.site/item/list/20offset/ // 2ページ目
    http://your.site/item/list/40offset/ // 3ページ目

リンク表現に関連する設定項目 一番上に戻る

  • display_pages
    • デフォルト値 = TRUE

     ページ番号のリンクを生成するか設定します。「TRUE」でページ番号のリンクを生成します。
    FALSE」で「最初」、「最後」、「前へ」と「次へ」のリンクのみ生成されます。

    $config['display_pages'] = FALSE;
  • num_links
    • デフォルト値 = 2

     現在のページ番号の左右にいくつのページ番号リンクを生成するか設定します。

    $config['num_links'] = 4;
    前へ   1   2   3   4   5   6   7   8   次へ   最後
  • anchor_class
  •  ページネーションリンクの「<a>」アンカータグに「clsas=」属性を設定します。

    $config['anchor_class'] = 'page-link';
    <a class="page-link" href="/item/list/ ">前へ</a>
    <a class="page-link" href="/item/list/ ">1</a>
    <a class="page-link" href="/item/list/20/ ">2</a>
  • full_tag_open
  •  ページネーションリンク全体を階層化するHTMLタグの先頭タグ文字列を指定します。

  • full_tag_close
  •  ページネーションリンク全体を階層化するHTMLタグの閉じタグ文字列を指定します。

    $config['full_tag_open'] = '<div id="pagination">';
    $config['full_tag_close'] = '</div>';

最初のページリンクに関連する設定項目 一番上に戻る

  • first_link
    • デフォルト値 = '&lsaquo; First'

     最初のページへのリンクを表わす文字列を指定します。

    $config['first_link'] = '&lsaquo;&lsaquo;';
    ‹‹     1   2   3   4
  • first_tag_open
  •  最初のページへのリンクタグを階層化するHTMLタグの開始タグ文字列を指定します。

  • first_tag_close
    • デフォルト値 = '&nbsp;'

     最初のページへのリンクタグを階層化するHTMLタグの閉じタグ文字列を指定します。

    $config['first_tag_open'] = '<span id="first-tag">';
    $config['first_tag_close'] = '</span>';
    <span id="first-tag"><a href="/item/list/20/">最初</a></span>
  • first_url
  •  最初のページへのリンクは、通常「base_url」がセットされますが、これを変更したい場合、「first_url」で指定します。

    $config['first_url'] = '/item/list/first/';

最後のページリンクに関連する設定項目 一番上に戻る

  • last_link
    • デフォルト値 = 'Last &rsaquo;'

     最後のページへのリンクを表わす文字列を指定します。

    $config['last_link'] = '&rsaquo;&rsaquo;';
    1   2   3   4     ››
  • last_tag_open
    • デフォルト値 = '&nbsp;'

     最後のページへのリンクタグを階層化するHTMLタグの開始タグ文字列を指定します。

  • last_tag_close
  •  最後のページへのリンクタグを階層化するHTMLタグの閉じタグ文字列を指定します。

    $config['last_tag_open'] = '<span id="last-tag">';
    $config['last_tag_close'] = '</span>';
    <span id="last-tag"><a href="/item/list/80/">最後</a></span>

次へのページリンクに関連する設定項目 一番上に戻る

  • next_link
    • デフォルト値 = '&gt;'

     次のページへのリンクを表わす文字列を指定します。

    $config['next_link'] = '&rsaquo;';
    1   2   3   4     ››
  • next_tag_open
    • デフォルト値 = '&nbsp;'

     次のページへのリンクタグを階層化するHTMLタグの開始タグ文字列を指定します。

  • next_tag_close
    • デフォルト値 = '&nbsp;'

     次のページへのリンクタグを階層化するHTMLタグの閉じタグ文字列を指定します。

    $config['next_tag_open'] = '<span id="next-tag">';
    $config['next_tag_close'] = '</span>';
    <span id="next-tag"><a href="/item/list/40/">次へ</a></span>

前へのページリンクに関連する設定項目 一番上に戻る

  • prev_link
    • デフォルト値 = '&lt;'

     前のページへのリンクを表わす文字列を指定します。

    $config['prev_link'] = '&lsaquo;';
    ‹‹     1   2   3   4
  • prev_tag_open
    • デフォルト値 = '&nbsp;'

     前のページへのリンクタグを階層化するHTMLタグの開始タグ文字列を指定します。

  • prev_tag_close
  •  前次のページへのリンクタグを階層化するHTMLタグの閉じタグ文字列を指定します。

    $config['prev_tag_open'] = '<span id="prev-tag">';
    $config['prev_tag_close'] = '</span>';
    <span id="prev-tag"><a href="/item/list/20/">前へ</a></span>

現在のページリンクに関連する設定項目 一番上に戻る

  • cur_tag_open
    • デフォルト値 = '&nbsp;<strong>'

     現在のページ番号のリンクタグを階層化するHTMLタグの開始タグ文字列を指定します。

  • cur_tag_close
    • デフォルト値 = '</strong>'

     現在のページ番号のリンクタグを階層化するHTMLタグの閉じタグ文字列を指定します。

    $config['cur_tag_open'] = '<span id="cur-tag">';
    $config['cur_tag_close'] = '</span>';
    <span id="cur-tag"><a href="/item/list/20/">2</a></span>

その他のページリンクに関連する設定項目 一番上に戻る

  • num_tag_open
    • デフォルト値 = '&nbsp;'

     ページ番号のリンクタグを階層化するHTMLタグの開始タグ文字列を指定します。

  • num_tag_close
  •  ページ番号のリンクタグを階層化するHTMLタグの閉じタグ文字列を指定します。

    $config['num_tag_open'] = '<span id="num-tag">';
    $config['num_tag_close'] = '</span>';
    <span id="num-tag"><a href="/item/list/40/">3</a></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>