Created
March 18, 2024 16:20
-
-
Save estefanionsantos/79efa3baba8ccd968aa7246b5b95a8b1 to your computer and use it in GitHub Desktop.
Paginator Rubricate
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
require 'vendor/autoload.php'; | |
use Rubricate\Paginator\Paginator; | |
use Rubricate\Paginator\TotalPaginator; | |
use Rubricate\Paginator\PerPagePaginator; | |
use Rubricate\Paginator\CurrentNumberPaginator; | |
use Rubricate\Paginator\LinkNumberPaginator; | |
if(!function_exists('anchor')){ | |
function anchor($link, $name){ | |
return sprintf('<a href="%s">%s</a>', $link, $name); | |
} | |
} | |
$currNum = (isset($_GET['page'])) ? (int) $_GET['page']: 0; | |
$url = 'http://127.0.0.1:8080/main.php?page='; | |
$currStr = '<b style="color: #c00;">%s</b>'; | |
$page = new Paginator( | |
new TotalPaginator(200), | |
new PerPagePaginator(10), | |
new CurrentNumberPaginator($currNum), | |
new LinkNumberPaginator(2) | |
); | |
if($page->haveToPaginate()){ | |
echo (!$page->getArrow()->getFirst())? 'First |' : | |
anchor($url . $page->getArrow()->getFirst(), 'First' ); | |
echo ' '; | |
echo (!$page->getArrow()->getPrev())? 'Previous' : | |
anchor($url . $page->getArrow()->getPrev(), 'Previous'); | |
echo ' '; | |
echo ' - '; | |
foreach ($page->getNumber()->getAll() as $num ){ | |
echo ($page->getNumber()->getCurrent() == $num )? | |
sprintf($currStr, $num) : anchor($url . $num, $num); | |
echo ' - '; | |
} | |
echo (!$page->getArrow()->getNext())? 'Next' : | |
anchor($url . $page->getArrow()->getNext(), 'Next'); | |
echo ' '; | |
echo (!$page->getArrow()->getLast())? '| Last' : | |
anchor($url . $page->getArrow()->getLast(), 'Last'); | |
echo ' '; | |
} | |
## SQL string | |
/* | |
$sql = '' | |
. 'SELECT * FROM tb_lorem ' | |
.'LIMIT 10 OFFSET ' | |
. $page->getOffset(); | |
*/ | |
# EOF |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment