ページネーション ライブラリ

Ziu 付属のページネーションライブラリです。一覧ページなどのリスト表示で簡単にページネーションを行う機能を提供します。

  1. 設定
  2. 使い方
  3. メソッドリファレンス

設定

ページネーションライブラリを利用するための設定を行ないます。

単体で利用の設定方法

本ページネーションライブラリは、単体で使用することができます。

$pn = new Paginate;
$pn->config(array(
    'page_num' => (int)$page_id,
    'limit_row' => 5,
    'num_format' => '/%d.html',
));
Ziu で利用の設定方法

Ziu での利用では、ロジッククラスの一覧ページを表示するメソッドを定義して、そのメソッド内で主に利用します。

$pn = lib('paginate', array(
    'page_num' => (int)$page_id,
    'limit_row' => 5,
    'num_format' => '/%d.html',
));

ヘルパー関数 paginate() でページネーションオブジェクトを作成することもできます。

$pn = paginate($page_id, 5, array('num_format' => '/%d.html'));

設定項目

項目 初期値 説明
base_uri string なし ベースになるURIを指定します。未指定の場合は、自動的に現在のURIとなります。
uri_param string なし GETパラメータを指定します。未指定の場合は、自動的に現在のパラメータを引き継ぎます。
except_param string なし 除外するGETパラメータ変数名を指定します。カンマ区切りで複数指定することができます。
num_format string /%d ページ番号URIフォーマットを指定します。
page_num integer 1 現在のページ番号を指定します。
num_link integer 3 ページ番号ナビゲーションリンクの幅を指定します。注1) 参照
limit_row integer 10 1ページに表示するリスト件数を指定します。
total_row integer 0 ページネート対象データの全件数を指定します。
prev_text string << Prev 前ページナビゲーションリンクのテキストを指定します。
next_text string Next >> 次ページナビゲーションリンクのテキストを指定します。
first_text string [first] 最初ページナビゲーションリンクのテキストを指定します。
last_text string [last] 最終ページナビゲーションリンクのテキストを指定します。
layout string 注2) 参照 ページネーションフォーマットを指定します。 [レイアウトキーワード]を指定して置換えすることができます。注3) 参照

注1) num_link3 の場合
カレントページ番号の両側に3ページ分のリンクが表示されます。( 1 2 3 4 5 6 7 )

注2) layout の初期値
<div class="paginate">
<span class="first">:first</span>
<span class="prev">:prev</span>
<span class="pages">:pages</span>
<span class="next">:next</span>
<span class="last">:last</span>
</div>

注3) layout[レイアウトキーワード]
:first first() - 最初ページナビゲーションリンク
:last last() - 最終ページナビゲーションリンク
:prev prev() - 前ページナビゲーションリンク
:next next() - 次ページナビゲーションリンク
:pages pages() - ページ番号ページナビゲーションリンク

使い方

一例として拡張子「html」ファイルの一覧ページでページネーションをすると仮定します。
1ページ目URL : /member/list
2ページ目URL : /member/list/2.html

ルーティング設定
_conf/routes.php に以下を追記します。ファイルがない場合は作成。

'member/list/(:num).html' => 'member/list/index/$1',

ルーティング設定は必要に応じて行ないます。拡張子等のカスタマイズを行わない場合は不要。

ページネーション処理
ページネーション処理をロジッククラスで行ないます。

// ページネーションライブラリの初期化
$pn = paginate($page_id, 5, array('num_format' => '/%d.html'));

// モデルオブジェクトでにて表示データリストを取得
render_set(array(
    'list' => $dao->getList($pn->limit(), $pn->offset(), $this->req);
));

// モデルオブジェクトから全件数 'total_row' を指定
$pn->config(array('total_row' => $dao->foundRows()));

// ページネーションを生成
render_set(array('page' => $pn->execute()->links()), FALSE);

