Thinkphp 修改分页类

Thinkphp 修改分页类

九月 12, 2016 阅读 491 字数 2889 评论 0 喜欢 1

这是我修改后的分页类 为的是适应AdminTlE 模板

这是AdminTLE调用分类生成的信息

<ul class=\"pagination pagination-bg no-margin pull-right\">

 {$page}
 
</ul>

 

实际生成的代码是

 

<ul class=\"pagination pagination-bg no-margin pull-right\">
 <li><a class=\"prev\" href=\"/index.php/Admin/Message/request/p/1.html\">&lt;&lt;</a></li>
 <li><a class=\"num\" href=\"/index.php/Admin/Message/request/p/1.html\">1</a></li>
 <li class=\"current\"><a href=\"#\">2</a></li>
 <li><a class=\"num\" href=\"/index.php/Admin/Message/request/p/3.html\">3</a></li>
 <li><a class=\"num\" href=\"/index.php/Admin/Message/request/p/4.html\">4</a></li>
 <li><a class=\"num\" href=\"/index.php/Admin/Message/request/p/5.html\">5</a></li>
 <li><a class=\"next\" href=\"/index.php/Admin/Message/request/p/3.html\">&gt;&gt;</a></li> 
</ul>

效果为:

\"nwt20160912221247\"

以下是Page.class.php的Show() 方法

/**
   * 组装分页链接
   * @return string
   */
  public function show() {
      if(0 == $this->totalRows) return \'\';

      /* 生成URL */
      $this->parameter[$this->p] = \'[PAGE]\';
      $this->url = U(ACTION_NAME, $this->parameter);
      /* 计算分页信息 */
      $this->totalPages = ceil($this->totalRows / $this->listRows); //总页数
      if(!empty($this->totalPages) && $this->nowPage > $this->totalPages) {
          $this->nowPage = $this->totalPages;
      }

      /* 计算分页临时变量 */
      $now_cool_page      = $this->rollPage/2;
$now_cool_page_ceil = ceil($now_cool_page);
$this->lastSuffix && $this->config[\'last\'] = $this->totalPages;

      //上一页
      $up_row  = $this->nowPage - 1;
      $up_page = $up_row > 0 ? \'<li><a class=\"prev\" href=\"\' . $this->url($up_row) . \'\">\' . $this->config[\'prev\'] . \'</a></li>\' : \'\';

      //下一页
      $down_row  = $this->nowPage + 1;
      $down_page = ($down_row <= $this->totalPages) ? \'<li><a class=\"next\" href=\"\' . $this->url($down_row) . \'\">\' . $this->config[\'next\'] . \'</a></li>\' : \'\';

      //第一页
      $the_first = \'\';
      if($this->totalPages > $this->rollPage && ($this->nowPage - $now_cool_page) >= 1){
          $the_first = \'<li><a class=\"first\" href=\"\' . $this->url(1) . \'\">\' . $this->config[\'first\'] . \'</a></li>\';
      }

      //最后一页
      $the_end = \'\';
      if($this->totalPages > $this->rollPage && ($this->nowPage + $now_cool_page) < $this->totalPages){
          $the_end = \'<li><a class=\"end\" href=\"\' . $this->url($this->totalPages) . \'\">\' . $this->config[\'last\'] . \'</a></li>\';
      }

      //数字连接
      $link_page = \"\";
      for($i = 1; $i <= $this->rollPage; $i++){
   if(($this->nowPage - $now_cool_page) <= 0 ){
      $page = $i;
   }elseif(($this->nowPage + $now_cool_page - 1) >= $this->totalPages){
      $page = $this->totalPages - $this->rollPage + $i;
   }else{
      $page = $this->nowPage - $now_cool_page_ceil + $i;
   }
          if($page > 0 && $page != $this->nowPage){

              if($page <= $this->totalPages){
                  $link_page .= \'<li><a class=\"num\" href=\"\' . $this->url($page) . \'\">\' . $page . \'</a></li>\';
              }else{
                  break;
              }
          }else{
              if($page > 0 && $this->totalPages != 1){
                  $link_page .= \'<li class=\"current\"><a href=\"#\">\' . $page . \'</a></li>\';
              }
          }
      }

      //替换分页内容
      $page_str = str_replace(
          array(\'%HEADER%\', \'%NOW_PAGE%\', \'%UP_PAGE%\', \'%DOWN_PAGE%\', \'%FIRST%\', \'%LINK_PAGE%\', \'%END%\', \'%TOTAL_ROW%\', \'%TOTAL_PAGE%\'),
          array($this->config[\'header\'], $this->nowPage, $up_page, $down_page, $the_first, $link_page, $the_end, $this->totalRows, $this->totalPages),
          $this->config[\'theme\']);
      return \"{$page_str}\";
  }