Pagerクラスのオブジェクトの作成

広告

まずPagerを利用するためにはPagerクラスのオブジェクトを作成する必要があります。Pagerクラスにはコンストラクタも用意されていますが現在非推奨となっており、オブジェクトを作成するにはPagerクラスで用意されている「factory」メソッドを使います。

引数:
  $options  オプションを格納した配列
戻り値:
  Pagerクラスオブジェクト。失敗した場合はPEAR_Error オブジェクト

引数にはPagerクラスを作成するのに必要なオプションを連想配列で指定します。ここでは対象となるアイテムの一覧やアイテムの数を指定します。

設定可能なオプションの一覧は次の通りです。

オプション名内容
itemDataarray対象となるアイテムを格納した配列
totalItemsinteger対象となるアイテム数(itemDataが未指定の場合に使用)
perPageinteger1ページごとに表示されるアイテム数
deltainteger現在のページの前後に表示するページ番号の数
modestring動作モードを指定。ジャンプ型(Jumping)又はスライド型(Sliding)
httpMethodstring使用するHTTPメソッド。「GET」又は「POST」
formIDstringPOSTモードで使用するHTMLフォームを指定
importQueryboolean変数と値がクエリ文字列からインポートするならTRUE
currentPageinteger初期ページ番号
expandedbooleanTRUEの場合、ウィンドウサイズは2*delta+1
linkClassstringリンクのスタイルのためのCSSクラス
urlVarstringページ番号を示すためのクエリ変数名(デフォルトは「pageID」)
pathstringページへの絶対パス(ページ名は除く)
fileNamestringページ名。appendがTRUEなら"%d"
fixFileNamebooleanFALSEなら、オプションfileNameは上書きされません
appendbooleanTRUEならpageIDはクエリ文字列としてURLに追加。FALSEならfileNameに従ってURLに埋め込まれる(デフォルトは「TRUE」)
altFirststring最初のページのリンクに表示されるalt文。デフォルトは「first page」
altPrevstring前のページのリンクに表示されるalt文。デフォルトは「previous page」
altNextstring次のページのリンクに表示されるalt文。デフォルトは「next page」
altLaststring最後のページのリンクに表示されるalt文。デフォルトは「last page」
altPagestringページ番号の前に表示されるalt文。デフォルトは「page」
prevImgstring前のページのリンクである「<<」の代替文字。<img>タグも可能
nextImgstring次のページのリンクである「&lgt;>」の代替文字。<img>タグも可能
separatorstringページ番号を分けるための区切り文字。カンマやハイフンの他に<img>タグも可能
spacesBeforeSeparatorinteger区切り文字の前のスペース数
spacesAfterSeparatorinteger区切り文字の後のスペース数
curPageLinkClassNamestring現在のページのリンクのスタイルのためのCSSクラス
curPageSpanPrestring現在のページのリンクの前のテキスト
curPageSpanPoststring現在のページのリンクの後のテキスト
firstPagePrestring最初のページ番号の前の文字。任意の文字列の他に<img>タグも可能
firstPageTextstring最初のページ番号の文字
firstPagePoststring最初のページ番号の後の文字。任意の文字列の他に<img>タグも可能
lastPagePrestring最後のページ番号の前の文字。任意の文字列の他に<img>タグも可能
lastPageTextstring最後のページ番号の文字
lastPagePoststring最後のページ番号の後の文字。任意の文字列の他に<img>タグも可能
clearIfVoidboolean1ページしか無い場合にPageリンクを表示しないかどうか
useSessionsbooleanTRUEの場合、ページごとに表示するアイテム数は、$_SESSION[$_sessionVar] 変数に保存
closeSessionbooleanTRUEの場合、セッションはR/Wされた後にクローズする
sessionVarstringperPageの値を格納するセッション変数名(1ページに複数のPagerを使用する場合に利用)
showAllTextstringgenerated by getPerPageSelectBox() getPerPageSelectBox() で生成されたセレクトボックスでの 'show all'オプションのために使用されるテキスト
pearErrorModeconstantraiseError()で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 )

関連記事 (一部広告含む)