PHP封装的分页导航处理类
来源:互联网 发布:x86汇编软件 编辑:程序博客网 时间:2024/05/17 04:14
开发WEB程序,最常见的页面之一就是列表页,而列表页中一定会有分页导航的功能,我们当然可以在页面中直接插入PHP代码,运算相关的信息,例如页数,总记录数,总页数,根据当前页的不同,可能显示的内容及样式都有所不同,这样做是达到目的了,可是带来的极大弊端有三点:1、代码的可读性大大降低;2、页面夹杂着这一大段运算分页逻辑的代码,以后代码维护的难度大大提高了;3、当多个列表页面用到这一分页导航时,无共用性。ps一句:本人写代码有两点原则:1、绝不做重复劳动,逻辑一样的功能块一定要单独隔离出来;2、做一件事最多只能第一次痛苦一下,再做这件事时一定不会再痛苦(因为在这期间我肯定要想出个办法解决让我痛苦的问题)。为此,我写了如下的分页导航处理类(PHP5):
/* 分页样式类的父类 */
class SplitStyle
{
public $Page; // 当前页数
public $RecsPerPage; // 每页记录数
public $CountOfRows; // 总记录数
public $CountOfPages; // 总页数
public $QueryUrl; // 带查询字符串的URL
/* 构造函数 */
function __construct($page, $recsPerPage, $countOfRows, $countOfPages, $queryUrl)
{
$this->Page = $page;
$this->RecsPerPage = $recsPerPage;
$this->CountOfRows = $countOfRows;
$this->CountOfPages = $countOfPages;
$this->QueryUrl = $queryUrl;
}
/* 运算相关分页信息 */
protected function OperateInfo()
{
/* 当前页数排错 */
if ($this->Page < 1)
$this->Page = 1;
if ($this->Page > $this->CountOfPages)
$this->Page = $this->CountOfPages;
}
/**
* 获取分页链接
* @index(int) 页数索引
* 返回分页链接URL(string)
*/
protected function GetHerf($index)
{
return $this->QueryUrl . "page=" . $index;
}
}
/* 常用分页样式类 */
class SplitStyleCommon extends SplitStyle
{
/* 输出分页HTML结果 */
public function OutputResult()
{
$this->OperateInfo(); // 运算相关分页信息
$result = ""; // 要输出的结果
/* 起始数字 */
$start = floor($this->Page / 10) * 10;
if ($start == 0)
$start = 1;
/* 结尾数字 */
if ($this->Page % 10 == 0)
$end = (ceil($this->Page / 10) + 1) * 10;
else
$end = ceil($this->Page / 10) * 10;
/* 结尾数字不能大于总页数 */
if ($end > $this->CountOfPages)
$end = $this->CountOfPages;
for ($i = $start; $i <= $end; $i++)
{
if ($i == $this->Page)
$result .= '<span>' . $i . '</span> ';
else
$result .= '<a href="' . $this->GetHerf($i) . '">' . $i . '</a> ';
}
echo $result;
}
}
说明:第一个类准备了最常见的分页信息,第二个类为扩展类,里面的OutputResult成员方法(这里省略了诸如每页记录数,总记录数,总页数的信息,这里强调的是分页逻辑)实现了一种很常见的数字分页(首次显示1到10页,点第10页则显示10到20页,以此类推),当分页逻辑或HTML结构不同时,很显然还可以再增加一个子类(假设它实现的是像Google那样的分页形式)。这样,我们在列表页中就只需调用该类就可以了,而具体的逻辑就由类去内部实现了。
- PHP封装的分页导航处理类
- PHP分页导航显示类
- php 分页代码的封装
- php封装分页类+分页实例
- php封装一个异常的处理类
- PHP+MySql实现的简单分页类的封装
- php封装一个显示页码的分页类
- 分页类的封装
- JSP分页导航简单封装
- PHP分页导航函数
- 一个封装好的CSS分页导航栏
- pagination(一个封装好的分页导航)
- 26.avi 分页逻辑的封装处理
- php+mysql的分页进行封装调用
- PHP,分页函数封装成类
- PHP分页功能使用类封装实现
- PHP 自己封装数据分页类
- 对于分页的封装类
- ssh配置权威指南
- Linux安全配置步骤简述
- 一次入侵过程
- Linux常见问题
- 使用cacti监测系统性能
- PHP封装的分页导航处理类
- 终于搞定了X~
- Linux简明系统维护手册
- Dialog
- Apache性能优化技巧
- 限制根用户可以登陆的终端/etc/securetty
- su
- SSH--只允许个别用户登陆SSH
- 保护Apache的安全