从功能上看应该够用了,代码里自带一种使用方法,写一下例子参数:
$this->pageHtml = CMPage::getPageHtmlByParam(总记录数, 分页大小, 第几页, PageLink选择页个数,
array(
'FirstPage'=>array('带链接的html代码','不带链接的html代码'),
'PrePage'=>array('<a href="winner/default/?know=%pageVar%">上一页</a> ','上一页 '),
'PageLink'=>array('<a href="winner/default/?know=%pageVar%">%pageVar%</a> ','<strong>%pageVar%</strong> '),
'NextPage'=>array('<a href="winner/default/?know=%pageVar%">下一页</a> ','下一页 '),
'LastPage'=>array('<a href="winner/default/?know=%pageVar%">尾页</a> ','尾页 '),
'PageJumpSelect'=>array('<option value="winner/default/?know=%pageVar%" selected>%pageVar%</option>','','第<select name="PB_Page_Select" id="PB_Page_Select" >','</select>页<a style="cursor:pointer;" οnclick="javascript:window.location.href=\'http://361torcher.qq.com/\'+$app.G(\'PB_Page_Select\').value;"> GO </a>')
)
);
下面是整个数的源码,引入后,传入相应的参数即可生成页面分页代码:
<?php
class CMPage {
/**
* Last Version By Suyx 2011.07.27
* 下面是一个使用方法的例子:
* $this->pageHtml = CMPage::getPageHtmlByParam($total, 6, $know, 5,
array(
'FirstPage'=>array('<a href="winner/default/?know=%pageVar%">首页</a> ','首页 '),
'PrePage'=>array('<a href="winner/default/?know=%pageVar%">上一页</a> ','上一页 '),
'PageLink'=>array('<a href="winner/default/?know=%pageVar%">%pageVar%</a> ','<strong>%pageVar%</strong> '),
'NextPage'=>array('<a href="winner/default/?know=%pageVar%">下一页</a> ','下一页 '),
'LastPage'=>array('<a href="winner/default/?know=%pageVar%">尾页</a> ','尾页 '),
'PageJumpSelect'=>array('<option value="winner/default/?know=%pageVar%" selected>%pageVar%</option>','','第<select name="PB_Page_Select" id="PB_Page_Select" >','</select>页<a style="cursor:pointer;" οnclick="javascript:window.location.href=\'http://xxx.com/\'+$app.G(\'PB_Page_Select\').value;"> GO </a>')
)
);
*/
protected static $numTotal, $pageTotal, $pageSize, $pageRequest, $pageLinkNum, $pageBegin, $pageEnd, $contentArray, $rtnContentAll;
public static function setContentArray($_contentArray) {
self :: $contentArray = $_contentArray;
}
public static function setParams($_numTotal, $_pageSize, $_pageRequest, $_pageLinkNum) {
//简单变量检查
self :: $numTotal = $_numTotal > 0 ? $_numTotal : 1;
self :: $pageSize = $_pageSize > 0 ? $_pageSize : 1;
self :: $pageRequest = $_pageRequest > 0 ? $_pageRequest : 1;
self :: $pageLinkNum = $_pageLinkNum > 0 ? $_pageLinkNum : 1;
//计算总页数
self :: $pageTotal = ceil(self :: $numTotal / self :: $pageSize);
//计算页数链接的开始值
self :: $pageBegin = (self :: $pageRequest > 0 && self :: $pageRequest <= self :: $pageTotal ? self :: $pageRequest : 1) - intval(self :: $pageLinkNum / 2);
if (self :: $pageBegin < 1)
self :: $pageBegin = 1;
//计算页数链接的结束值
self :: $pageEnd = self :: $pageBegin +self :: $pageLinkNum -1;
if (self :: $pageEnd > self :: $pageTotal)
self :: $pageEnd = self :: $pageTotal;
//再计算开始值
self :: $pageBegin = self :: $pageEnd -self :: $pageLinkNum +1;
if (self :: $pageBegin < 1)
self :: $pageBegin = 1;
}
//初始化所有参数
public static function initAllParams($_numTotal, $_pageSize, $_pageRequest, $_pageLinkNum, $_contentArray) {
self :: setParams($_numTotal, $_pageSize, $_pageRequest, $_pageLinkNum);
self :: setContentArray($_contentArray);
}
public static function getValue($param) {
$rtn = '';
if (isset ($param)) {
$rtn = self :: $param;
}
return $rtn;
}
//获取分页html代码
public static function getPageHtml() {
//初始化返回变量
self :: $rtnContentAll = '';
//生成html内容数组
if (is_array(self :: $contentArray)) {
$htmlContent = array ();
foreach (self :: $contentArray as $_funcid => $_funccontent) {
$funName = 'getHtmlContent_' . $_funcid;
if (method_exists('Pagination', $funName)) {
$htmlContent[] = self :: $funName ($_funccontent);
} else {
$htmlContent[] = is_array($_funccontent) ? $_funccontent[0] : $_funccontent;
}
}
} else {
$htmlContent = array ();
}
self :: $rtnContentAll = implode('', $htmlContent);
return self :: $rtnContentAll;
}
/**
*
* 拼凑分页内容
* @param unsigned int $pageTotal
* @param unsigned int $pageSize
* @param unsigned int $pageRequest
* @param unsigned int $pageLinkNum
* @param array $contentArray
*/
public static function getPageHtmlByParam($_numTotal, $_pageSize, $_pageRequest, $_pageLinkNum, $_contentArray) {
self :: initAllParams($_numTotal, $_pageSize, $_pageRequest, $_pageLinkNum, $_contentArray);
return self :: getPageHtml();
}
//以下所有函数里面 %pageVar% 是代表要被替换的页数变量
//首页
/**
*
* Enter description here ...
* @param array $content 暂定四维数组,分别表示
* 0:带链接的html代码
* 1:不带链接的html代码
* 2:前面添加的html代码
* 3:后面添加的html代码
*/
private function getHtmlContent_FirstPage($content) {
$rtnStr = '';
if (is_array($content)) {
if (self :: $pageRequest > 1) {
$rtnStr = str_replace("%pageVar%", "1", $content[0]); //带链接
} else {
$rtnStr = str_replace("%pageVar%", "1", empty ($content[1]) ? $content[0] : $content[1]); //不带连接
}
} else {
$rtnStr = str_replace("%pageVar%", "1", $content);
}
if (is_array($content))
$rtnStr = $content[2] . $rtnStr . $content[3];
return $rtnStr;
}
//上一页
private function getHtmlContent_PrePage($content) {
$rtnStr = '';
if (is_array($content)) {
if (self :: $pageRequest > 1) {
$rtnStr = str_replace("%pageVar%", self :: $pageRequest -1, $content[0]); //带链接
} else {
$rtnStr = str_replace("%pageVar%", (self :: $pageRequest -1 > 0 ? self :: $pageRequest -1 : 1), empty ($content[1]) ? $content[0] : $content[1]); //不带连接
}
} else {
$rtnStr = str_replace("%pageVar%", (self :: $pageRequest -1 > 0 ? self :: $pageRequest -1 : 1), $content);
}
if (is_array($content))
$rtnStr = $content[2] . $rtnStr . $content[3];
return $rtnStr;
}
//数字链接页
private function getHtmlContent_PageLink($content) {
$rtnStr = '';
for ($i = self :: $pageBegin; $i <= self :: $pageEnd; $i++) {
if (is_array($content)) {
if ($i == self :: $pageRequest) {
$rtnStr .= str_replace("%pageVar%", $i, empty ($content[1]) ? $content[0] : $content[1]); //不带链接
} else {
$rtnStr .= str_replace("%pageVar%", $i, $content[0]); //带链接
}
} else {
$rtnStr .= str_replace("%pageVar%", $i, $content);
}
}
if (is_array($content))
$rtnStr = $content[2] . $rtnStr . $content[3];
return $rtnStr;
}
//下一页
private function getHtmlContent_NextPage($content) {
$rtnStr = '';
if (is_array($content)) {
if (self :: $pageRequest < self :: $pageTotal) {
$rtnStr = str_replace("%pageVar%", self :: $pageRequest +1, $content[0]); //带链接
} else {
$rtnStr = str_replace("%pageVar%", self :: $pageTotal, empty ($content[1]) ? $content[0] : $content[1]); //不带连接
}
} else {
$rtnStr = str_replace("%pageVar%", self :: $pageRequest < self :: $pageTotal ? self :: $pageRequest +1 : self :: $pageTotal, $content);
}
if (is_array($content))
$rtnStr = $content[2] . $rtnStr . $content[3];
return $rtnStr;
}
//尾页
private function getHtmlContent_LastPage($content) {
$rtnStr = '';
if (is_array($content)) {
if (self :: $pageRequest < self :: $pageTotal) {
$rtnStr = str_replace("%pageVar%", self :: $pageTotal, $content[0]); //带链接
} else {
$rtnStr = str_replace("%pageVar%", self :: $pageTotal, empty ($content[1]) ? $content[0] : $content[1]); //不带连接
}
} else {
$rtnStr = str_replace("%pageVar%", self :: $pageTotal, $content);
}
if (is_array($content))
$rtnStr = $content[2] . $rtnStr . $content[3];
return $rtnStr;
}
//跳转页
private function getHtmlContent_PageJumpSelect($content) {
$rtnStr = '';
for ($i = 1; $i <= self :: $pageTotal; $i++) {
if (is_array($content)) {
$rtnStr .= str_replace("%pageVar%", $i, $content[0]); //带链接
} else {
$rtnStr .= str_replace("%pageVar%", $i, $content); //不带链接
}
}
if (is_array($content))
$rtnStr = $content[2] . $rtnStr . $content[3];
return $rtnStr;
}
}
?>
$pageinAtion =new Pagination();
$pageinAtion->setParams($vow_total[0]['COUNT'], $pagesize, $page, 8);
$this->pageColumn = $pageinAtion->getPaginationHtmlByParam($vow_total[0]['COUNT'], $pagesize, $page, 8,
array(
'PrePage'=>array('<em class="nex"><a href="vow/default/?page=%pageVar%">上一页</a></em>','<em class="haven_t">上一页</em>'),
'FirstPage'=>array($pageinAtion->getValue('pageBegin')>1?'<em><a href="vow/default/?page=1;">1</a></em>'.($pageinAtion->getValue('pageBegin')>2?'<span>...</span>':''):'',''),
'PageLink'=>array('<em><a href="vow/default/?page=%pageVar%">%pageVar%</a></em>','<em class="hove">%pageVar%</em>'),
'LastPage'=>array($pageinAtion->getValue('pageEnd')<$pageinAtion->getValue('pageTotal')?(($pageinAtion->getValue('pageEnd')<$pageinAtion->getValue('pageTotal')-1?'<span>...</span>':'').'<em><a href="vow/default/?page=%pageVar%;">%pageVar%</a></em>'):'',''),
'NextPage'=>array('<em class="nex"><a href="vow/default/?page=%pageVar%">下一页</a></em>','<em class="haven_t">下一页</em>')
)
);