'条记录','prev'=>'上一页','next'=>'下一页','first'=>'第一页','last'=>'最后一页','theme'=>' %totalrow% %header% %nowpage%/%totalpage% 页 %uppage% %downpage% %first% %prepage% %linkpage% %nextpage% %end%');
protected $config = array('header'=>'条记录','prev'=>'上一页','next'=>'下一页','first'=>'第一页','last'=>'最后一页','theme'=>'共 %totalrow% %header% %uppage% %linkpage% %downpage%');
/**
+----------------------------------------------------------
* 架构函数
+----------------------------------------------------------
* @access public
+----------------------------------------------------------
* @param array $totalrows 总的记录数
* @param array $listrows 每页显示记录数
* @param array $parameter 分页跳转的参数
+----------------------------------------------------------
*/
public function __construct($totalrows,$listrows,$parameter='') {
$this->totalrows = $totalrows;
$this->parameter = $parameter;
$this->rollpage = c('page_rollpage');
$this->listrows = !empty($listrows)?$listrows:c('page_listrows');
$this->totalpages = ceil($this->totalrows/$this->listrows); //总页数
$this->coolpages = ceil($this->totalpages/$this->rollpage);
$this->nowpage = !empty($_get[c('var_page')]) ? $_get[c('var_page')]:1;
if(!empty($this->totalpages) && $this->nowpage>$this->totalpages) {
$this->nowpage = $this->totalpages;
}
$this->firstrow = $this->listrows*($this->nowpage-1);
}
public function setconfig($name,$value) {
if(isset($this->config[$name])) {
$this->config[$name] = $value;
}
}
/**
+----------------------------------------------------------
* 分页显示输出
+----------------------------------------------------------
* @access public
+----------------------------------------------------------
*/
public function show() {
if(0 == $this->totalrows) return '';
$p = c('var_page');
$nowcoolpage = ceil($this->nowpage/$this->rollpage);
$url = $_server['request_uri'].(strpos($_server['request_uri'],'?')?'':?).$this->parameter;
$parse = parse_url($url);
if(isset($parse['query'])) {
parse_str($parse['query'],$params);
unset($params[$p]);
$url = $parse['path'].'?'.http_build_query($params);
}
//上下翻页字符串
$uprow = $this->nowpage-1;
$downrow = $this->nowpage+1;
if ($uprow>0){
$uppage=.$this->config['prev'].;
}else{
$uppage=上一页;
}
if ($downrow totalpages){
$downpage=.$this->config['next'].;
}else{
$downpage=下一页 ;
}
// >> //
/*if($nowcoolpage == 1){
$thefirst = ;
$prepage = ;
}else{
$prerow = $this->nowpage-$this->rollpage;
$prepage = 上.$this->rollpage.页;
$thefirst = .$this->config['first'].;
}
if($nowcoolpage == $this->coolpages){
$nextpage = ;
$theend=;
}else{
$nextrow = $this->nowpage+$this->rollpage;
$theendrow = $this->totalpages;
$nextpage = 下.$this->rollpage.页;
$theend = .$this->config['last'].;
}
*/
// 1 2 3 4 5
$linkpage = ;
if($totalpage rollpage){
for($i = 1;$itotalpages;$i++){ //若页码数不够设置的显示页数 ,比如设置显示5页,但只有3页数据
if($i == $this->nowpage){
$linkpage .= .$i.;
}else{
$linkpage .= .$i.;
}
}
}else{
$mid = ceil($this->rollpage/2);
if($this->nowpage >= $mid && $this->nowpage totalpages - $mid)){ //当前页在页码中间靠右时,保持左边有2个页码
$this->page = $this->nowpage - ($this->rollpage/2 - 1);//这个2使当前页保持在中间(每次显示5个页码时),如果一次显示7个页码,改成3即可保持当前页在中间
for($i = 1; $i rollpage; $i++){
if($this->page == $this->nowpage){
$linkpage .= .$this->page.;
}else{
$linkpage .= page'>.$this->page.;
}
$this->page++;
}
}elseif($this->nowpage for($i = 1; $i rollpage; $i++){ //如1234567 当前页为3
$this->page = $i;
if($this->page == $this->nowpage){
$linkpage .= .$this->page.;
}else{
$linkpage .= page'>.$this->page.;
}
}
}elseif($this->nowpage > $this->totalpages - $mid){ //当前页在coolpages是最后一页时,直接循环出剩下的页面就行
for($i = $this->totalpages - $this->rollpage + 1; $i totalpages; $i++){
$this->page = $i;
if($this->page == $this->nowpage){
$linkpage .= .$this->page.;
}else{
$linkpage .= page'>.$this->page.;
}
}
}
}
$pagestr = str_replace(
array('%header%','%nowpage%','%totalrow%','%totalpage%','%uppage%','%downpage%','%first%','%prepage%','%linkpage%','%nextpage%','%end%'),
array($this->config['header'],$this->nowpage,$this->totalrows,$this->totalpages,$uppage,$downpage,$thefirst,$prepage,$linkpage,$nextpage,$theend),$this->config['theme']);
return $pagestr;
}
}
?>
ad:真正免费,域名+虚机+企业邮箱=0元