tp5.0分页样式调控

Posted 大道至简

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了tp5.0分页样式调控相关的知识,希望对你有一定的参考价值。

基础的分页调用

    /**
    *  控制器部分代码
     */
    //实例化模型
    $areasModel=new Areas();
    //分页数据集
    $listarea=$areasModel->paginate($page);
    //分页显示输出
    $page=$listarea->render();
    //模板赋值
    $this->assign(listarea,$listarea);
    $this->assign(page, $page);
    /**
    *  模板页面部分代码
     */
    {$page}//分页输出
    {$listarea->total()}//数据总数
    {$listarea->lastPage()}//总页数
    {$listarea->currentPage()}//当前页

分页类修改,写了三个样式;

    public $rollPage=5;//分页栏每页显示的页数
    public $showPage=12;//总页数超过多少条时显示的首页末页
    /**
     * 分页样式一:首页末页不管何时都显示
     * 
     * 分页样式二:前n页时不显示首页,后n页时不显示末页;n=分页栏数/2(向下取整)
     */
    //样式1和样式2核心代码
    /**
         * 页码按钮
         * @return string
         */
        protected function getLinks()
        {
            if ($this->simple)
                return ‘‘;
            $block = [
                first  => null,
                slider => null,
                last   => null
            ];
            $rollPage = $this->rollPage;//分页栏每页显示的页数
            $nowPage = floor($rollPage/2);//计算分页临时变量
            
            if($this->lastPage <= $rollPage){
                $block[first] = $this->getUrlRange(1, $this->lastPage);
            }else if($this->currentPage <= $nowPage){
                $block[first] = $this->getUrlRange(1, $rollPage);
            }else if($this->currentPage >= ($this->lastPage - $nowPage)){
                $block[first] = $this->getUrlRange($this->lastPage - $rollPage+1, $this->lastPage);
            }else{
                $block[first] = $this->getUrlRange($this->currentPage - $nowPage, $this->currentPage + $nowPage);
            }
            $html = ‘‘;
            if (is_array($block[first])) {
                $html .= $this->getUrlLinks($block[first]);
            }
            return $html;
        }
    /**
     * 分页样式三
     * 按照段分页,具体的效果可以自己下载代码
     * 
     * 例1:1-5,4-8,7-11,...
     * 在第一段时:点击5时跳到下一段
     * 在第二段时:点击8时跳到下一段,点击4时回到上一段
     * 
     * 例2:1-7,6-12,11-17,...
     * 在第二段时:点击12时跳到下一段点击6时回到上一段
     * 在第三段时:点击17时跳到下一段,点击11时回到上一段
     * 
     */
    //核心代码
    /**
         * 页码按钮
         * @return string
         */
        protected function getLinks()
        {
            if ($this->simple)
                return ‘‘;
            $block = [
                first  => null,
                slider => null,
                last   => null
            ];
            $rollPage = $this->rollPage;//分页栏每页显示的页数
            $nowPage = floor($rollPage/2);//计算分页临时变量
            
            if($this->lastPage <= $rollPage){
                $block[first] = $this->getUrlRange(1, $this->lastPage);
            }else if($this->currentPage==0 || $this->currentPage<$rollPage){
                $block[first] = $this->getUrlRange(1, $rollPage);
            }else{
                $n=floor(($this->currentPage+($rollPage-4))/($rollPage-2));
                $start=$n*($rollPage-2)-($rollPage-3);
                $end=$start+$rollPage-1;
                $end=$end>$this->lastPage ? $this->lastPage : $end;
                $block[first] = $this->getUrlRange($start,$end);
            }
            $html = ‘‘;
            if (is_array($block[first])) {
                $html .= $this->getUrlLinks($block[first]);
            }
            return $html;
        }

样式一图:

技术分享图片

样式二图:

技术分享图片

样式三图:

技术分享图片

 

以上是关于tp5.0分页样式调控的主要内容,如果未能解决你的问题,请参考以下文章

TP5.0中的小知识总结

tp5.0:加载jscss等样式文件

tp5.0 修改了默认控制器,为啥样式路径都不对了

带分页样式的thinkphp数据查询

modx - 当我在同上片段中使用“&documents =”参数时,分页不起作用

thinkphp分页样式css代码