QQ登录

轻量实用的PHP分页组件:Paginator

作者:小柯 , 分类:PHP , 浏览:735

安装

使用composer安装,如果还不会composer请参考:http://www.phpcomposer.com/

composer require "jasongrimes/paginator:~1.0"

基本使用

安装好了,直接引入,设置几个参数即可渲染网页。注意这里我们使用了bootstrap样式。

<?phprequire '../vendor/autoload.php';use JasonGrimes\Paginator;

$totalItems = 1000;  //总页数$itemsPerPage = 50;  // 每页显示数$currentPage = 8; // 当前所在页数$urlPattern = '/foo/page/(:num)';  // 定义跳转地址$paginator = new Paginator($totalItems, $itemsPerPage, $currentPage, $urlPattern);?><html>
  <head>
    <link rel="stylesheet" href="//cdn.bootcss.com/bootstrap/3.3.7/css/bootstrap.min.css">
  </head>
  <body>    <?php 
      echo $paginator; 
    ?>
  </body>
</html>

使用浏览器你会看到这个效果:

是不是很漂亮,查看网页生成的源代码会发现:

<ul class="pagination">
  <li><a href="/foo/page/7">« Previous</a></li>
  <li><a href="/foo/page/1">1</a></li>
  <li class="disabled"><span>...</span></li>
  <li><a href="/foo/page/5">5</a></li>
  <li><a href="/foo/page/6">6</a></li>
  <li><a href="/foo/page/7">7</a></li>
  <li class="active"><a href="/foo/page/8">8</a></li>
  <li><a href="/foo/page/9">9</a></li>
  <li><a href="/foo/page/10">10</a></li>
  <li><a href="/foo/page/11">11</a></li>
  <li><a href="/foo/page/12">12</a></li>
  <li class="disabled"><span>...</span></li>
  <li><a href="/foo/page/20">20</a></li>
  <li><a href="/foo/page/9">Next »</a></li></ul>

所以,我们可以根据项目需求自定义CSS样式来改变分页条的外观,但bootstrap的风格已经挺好了。

自定义分页

我们可以使用$paginator->getPages()$paginator->getNextUrl(), 以及$paginator->getPrevUrl()来更好的控制HTML输出。

<?php 
    $html = '<ul class="pagination">';    if ($paginator->getPrevUrl()) {
        $html .= '<li><a href="' . $paginator->getPrevUrl() . '">« 上一页</a></li>';
    }    foreach ($paginator->getPages() as $page) {        if ($page['url']) {
            $html .= '<li' . ($page['isCurrent'] ? ' class="active"' : '') . '><a href="' . $page['url'] . '">' . $page['num'] . '</a></li>';
        } else {
            $html .= '<li class="disabled"><span>' . $page['num'] . '</span></li>';
        }
    }    if ($paginator->getNextUrl()) {
        $html .= '<li><a href="' . $paginator->getNextUrl() . '">下一页 »</a></li>';
    }
    $html .= '</ul>';    echo $html; ?>

如果是在移动端应用,可以将数字分页收起来,换成下拉选取分页的方式,节省空间也方便操作,具体代码请查看本文演示DEMO

Paginator项目在Github上的地址是:https://github.com/jasongrimes/php-paginator


玄玄博客:www.blogxuan.com

环企优站:www.usezan.com

高端定制:www.i3me.com

  • 355

    给力

  • 200

    淡定

  • 252

    学习

  • 10

    坑爹

  • 151

    打酱油

发表评论

昵称
邮箱
表情
验证码
搜索
最新发表
热门文章
标签列表
友情链接 +申请友链