Pear の Pager ページング クラスは非常に便利な PHP ページング クラスであり、拡張性が高く、さまざまなページング状況のニーズに適応できます。少なくとも過去数年間の私のプロジェクトでは、基本的にページング用の追加コードを作成していません。 . 、すべては Pager を使用しています。これは、Pager の強力な使いやすさを示しています。コードを使用してその使用例を見てみましょう
。
プレーンテキスト
PHP:
<?php
require_once'Pager/Pager.php';
$params=配列(
'モード' =>'ジャンプ'、
'ページごと' =>3、
'デルタ' =>2、
'itemData' =>array('a','b','c','d','e',[...省略...],'z')
);
$pager= & Pager::factory($params);
$data =$pager->getPageData();
$links=$pager->getLinks();
//$links は、'back'/'pages'/'next'/'first'/'last'/'all' リンクを含む順序付けされた連想配列です
//注意: $links['all'] は $pager->links と同じです。
// 他のページへのリンクをエコーします:
echo$links['all'];
//Pager は <link rel="first|prev|next|last"> タグも生成できます
echo$pager->linkTags;
// 現在のページのデータを表示:
echo'ページ化されたデータ: ';print_r($data);
//メソッドの結果:
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 を使用する場合、コード内の $param 配列のパラメーターを調整することで、多くのページング状況に対処できます。コード内の $links 配列には、前のページ/ページ番号/次のページ/最初のページ/最後のページ/すべて などのリンクが含まれています。例
2
.htaccess
設定のように、SEO のために動的ページを静的ページに偽装する書き換えルールを使用しています。
#Options FollowSymlinks
RewriteBase /
RewriteRule ^articles/([az]{1,12})/art([0-9]{1,4}).html$ /article.php?num=$2&month=$1 [L]
この中でもこの場合、ポケットベル ページングはまだ機能します。以下のコードを参照してください。
PLAIN TEXT
PHP:
<?php
require_once'Pager/Pager.php';
//ファーストページャー
$params1=配列(
'ページごと' =>3、
'urlVar' => pageID_articles, //最初の識別子
'itemData' =>$someArray
);
$pager1= & Pager::factory($params1);
$data1 =$pager1->getPageData();
$links1=$pager1->getLinks();
// セカンドポケットベル
$params2=配列(
'perPage' =>8、
'urlVar' => pageID_news, //2 番目の識別子
'itemData' =>$someOtherArray
);
$pager2= & Pager::factory($params2);
$data2 =$pager2->getPageData();
$links2=$pager2->getLinks();
?>
$param を設定することで、リンク「/articles/march/art15.html」をリンク「/article.php?num=15&month=march」にマッピングすることができ、より柔軟な
拡張性を示します。
公平を期すために、Pager クラスのスケーラビリティも優れています。たとえば、以前に作成したパスベースのページング クラスである Pager::Pathing() は、Pager から拡張されたものであり、当時のニーズを満たしていました
。 2006 年 9 月 22 日午前 7 時 16 分に掲載
著作権情報: 転載は自由です。転載する場合は、記事の出典元と著者情報、およびこの声明の永久リンクをハイパーリンク形式で
必ず明記してください
。