Pager_Sliding は、 データの配列にページを付けるクラスです。 入力として受け取り、様々なパラメータによってページ付けを行います。 また、Pager_Sliding は、 指定された範囲でリンクを生成し、 出力は完全にカスタマイズ可能です(たとえ、 mod_rewriteと併用していても動作します)。 PEAR::Pagerの API と互換性があります。
このパッケージは、Pager v.2.x のため、 非推奨となっています。 .
この簡単な例は、アルファベット文字の配列を1ページあたり3文字ずつ ページ付けします。そして、前後2ページへのリンクを返します。
<?phprequire_once 'Pager/Sliding.php';$params = array( 'perPage' => 3, 'delta' => 2, 'itemData' => array('a','b','c','d','e',[...omissis...],'z') );$pager = & new Pager_Sliding($params);$data = $pager->getPageData();$links = $pager->getLinks();//$links is an ordered+associative array with 'back'/'pages'/'next'/'first'/'last'/'all' links.//NB: $links['all'] is the same as $pager->links;//echo links to other pages:echo $links['all']//Show data for current page:echo 'PAGED DATA: ' ; print_r($data);//Results from methods:echo 'getCurrentPageID()...: '; var_dump($pager->getCurrentPageID());echo 'getNextPageID()......: '; var_dump($pager->getNextPageID());echo 'getPreviousPageID()..: '; var_dump($pager->getPreviousPageID());echo 'numItems()...........: '; var_dump($pager->numItems());echo 'numPages()...........: '; var_dump($pager->numPages());echo 'isFirstPage()........: '; var_dump($pager->isFirstPage());echo 'isLastPage().........: '; var_dump($pager->isLastPage());echo 'isLastPageComplete().: '; var_dump($pager->isLastPageComplete());echo '$pager->range........: '; var_dump($pager->range);?>
なぜ、$pager->range が配列になっているのか、疑問に思うかも知れません。 このキーは現在の範囲でのページ番号で、対応する値はブール型 (キーが現在のページを指しているのであれば TRUE、その他は FALSE) です。 この配列は、手動でリンクを生成する際に有効です。 例えば、テンプレートエンジンを使用している場合です。
この例は、mod_rewrite を併用した場合、 このクラスをどの様に使用するかを示しています。 以下のような .htaccess があるとします。
これは、"/articles/march/art15.html" のような URL を、 "/article.php?num=15&month=march" に変換します。
<?phprequire_once 'Pager/Sliding.php';$month = 'september';$params = array( 'append' => false, 'urlVar' => 'num', 'path' => 'http://myserver.com/articles/' . $month, 'fileName' => 'art%d.html', //Pager replaces "%d" with page number... 'itemData' => array('a','b','c',[...omissis...],'z'), 'perPage' => 3 );$pager = & new Pager_Sliding($params);$data = $pager->getPageData();echo $pager->links;echo 'Data for current page: '; print_r($data);?>
単一ページ内で一つ以上のページャを使用するには、 それぞれのページャに異なる urlVar を指定するだけです。
<?phprequire_once 'Pager/Sliding.php';//first pager$params1 = array( 'perPage' => 3, 'urlVar' => pageID_articles, //1st identifier 'itemData' => $someArray );$pager1 = & new Pager_Sliding($params1);$data1 = $pager1->getPageData();$links1 = $pager1->getLinks();//second pager$params2 = array( 'perPage' => 8, 'urlVar' => pageID_news, //2nd identifier 'itemData' => $someOtherArray );$pager2 = & new Pager_Sliding($params2);$data2 = $pager2->getPageData();$links2 = $pager2->getLinks();?>