MySQLの場合のモデルメソッド getList() では、SQL_CALC_FOUND_ROWS を利用して表示リストを取得した後に foundRows() で同条件の全体件数を取得しています。
他のデータベースソフトの場合は、表示リスト取得全件数取得の2回SQLを実行する必要があるかもしれません。

ビューテンプレート
$page にバインドされたページネーション結果を表示します。

<div class="pager"><?= $page ?></div>

メソッドリファレンス

ページネーションライブラリのメソッドリファレンスです。

  1. 設定メソッド
  2. 生成メソッド
    • limit() : リミット値を取得
    • offset() : オフセット値を取得
    • execute() : ページネーションを生成
  3. ナビゲーション
    • links() : 全ページナビゲーション情報を取得
    • first() : 最初ページナビゲーションを取得
    • last() : 最終ページナビゲーションを取得
    • pages() : ページ番号ナビゲーションを取得
    • next() : 次ページナビゲーションを取得
    • prev() : 前ページナビゲーションを取得

設定メソッド

config(array $config)

ページネーションライブラリを初期設定をします。

戻り値

型 : object Paginate

引数値
項目 内容
$config array 設定を配列で指定

$config に指定する設定項目については、設定を参照して下さい。

例) $pn = lib('paginate')->config(array('page_num' => 2));

▲リファレンスTOP

生成メソッド

limit()

1ページに表示するリミット値を取得します。

戻り値

型 : integer

引数値

なし

例) $pn->limit();

offset()

現在ページを表示するためのデータベース検索を行うオフセット値を取得します。

戻り値

型 : integer

引数値

なし

例) $pn->offset();

execute()

ページネーションを生成します。事前に page_numtotal_row の値を指定する必要があります。

戻り値

型 : object Paginate

引数値

なし

例) $pn->execute();

▲リファレンスTOP

ナビゲーションメソッド

links($html = TRUE)

生成された全ページナビゲーションを取得します。

戻り値

型 : mixed

引数値
項目 内容
$html boolean HTMLフラグ

$htmlTRUE

  • ページネーション文字列を返します。

$htmlFALSE

  • ページネーションデータをレイアウトキーワードの配列で返します。
    配列構成はレイアウトキーワードと対となるメソッドを参照下さい。
    :first => first():last => last():prev => prev():next => next():pages => pages()

例) $pn->links();

first($html = TRUE)

最初ページナビゲーションリンクを取得します。

戻り値

型 : mixed

引数値
項目 内容
$html boolean HTMLフラグ

$htmlTRUE : リンク文字列を返します。
$htmlFALSE : array('url' => <リンクURL>)の配列で返します。

例) $pn->first();

last($html = TRUE)

最終ページナビゲーションリンクを取得します。

戻り値

型 : mixed

引数値
項目 内容
$html boolean HTMLフラグ

$htmlTRUE : リンク文字列を返します。
$htmlFALSE : array('url' => <リンクURL>)の配列で返します。

例) $pn->last();

pages($html = TRUE)

ページ番号ナビゲーションリンクを取得します。

戻り値

型 : mixed

引数値
項目 内容
$html boolean HTMLフラグ

$htmlTRUE : リンク文字列を返します。
$htmlFALSE : array(array('page_id' => <ページ番号>, 'active' => <アクティブフラグ>, 'url' => <リンクURL>), ...)の配列で返します。

例) $pn->pages();

next($html = TRUE)

次ページナビゲーションリンクを取得します。

戻り値

型 : mixed

引数値
項目 内容
$html boolean HTMLフラグ

$htmlTRUE : リンク文字列を返します。
$htmlFALSE : array('url' => <リンクURL>)の配列で返します。

例) $pn->next();

prev($html = TRUE)

前ページナビゲーションリンクを取得します。

戻り値

型 : mixed

引数値
項目 内容
$html boolean HTMLフラグ

$htmlTRUE : リンク文字列を返します。
$htmlFALSE : array('url' => <リンクURL>)の配列で返します。

例) $pn->prev();

▲リファレンスTOP