Curry
PHP Framework

core

db

html

utility

Pager

クラス概要

Pagerクラスはページナビゲーションを表示するための機能を提供します。
基本的な処理の流れとしては、データ総数、1ページ表示件数、現在のページを設定し、paginateメソッドによって処理を実行します。

Pagerの詳細はマニュアルを参照してください。

Curry対応バージョン

バージョン 1.2.1 以降

クラスファイル位置

curry/utility/pager.php

フィールド

公開されるフィールドはありません。

メソッド

メソッド名 アクセス 概要
setUrl public ページ付けする対象のURLを指定します。
生成されるページナビゲーションの個々のページのアンカータグに設定されるURLとなります。
URLにページ番号のパラメータを含める必要があるため、動的となるページ番号部分をプレースホルダとして"%page%"というフォーマットで指定ます。
するとpaginateメソッドによって生成されるページングデータのURLとして、プレースホルダ部分がページ番号に置き換わったものが出力されます。
setRequestメソッドにより、Pagerクラスにリクエスト情報を設定すると、setUrlの処理は自動的に行われるため、実行の必要はありません。

$pager = new Pager();
$pager->setUrl('http://www.hoge.com/data/list/?p=%page%');
setDataCount public 表示対象データの件数の総数を指定します。
ページ数計算の元となるので、pagenateメソッドを実行する前に必ず指定する必要があります。
setCountPerPage public 1ページに表示するデータ数を指定します。
ページ数計算の元となります。
デフォルトは10に設定されています。
setCurrentPage public 現在表示中のページを指定します。
通常はURLのクエリパラメーターより、setQueryKeyメソッドによって指定したキーから取得した値を指定します。
指定しなかった場合は1となります。
setOutputOption public ページナビゲーション表示のオプションを指定します。
指定できる項目についてはマニュアルを参照してください。
outputTag public paginateメソッドによって生成されたページング情報をもとにページナビゲーションのHTMLタグを生成し、出力します。
getPageInfo public paginateメソッドによって生成されたページング情報を配列データとして取得します。
このデータはページナビゲーションの各ページの配列になっており、各ページへのアンカーURLを含みます。
getDataOffset public 現在のページで取得対象となるデータの取得開始行番号を取得します。
事前にpaginateメソッドを実行する必要があります。
これにより取得した値は、データ取得SQLのOFFSET指定に利用します。
paginate public ページング処理を実行します。
事前にデータ総数をsetDataCountメソッドで指定しておく必要があります。
getTag public paginateメソッドによって生成されたページング情報をもとにページナビゲーションのHTMLタグを生成し、取得します。
setDisplayRange public ページナビゲーションのページ表示を、現在のページの前後何ページ分まで表示するかを指定します。
例えば現在のページが8でsetPageRangeに3を指定した場合、ナビゲーションで表示されるページは5 6 7 8 9 10 11となります。
setRequest public リクエスト情報をセットします。
これにより、リクエスト情報をもとにsetUrlとsetCurrentPageが自動的に実行されます。
具体的には、実行中のアクションメソッドのURLがクエリパラメータ"p"を付加した状態でページナビゲーションのURLとして設定されます。
そして$_GET['p']の値を現在ページとして取得し、Pagerに設定します。
以上の処理が自動的に行われるため、PagerではsetRequestを利用することを推奨します。