PHP Classes

Peter PHP Pagination Class: Generate HTML to navigate between listing pages

Recommend this page to a friend!
  Info   View files Documentation   View files View files (5)   DownloadInstall with Composer Download .zip   Reputation   Support forum   Blog    
Last Updated Ratings Unique User Downloads Download Rankings
2023-12-27 (5 months ago) RSS 2.0 feedNot enough user ratingsTotal: 82 All time: 10,067 This week: 80Up
Version License PHP version Categories
peter-pagination 1.0GNU General Publi...5HTML, PHP 5
Description 

Author

This package 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 CSS styles.

Picture of Ujah Chigozie peter
  Performance   Level  
Name: Ujah Chigozie peter <contact>
Classes: 25 packages by
Country: Nigeria Nigeria
Innovation award
Innovation award
Nominee: 11x

Documentation

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:

composer require peterujah/pagination

USAGES

Pagination can be used as an HTML hyperlink or HTML unordered list

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

Dump array

 $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();

Use built-in css style, only work with $paging->show() method

$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 | | setParentClass(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() :HTML: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)

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>";

  Files folder image Files  
File Role Description
Files folder imagesrc (1 file)
Files folder imagetests (1 file)
Accessible without login Plain text file composer.json Data Auxiliary data
Accessible without login Plain text file LICENSE Lic. License text
Accessible without login Plain text file README.md Doc. Documentation

  Files folder image Files  /  src  
File Role Description
  Plain text file Pagination.php Class Class source

  Files folder image Files  /  tests  
File Role Description
  Plain text file PaginationTest.php Class Class source

 Version Control Unique User Downloads Download Rankings  
 100%
Total:82
This week:0
All time:10,067
This week:80Up