peterujah/pagination

Pagination - 简单的PHP库,用于生成网站分页

1.7 2024-04-24 00:38 UTC

This package is auto-updated.

Last update: 2024-09-24 01:41:07 UTC


README

Pagination 是一个简单的包,可以生成用于在列表页面之间导航的 HTML。

它接受参数值,包括要生成的导航类型和列表中的总条目数。

该类生成带有链接的 HTML,允许用户点击并转到其他列表页面,同时考虑当前列表页码。

类的导航可以是链接列表,也可以是指向每个列表页面的链接组。

开发者可以使用自定义 CSS 样式或 Bootstrap 分页来配置导航的显示方式。

安装

通过 Composer 安装非常简单

composer require peterujah/pagination

用法

Pagination 可以用作 HTML 链接或 HTML 无序列表

 use Peterujah\NanoBlock\Pagination;
 $paging = new Pagination($rowCount, Pagination::LIST);
 $paging = new Pagination($rowCount, Pagination::LINK);

数组输出

 $paging = new Pagination(100, Pagination::LIST);
 $paging->setLimit(20);
 $paging->setCurrentPage($_GET["page"]??1)->show();
 $paging = new Pagination(100, Pagination::LIST);
 $paging->setLimit(20);
 $html = $paging->setCurrentPage($_GET["page"]??1)->get();

使用内置的 CSS 样式,仅与 $paging->show() 方法一起使用

$paging->setAllowCss(true);

常量

初始化选项 new Pagination($rowCount, Pagination::LINK)

方法

完整使用示例

示例:指定表中总行数 findTotalUsers :(int),然后选择每页显示的项目数量 findUsers(startOffset, limitPerPage)

use Peterujah\NanoBlock\Pagination;
// Configure page limit
$queryLimit = 30;
$queryPage = $_GET["n"]??1;
$queryStart = ($queryPage - 1) * $queryLimit;

// Query your database table
$users = (object) array(
    "users" => $conn->findUsers($queryStart, $queryLimit),
    "rowCount" => $conn->findTotalUsers()
);

// Initialize Pagination
$paging = new Pagination($users->rowCount, Pagination::LIST);
$paging->setLimit($queryLimit);
$paging->setCurrentPage($queryPage);

// Display your contents
foreach($users->users as $row){
    echo "<div>{$row->userFullname}</div>";
}
// Add pagination buttons
echo "<nav aria-label='Page navigation'>";
echo $paging->get();
echo "</nav>";