使用PEAR::Pager实现类似digg的分页风格

我一直对PEAR有点反感,自己也说不出是什么原因,这让我错过了很多精彩的代码,Pager就是其中一个,今天我来演示一下如何使用PEAR::Pager实现类似digg的分页风格。

先看看我们的参考资料:

http://pear.php.net/package/Pager (链接1)
http://www.strangerstudios.com/sandbox/pagination/diggstyle.php (链接2)

首先通过链接1下载Pager的源代码,解压缩到适当的位置(如:C:\php\pear),因为Pager是pear的一个组件,所以要设定include_path,然后参考链接2的做法来实现:


<?php
require_once('Pager/Pager.php');

$count = 1000;

$params = array(
   'totalItems' => $count,
   'mode' => 'Sliding',
   'delta' => 3,
   'perPage' => 10,
   //'append' => false,
   //'fileName' => '%d',
   'urlVar' => 'page',
   'separator' => '',
   'firstPagePre' => '',
   'firstPagePost' => '',
   'lastPagePre' => '',
   'lastPagePost' => '',
   'prevImg' => '&lt;',
   'nextImg' => '&gt;',
   'spacesBeforeSeparator' => 0,
   'spacesAfterSeparator' => 0,
   'curPageLinkClassName' => 'current',
   'altFirst' => '首页',
   'altPrev' => '上页',
   'altNext' => '下页',
   'altLast' => '尾页',
   'altPage' => '页码'
);

$pager = & Pager::factory($params);

$links = $pager->getLinks();
?>
<html>
<head>
<title>pagination</title>
</head>
<style>
div.pagination {
        padding: 3px;
        margin: 3px;
}
div.pagination a {
        padding: 2px 5px 2px 5px;
        margin: 2px;
        border: 1px solid #AAAADD;
        text-decoration: none;
        color: #000099;
}
div.pagination a:hover, div.pagination a:active {
        border: 1px solid #000099;
        color: #000;
}
div.pagination span.current {
        padding: 2px 5px 2px 5px;
        margin: 2px;
        border: 1px solid #000099;
        font-weight: bold;
        background-color: #000099;
        color: #FFF;
}
</style>
<body>
<div class="pagination"><?php echo $links['all']; ?></div>
</body>
</html>

搞定,不过和经典的digg分页风格还是有些许的差异,但是通过扩展Pager,应该也容易实现。


火丁的订阅地址:http://huoding.com/feed



你可能感兴趣的:(PHP)