Pear::Pager分頁(yè)類(lèi)簡(jiǎn)介
Pear的Pager分頁(yè)類(lèi)是一個(gè)很好用的php分頁(yè)類(lèi),擴(kuò)展性很強(qiáng),能夠適應(yīng)各種分頁(yè)情況的需求,至少我在幾年間大大小小的項(xiàng)目里,基本上沒(méi)有為分頁(yè)額外寫(xiě)過(guò)代碼,全部都是用的Pager,足見(jiàn)Pager的可用性之強(qiáng).下面用代碼來(lái)看看它的使用范例:
例子1
PHP:
-
<?php
-
require_once ‘Pager/Pager.php‘;
-
-
‘mode‘ => ‘Jumping‘,
-
‘perPage‘ => 3,
-
‘delta‘ => 2,
-
‘itemData‘ => array(‘a(chǎn)‘, ‘b‘, ‘c‘, ‘d‘, ‘e‘, [...omissis... ], ‘z‘)
-
);
-
$pager = & Pager::factory($params);
-
$data = $pager->getPageData();
-
$links = $pager->getLinks();
-
//$links is an ordered+associative array with ‘back‘/‘pages‘/‘next‘/‘first‘/‘last‘/‘a(chǎn)ll‘ links
-
//NB: $links[‘a(chǎn)ll‘] is the same as $pager->links;
-
-
//echo links to other pages:
-
echo $links[‘a(chǎn)ll‘];
-
-
//Pager can also generate <link rel="first|prev|next|last"> tags
-
-
-
//Show data for current page:
-
-
-
//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());
-
-
?>
Pager的使用,只要調(diào)整$param數(shù)組的參數(shù),就可以應(yīng)付很多種分頁(yè)情況了.代碼中的$links數(shù)組包含了一些鏈接,如上一頁(yè)/頁(yè)碼/下一頁(yè)/第一頁(yè)/末頁(yè)/全部.
例2
如今許多網(wǎng)站為了SEO,把動(dòng)態(tài)頁(yè)使用rewrite規(guī)則偽造成靜態(tài)頁(yè)的形式,例如下面這個(gè).htaccess配置:
RewriteEngine on #Options FollowSymlinks
RewriteBase / RewriteRule ^articles/([a-z]{1,12})/art([0-9]{1,4})\.html$ /article.php?num=$2&month=$1 [L]
即使在這種情況下,Pager分頁(yè)仍然有辦法工作,見(jiàn)下面的code
PHP:
-
<?php
-
require_once ‘Pager/Pager.php‘;
-
-
//first pager
-
-
‘perPage‘ => 3,
-
‘urlVar‘ => pageID_articles, //1st identifier
-
‘itemData‘ => $someArray
-
);
-
$pager1 = & Pager::factory($params1);
-
$data1 = $pager1->getPageData();
-
$links1 = $pager1->getLinks();
-
-
//second pager
-
-
‘perPage‘ => 8,
-
‘urlVar‘ => pageID_news, //2nd identifier
-
‘itemData‘ => $someOtherArray
-
);
-
$pager2 = & Pager::factory($params2);
-
$data2 = $pager2->getPageData();
-
$links2 = $pager2->getLinks();
-
?>
通過(guò)配置$param,就能夠把鏈接 "/articles/march/art15.html"對(duì)應(yīng)到鏈接"/article.php?num=15&month=march" ,比較靈活的表現(xiàn)
|