首页 > 软件开发 > PHP >

ThinkPHP5 自定义分页模板

来源:互联网 2023-03-16 18:51:06 161

用ThinkPHP5实现百度分页功能(案例提供了首页和末页功能,实际开发中建议去掉。因为末页功能,页数越往后, mysql过滤的条数变少,执行时间就越来越长。大多数情况下,我们关心前几页数据,很少关心后面的数据。)7Bl办公区 - 实用经验教程分享!

工具/原料

  • 开发环境 PHP5.6 MySQL5.7

方法/步骤

  • 1

    ThinkPHP默认的分页模板7Bl办公区 - 实用经验教程分享!

    ThinkPHP5 自定义分页模板7Bl办公区 - 实用经验教程分享!

  • 1本页面未经授权抓取自百度经验
  • 2

    自定义分页模板7Bl办公区 - 实用经验教程分享!

    ThinkPHP5 自定义分页模板7Bl办公区 - 实用经验教程分享!

  • 3

    实现代码7Bl办公区 - 实用经验教程分享!

    ?php7Bl办公区 - 实用经验教程分享!

    7Bl办公区 - 实用经验教程分享!

    namespace tool;7Bl办公区 - 实用经验教程分享!

    7Bl办公区 - 实用经验教程分享!

    use think\Paginator;7Bl办公区 - 实用经验教程分享!

    7Bl办公区 - 实用经验教程分享!

    class TpPageHelper extends Paginator7Bl办公区 - 实用经验教程分享!

    {7Bl办公区 - 实用经验教程分享!

    //TODO : 中间按钮个数7Bl办公区 - 实用经验教程分享!

    protected $bnumber = 10;7Bl办公区 - 实用经验教程分享!

    7Bl办公区 - 实用经验教程分享!

    //TODO : 首页7Bl办公区 - 实用经验教程分享!

    protected function getfirstButton($str = '')7Bl办公区 - 实用经验教程分享!

    {7Bl办公区 - 实用经验教程分享!

    if ($this->currentPage() = 1) {7Bl办公区 - 实用经验教程分享!

    return $this->getDisabledTextWrapper($str);7Bl办公区 - 实用经验教程分享!

    }7Bl办公区 - 实用经验教程分享!

    7Bl办公区 - 实用经验教程分享!

    $url = $this->url(1);7Bl办公区 - 实用经验教程分享!

    7Bl办公区 - 实用经验教程分享!

    return $this->getPageLinkWrapper($url, $str);7Bl办公区 - 实用经验教程分享!

    }7Bl办公区 - 实用经验教程分享!

    7Bl办公区 - 实用经验教程分享!

    //TODO : 上一页7Bl办公区 - 实用经验教程分享!

    protected function getPreviousButton($text = "«")7Bl办公区 - 实用经验教程分享!

    {7Bl办公区 - 实用经验教程分享!

    7Bl办公区 - 实用经验教程分享!

    if ($this->currentPage() = 1) {7Bl办公区 - 实用经验教程分享!

    return $this->getDisabledTextWrapper($text);7Bl办公区 - 实用经验教程分享!

    }7Bl办公区 - 实用经验教程分享!

    7Bl办公区 - 实用经验教程分享!

    $url = $this->url(7Bl办公区 - 实用经验教程分享!

    $this->currentPage() - 17Bl办公区 - 实用经验教程分享!

    );7Bl办公区 - 实用经验教程分享!

    7Bl办公区 - 实用经验教程分享!

    return $this->getPageLinkWrapper($url, $text);7Bl办公区 - 实用经验教程分享!

    }7Bl办公区 - 实用经验教程分享!

    7Bl办公区 - 实用经验教程分享!

    //TODO : 页码7Bl办公区 - 实用经验教程分享!

    protected function getLinks()7Bl办公区 - 实用经验教程分享!

    {7Bl办公区 - 实用经验教程分享!

    if ($this->total > $this->listRows) {7Bl办公区 - 实用经验教程分享!

    if ($this->lastPage $this->bnumber) {7Bl办公区 - 实用经验教程分享!

    return $this->getUrlLinks($this->getUrlRange(1, $this->lastPage));7Bl办公区 - 实用经验教程分享!

    } else {7Bl办公区 - 实用经验教程分享!

    $min = 1;7Bl办公区 - 实用经验教程分享!

    if ($this->currentPage > $this->bnumber / 2) $min = $this->currentPage - floor($this->bnumber / 2);7Bl办公区 - 实用经验教程分享!

    if ($this->lastPage - $this->currentPage $this->bnumber / 2) $min = $this->lastPage - $this->bnumber 1;7Bl办公区 - 实用经验教程分享!

    return $this->getUrlLinks($this->getUrlRange($min, $min $this->bnumber - 1));7Bl办公区 - 实用经验教程分享!

    }7Bl办公区 - 实用经验教程分享!

    }7Bl办公区 - 实用经验教程分享!

    }7Bl办公区 - 实用经验教程分享!

    7Bl办公区 - 实用经验教程分享!

    //TODO : 下一页7Bl办公区 - 实用经验教程分享!

    protected function getNextButton($text = '»')7Bl办公区 - 实用经验教程分享!

    {7Bl办公区 - 实用经验教程分享!

    if (!$this->hasMore) {7Bl办公区 - 实用经验教程分享!

    return $this->getDisabledTextWrapper($text);7Bl办公区 - 实用经验教程分享!

    }7Bl办公区 - 实用经验教程分享!

    7Bl办公区 - 实用经验教程分享!

    $url = $this->url($this->currentPage() 1);7Bl办公区 - 实用经验教程分享!

    7Bl办公区 - 实用经验教程分享!

    return $this->getPageLinkWrapper($url, $text);7Bl办公区 - 实用经验教程分享!

    }7Bl办公区 - 实用经验教程分享!

    7Bl办公区 - 实用经验教程分享!

    //TODO : 末页7Bl办公区 - 实用经验教程分享!

    protected function getlastButton($text = '')7Bl办公区 - 实用经验教程分享!

    {7Bl办公区 - 实用经验教程分享!

    if (!$this->hasMore) {7Bl办公区 - 实用经验教程分享!

    return $this->getDisabledTextWrapper($text);7Bl办公区 - 实用经验教程分享!

    }7Bl办公区 - 实用经验教程分享!

    7Bl办公区 - 实用经验教程分享!

    $url = $this->url($this->lastPage());7Bl办公区 - 实用经验教程分享!

    7Bl办公区 - 实用经验教程分享!

    return $this->getPageLinkWrapper($url, $text);7Bl办公区 - 实用经验教程分享!

    }7Bl办公区 - 实用经验教程分享!

    7Bl办公区 - 实用经验教程分享!

    //TODO : 渲染页7Bl办公区 - 实用经验教程分享!

    public function render()7Bl办公区 - 实用经验教程分享!

    {7Bl办公区 - 实用经验教程分享!

    //数据是否足够分页7Bl办公区 - 实用经验教程分享!

    if ($this->hasPages()) {7Bl办公区 - 实用经验教程分享!

    return sprintf(7Bl办公区 - 实用经验教程分享!

    'ul class="btn-item fr">%s %s %s %s %s/ul>',7Bl办公区 - 实用经验教程分享!

    $this->getfirstButton('首页'),7Bl办公区 - 实用经验教程分享!

    $this->getPreviousButton('上一页'),7Bl办公区 - 实用经验教程分享!

    $this->getLinks(),7Bl办公区 - 实用经验教程分享!

    $this->getNextButton('下一页'),7Bl办公区 - 实用经验教程分享!

    $this->getlastButton('末页')7Bl办公区 - 实用经验教程分享!

    );7Bl办公区 - 实用经验教程分享!

    }7Bl办公区 - 实用经验教程分享!

    }7Bl办公区 - 实用经验教程分享!

    7Bl办公区 - 实用经验教程分享!

    //TODO : 生成禁用按钮7Bl办公区 - 实用经验教程分享!

    protected function getDisabledTextWrapper($text)7Bl办公区 - 实用经验教程分享!

    {7Bl办公区 - 实用经验教程分享!

    return 'li class="disabled">span>' . $text . '/span>/li>';7Bl办公区 - 实用经验教程分享!

    }7Bl办公区 - 实用经验教程分享!

    7Bl办公区 - 实用经验教程分享!

    //TODO : 生成普通按钮7Bl办公区 - 实用经验教程分享!

    protected function getPageLinkWrapper($url, $page)7Bl办公区 - 实用经验教程分享!

    {7Bl办公区 - 实用经验教程分享!

    if ($page == $this->currentPage()) {7Bl办公区 - 实用经验教程分享!

    return $this->getActivePageWrapper($page);7Bl办公区 - 实用经验教程分享!

    }7Bl办公区 - 实用经验教程分享!

    7Bl办公区 - 实用经验教程分享!

    return $this->getAvailablePageWrapper($url, $page);7Bl办公区 - 实用经验教程分享!

    }7Bl办公区 - 实用经验教程分享!

    7Bl办公区 - 实用经验教程分享!

    //TODO : 生成当前页按钮7Bl办公区 - 实用经验教程分享!

    protected function getActivePageWrapper($text)7Bl办公区 - 实用经验教程分享!

    {7Bl办公区 - 实用经验教程分享!

    return 'li class="active">span>' . $text . '/span>/li>';7Bl办公区 - 实用经验教程分享!

    }7Bl办公区 - 实用经验教程分享!

    7Bl办公区 - 实用经验教程分享!

    //TODO : 可点击按钮7Bl办公区 - 实用经验教程分享!

    protected function getAvailablePageWrapper($url, $page)7Bl办公区 - 实用经验教程分享!

    {7Bl办公区 - 实用经验教程分享!

    return 'li>a href="' . htmlentities($url) . '">' . $page . '/a>/li>';7Bl办公区 - 实用经验教程分享!

    }7Bl办公区 - 实用经验教程分享!

    7Bl办公区 - 实用经验教程分享!

    //TODO : 批量生成页码按钮7Bl办公区 - 实用经验教程分享!

    protected function getUrlLinks(array $urls)7Bl办公区 - 实用经验教程分享!

    {7Bl办公区 - 实用经验教程分享!

    $html = '';7Bl办公区 - 实用经验教程分享!

    7Bl办公区 - 实用经验教程分享!

    foreach ($urls as $page => $url) {7Bl办公区 - 实用经验教程分享!

    $html .= $this->getPageLinkWrapper($url, $page);7Bl办公区 - 实用经验教程分享!

    }7Bl办公区 - 实用经验教程分享!

    7Bl办公区 - 实用经验教程分享!

    return $html;7Bl办公区 - 实用经验教程分享!

    }7Bl办公区 - 实用经验教程分享!

    7Bl办公区 - 实用经验教程分享!

    }7Bl办公区 - 实用经验教程分享!

  • 4

    4.1 将 TpPageHelper.php 放在extend\tool下7Bl办公区 - 实用经验教程分享!

    4.2 修改默认模板7Bl办公区 - 实用经验教程分享!

    4.3 项目链接:http://pan.baidu.com/s/1miIIcmG密码:wwnl7Bl办公区 - 实用经验教程分享!

    ThinkPHP5 自定义分页模板7Bl办公区 - 实用经验教程分享!

    ThinkPHP5 自定义分页模板7Bl办公区 - 实用经验教程分享!

  • 以上方法由办公区教程网编辑摘抄自百度经验可供大家参考!7Bl办公区 - 实用经验教程分享!


    标签: PHP

    办公区 Copyright © 2016-2023 www.bgqu.net. Some Rights Reserved. 备案号:湘ICP备2020019561号统计代码