https://github.com/peterujah/pagination
Simple PHP library to generate website pagination
https://github.com/peterujah/pagination
Last synced: about 1 year ago
JSON representation
Simple PHP library to generate website pagination
- Host: GitHub
- URL: https://github.com/peterujah/pagination
- Owner: peterujah
- License: mit
- Created: 2021-12-20T16:38:58.000Z (over 4 years ago)
- Default Branch: main
- Last Pushed: 2024-02-17T12:23:29.000Z (over 2 years ago)
- Last Synced: 2024-03-17T13:41:42.990Z (over 2 years ago)
- Language: PHP
- Homepage:
- Size: 84 KB
- Stars: 2
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# PHP Pagination
Pagination is a simple package that can generate HTML to navigate between listing pages.
It takes as parameter values the type of navigation to generate and the total number of entries in the listing.
The class generates HTML with links to allow the user to click and go to the other listing pages considering the current listing page number.
The class's navigation can be either a list of links or just a group of links pointing to each listing page.
Developers can configure the presentation of the navigation using custom CSS styles or bootstrap pagination.
## Installation
Installation is super-easy via Composer:
```md
composer require peterujah/pagination
```
# USAGES
Pagination can be used as an HTML hyperlink or HTML unordered list
```php
use Peterujah\NanoBlock\Pagination;
$paging = new Pagination($rowCount, Pagination::LIST);
$paging = new Pagination($rowCount, Pagination::LINK);
```
Dump array
```php
$paging = new Pagination(100, Pagination::LIST);
$paging->setLimit(20);
$paging->setCurrentPage($_GET["page"]??1)->show();
```
```php
$paging = new Pagination(100, Pagination::LIST);
$paging->setLimit(20);
$html = $paging->setCurrentPage($_GET["page"]??1)->get();
```
Use built-in css style, only work with `$paging->show()` method
``` php
$paging->setAllowCss(true);
```
## Constants
Initalisation options `new Pagination($rowCount, Pagination::LINK)`
| Options | Description |
|-----------------|-------------------------------------------------------------------------------------|
| LIST | Retrieve result as an html unordered list |
| LINK | Retrieve result in HTML hyperlink |
## Methods
| Method | Description |
|---------------------------|-------------------------------------------------------------------------------------|
| setLimit(int) | Set query row display limit per page |
| setCurrentPage(int) | Set current paging number |
| addQuery(string, string) | Add query parameter (key, value) |
| setQueries(array) | Set query parameters array(key => value) |
| setAllowCss(bool) | Enable default paging buttons styling |
| setClass(string) | Set a custom class name for paging list items `li` |
| setContainerClass(string) | Set a custom class name for pagination unordered list `ul` |
| setTruncate(int) | Set pagination truncate offset |
| getSize() :int | Get total pagination calculated cell pages |
| getOffset() :int | Get pagination next page start offset |
| get() :string|false | Returns pagination generated html |
| show() :void | Display pagination buttons |
## Full usage example
Example: Specify the total number of rows in your table `findTotalUsers :(int)`, then select only the number of items to show per page `findUsers(startOffset, limitPerPage)`
```php
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 "
{$row->userFullname}";
}
// Add pagination buttons
echo "";
echo $paging->get();
echo "";
```