php 带省略号的分页,thinkphp 分页带有省略号的例子

thinkphp 默认的分页样式很不好看,分页多了就会出现样式错乱,如何实现分页带有省略号呢?其实方法很简单。这个方法纯天然,无公害。

代码如下:

代码如下

class IndexAction extends Action {

public function index() {

$M = M("Article_21");

$count = $M->count();

import("ORG.Util.Page");

$page = new Page($count, 10);

//$showPage = $page->show();//Thinkphp原有的方法

$showPage = $page->shows();//自定义的方法

$list=$M->limit($page->firstRow, $page->listRows)->select();;

$this->assign("page", $showPage);

$this->assign("list",$list);

$this->display();

}

}

找到Thinkphp核心包中的分页类

在下面添加一下代码:

代码如下

public function shows()

{

$adjacents=2;

if(0 == $this->totalRows) return '';

$p              =   $this->varPage;

$nowCoolPage    =   ceil($this->nowPage/$this->rollPage);

// 分析分页参数

if($this->url){

$depr       =   C('URL_PATHINFO_DEPR');

$url        =   rtrim(U('/'.$this->url,'',false),$depr).$depr.'__PAGE__';

}else{

if($this->parameter && is_string($this->parameter)) {

parse_str($this->parameter,$parameter);

}elseif(is_array($this->parameter)){

$parameter      =   $this->parameter;

}elseif(empty($this->parameter)){

unset($_GET[C('VAR_URL_PARAMS')]);

$var =  !empty($_POST)?$_POST:$_GET;

if(empty($var)) {

$parameter  =   array();

}else{

$parameter  =   $var;

}

}

$parameter[$p]  =   '__PAGE__';

$url            =   U('',$parameter);

}

//上下翻页字符串

$upRow          =   $this->nowPage-1;

$downRow        =   $this->nowPage+1;

// 上一页

if ($upRow>0){

$pages.=   "".$this->config['prev']."";

}else{

$pages.=   "".$this->config['prev']."";

}

//第一页

if($this->nowPage>($adjacents+1)) {

$pages.= "1";

}

// 添加省略号

if($this->nowPage>($adjacents+2)) {

$pages.= "...";

}

// 12345

$pmin = ($this->nowPage>$adjacents) ? ($this->nowPage-$adjacents) : 1;

$pmax = ($this->nowPagetotalPages-$adjacents)) ? ($this->nowPage+$adjacents) : $this->totalPages;

for($i=$pmin; $i<=$pmax; $i++) {

if($i==$this->nowPage) {

$pages.= "".$i."";

}else{

$pages.= "".$i."";

}

}

// 添加省略号

if($this->nowPage < ($this->totalPages-$adjacents-1)) {

$pages.= "...";

}

// 最后一页

if($this->nowPagetotalPages-$adjacents)) {

$pages.= "totalPages,$url)."'>".$this->totalPages."";

}

// 下一页

if ($downRow <= $this->totalPages){

$pages.=   "".$this->config['next']."";

}else{

$pages.=   "".$this->config['next']."";

}

return $pages;

}

html代码:

{$k}->{$v.title}

{$page}

效果图:

70916b9fc3611ddf0fe319d6dfa35bf6.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值