- Home ›
- PEAR入門 ›
- ページング(PEAR::Pager) ›
- HERE
Pagerクラスのオブジェクトの作成
まずPagerを利用するためにはPagerクラスのオブジェクトを作成する必要があります。Pagerクラスにはコンストラクタも用意されていますが現在非推奨となっており、オブジェクトを作成するにはPagerクラスで用意されている「factory」メソッドを使います。
Pager::factory() object &factory (array $options)
引数: $options オプションを格納した配列 戻り値: Pagerクラスオブジェクト。失敗した場合はPEAR_Error オブジェクト
引数にはPagerクラスを作成するのに必要なオプションを連想配列で指定します。ここでは対象となるアイテムの一覧やアイテムの数を指定します。
設定可能なオプションの一覧は次の通りです。
オプション名 | 型 | 内容 |
---|---|---|
itemData | array | 対象となるアイテムを格納した配列 |
totalItems | integer | 対象となるアイテム数(itemDataが未指定の場合に使用) |
perPage | integer | 1ページごとに表示されるアイテム数 |
delta | integer | 現在のページの前後に表示するページ番号の数 |
mode | string | 動作モードを指定。ジャンプ型(Jumping)又はスライド型(Sliding) |
httpMethod | string | 使用するHTTPメソッド。「GET」又は「POST」 |
formID | string | POSTモードで使用するHTMLフォームを指定 |
importQuery | boolean | 変数と値がクエリ文字列からインポートするならTRUE |
currentPage | integer | 初期ページ番号 |
expanded | boolean | TRUEの場合、ウィンドウサイズは2*delta+1 |
linkClass | string | リンクのスタイルのためのCSSクラス |
urlVar | string | ページ番号を示すためのクエリ変数名(デフォルトは「pageID」) |
path | string | ページへの絶対パス(ページ名は除く) |
fileName | string | ページ名。appendがTRUEなら"%d" |
fixFileName | boolean | FALSEなら、オプションfileNameは上書きされません |
append | boolean | TRUEならpageIDはクエリ文字列としてURLに追加。FALSEならfileNameに従ってURLに埋め込まれる(デフォルトは「TRUE」) |
altFirst | string | 最初のページのリンクに表示されるalt文。デフォルトは「first page」 |
altPrev | string | 前のページのリンクに表示されるalt文。デフォルトは「previous page」 |
altNext | string | 次のページのリンクに表示されるalt文。デフォルトは「next page」 |
altLast | string | 最後のページのリンクに表示されるalt文。デフォルトは「last page」 |
altPage | string | ページ番号の前に表示されるalt文。デフォルトは「page」 |
prevImg | string | 前のページのリンクである「<<」の代替文字。<img>タグも可能 |
nextImg | string | 次のページのリンクである「&lgt;>」の代替文字。<img>タグも可能 |
separator | string | ページ番号を分けるための区切り文字。カンマやハイフンの他に<img>タグも可能 |
spacesBeforeSeparator | integer | 区切り文字の前のスペース数 |
spacesAfterSeparator | integer | 区切り文字の後のスペース数 |
curPageLinkClassName | string | 現在のページのリンクのスタイルのためのCSSクラス |
curPageSpanPre | string | 現在のページのリンクの前のテキスト |
curPageSpanPost | string | 現在のページのリンクの後のテキスト |
firstPagePre | string | 最初のページ番号の前の文字。任意の文字列の他に<img>タグも可能 |
firstPageText | string | 最初のページ番号の文字 |
firstPagePost | string | 最初のページ番号の後の文字。任意の文字列の他に<img>タグも可能 |
lastPagePre | string | 最後のページ番号の前の文字。任意の文字列の他に<img>タグも可能 |
lastPageText | string | 最後のページ番号の文字 |
lastPagePost | string | 最後のページ番号の後の文字。任意の文字列の他に<img>タグも可能 |
clearIfVoid | boolean | 1ページしか無い場合にPageリンクを表示しないかどうか |
useSessions | boolean | TRUEの場合、ページごとに表示するアイテム数は、$_SESSION[$_sessionVar] 変数に保存 |
closeSession | boolean | TRUEの場合、セッションはR/Wされた後にクローズする |
sessionVar | string | perPageの値を格納するセッション変数名(1ページに複数のPagerを使用する場合に利用) |
showAllText | string | generated by getPerPageSelectBox() getPerPageSelectBox() で生成されたセレクトボックスでの 'show all'オプションのために使用されるテキスト |
pearErrorMode | constant | raiseError()でPEAR_ERRORモードを使用するかどうか(デフォルトは「PEAR_ERROR_RETURN」) |
数多くのオプションがありますが、必ず指定しなければいけないオプションは「itemData」又は「totalItems」となります。また「append」が「FALSE」に設定されている場合は「filename」も指定が必要です。
例えば次のように記述します。
$options = array( "totalItems" => 200, "delta" => 10, "perPage" => 8 ); $pager =& Pager::factory($options);
Pagerクラスのオブジェクトはこのように作成します。
基本情報の設定
オプションの中で一番基本となるオプションを確認しておきます。
まず表示対象となるアイテム数を設定します。オプションの「totalItems」を使います。
array( "totalItems" => アイテム数 );
次に1ページ毎に表示されるアイテム数を設定します。オプションの「perPage」を使います。
array( "totalItems" => アイテム数, "perPage" => 1ページ毎に表示されるアイテム数 );
アイテム数と1ページ毎に表示されるアイテム数からページ数が計算されます。例えばアイテム数が「50」で1ページに表示されるアイテム数が「8」だった場合にはページ総数は「7」となります。アイテム数が「100」で1ページ毎に表示されるアイテム数が「30」だった場合にはページ総数は「4」となります。
例えば次のように記述します。
$options = array( "totalItems" => 50, "perPage" => 8 ); $pager =& Pager::factory($options);
ナビゲーションリンクを作成した時に一度に表示されるページ数を設定します。オプションの「delta」を使います。
array( "totalItems" => アイテム数, "perPage" => 1ページ毎に表示されるアイテム数, "delta" => リンクに表示されるページ数 );
「delta」に「5」を指定した場合には現在のページも含めて「1 2 3 4 5」のようにリンクが表示されます。
例えば次のように記述します。
$options = array( "totalItems" => 50, "perPage" => 8, "delta" => 10 ); $pager =& Pager::factory($options);
「delta」の指定を省略した場合、総ページ数が10以上の場合は「10」、総ページ数が10より小さい場合は総ページ数と同じに設定されます。
( Written by Tatsuo Ikura )