irfantoor / pagination
创建普通或反转分页
0.2
2021-01-23 00:15 UTC
Requires
- php: >=7.3
Requires (Dev)
- irfantoor/test: ~0.7
README
这是一个简单的分页库,可用于创建页面底部的分页链接。
快速入门
示例:
<html> <head> <style> .pagination a {text-decoration: none} /* from bootstrap.css */ .pagination { display: -webkit-box; display: -ms-flexbox; display: flex; padding-left: 0; list-style: none; border-radius: 0.25rem; } .page-link { position: relative; display: block; padding: 0.5rem 0.75rem; margin-left: -1px; line-height: 1.25; color: #007bff; background-color: #fff; border: 1px solid #dee2e6; } .page-link:hover { color: #0056b3; text-decoration: none; background-color: #e9ecef; border-color: #dee2e6; } .page-link:focus { z-index: 2; outline: 0; box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25); } .page-link:not(:disabled):not(.disabled) { cursor: pointer; } .page-item:first-child .page-link { margin-left: 0; border-top-left-radius: 0.25rem; border-bottom-left-radius: 0.25rem; } .page-item:last-child .page-link { border-top-right-radius: 0.25rem; border-bottom-right-radius: 0.25rem; } .page-item.active .page-link { z-index: 1; color: #fff; background-color: #007bff; border-color: #007bff; } .page-item.disabled .page-link { color: #6c757d; pointer-events: none; cursor: auto; background-color: #fff; border-color: #dee2e6; } </style> </head> <body> <?php require dirname(__DIR__) . "/vendor/autoload.php"; use IrfanTOOR\Pagination; $p = new Pagination(); echo $p->html(100); # normal pagination echo $p->html(100, true); # reverse pagination ?> </body> </html>
构建分页
方法: new Pagination($options = [])
参数:
- array $options 分页选项数组
示例:
<?php use IrfanTOOR\Pagiation; $pagination = new Pagination([ 'base_url' => '/blog//', 'per_page' => 20, 'int_pages' => 9, ]);
设置基础URL
方法: setBaseUrl(string $url)
参数:
- string url - 进行分页时使用的基URL,默认为 '/'
返回: 无
示例:
<?php $pagination->setBaseUrl('/users//');
设置页面组件名称
方法: setPageComponent(string $page_component)
参数:
- string $page_component URL中页面组件的名称,用于从 $_GET 中提取页码
返回: 无
示例:
<?php $pagination->setPageComponent('page_no'); # now the url will be like : .../?page_no=3
设置每页条目数
方法: setPerPage(int $per_page)
参数:
- int $per_page - 页面上要显示的条目数,默认为 10
返回: 无
示例:
<?php $per_page = 100; $pagination->setPerPage($per_page);
中间页面数
方法: setIntermediatePages(int $int_pages)
参数:
- int $int_page - 分页栏中要显示的中间页面数,默认为 5(应该是奇数)
返回: 无
示例:
<?php $pagination->setIntermediatePages(7);
当前页
当前页码,通过 $_GET 全局变量传递或为 1。注意:这可以被覆盖,以应用任何类型的规范化等。
方法: currentPage()
参数: 无
返回:
int 当前页码
示例:
<?php $page = $pagination->currentPage();
检索分页HTML
注意:它从 ```$_GET['page']``` 中检索当前页。
方法: setIntermediatePages(int $int_pages)
参数:
- int $total 记录总数
- bool $reverse 正常(false),或反转分页(true)
返回:
可以直接在HTML页面中显示的HTML块
示例:
<?php # ... $total = 10000; # from a database query for example echo $pagination->html($total); # normal pagination echo $pagination->html($total, true); # reverse pagination