38 lines
2.0 KiB
PHTML
38 lines
2.0 KiB
PHTML
<div>
|
|
<div class="row mb-2">
|
|
<!-- Form for Pagination -->
|
|
<div id="paginationButtons" class="col-auto m-auto btn-group">
|
|
|
|
<?php
|
|
$params = $_GET;
|
|
unset($params['page']); // Remove the page parameter to avoid duping
|
|
function buildUrl($page, $params): string
|
|
{
|
|
$params['page'] = $page;
|
|
return '?' . http_build_query($params);
|
|
}
|
|
?>
|
|
<!-- Start Button -->
|
|
<a class="btn btn-outline-primary" href="<?= buildUrl(0, $params) ?>0" <?= $view->pageNumber <= 0 ? 'disabled' : '' ?>><i class="bi bi-chevron-double-left"></i> Start</a>
|
|
<!-- Back Button -->
|
|
<a class="btn btn-outline-primary" href="<?= buildUrl(max($view->pageNumber - 1, 0), $params)?> " <?= $view->pageNumber <= 0 ? 'disabled' : '' ?>><i class="bi bi-chevron-left"></i> Back</a>
|
|
<!-- Dynamic Page Buttons -->
|
|
<?php
|
|
$totalPages = $view->paginator->getTotalPages();
|
|
for ($i = $view->pageNumber - 2; $i <= $view->pageNumber + 2; $i++) {
|
|
if ($i >= 0 && $i < $totalPages): ?>
|
|
<a href="<?= buildUrl($i, $params) ?>"
|
|
class="btn <?= $i === $view->pageNumber ? 'btn-dark' : 'btn-outline-primary' ?>"
|
|
<?= $i === $view->pageNumber ? 'disabled' : '' ?>>
|
|
<?= $i + 1 ?>
|
|
</a>
|
|
<?php endif;
|
|
} ?>
|
|
<!-- Forward Button -->
|
|
<a class="btn btn-outline-primary" href="<?=buildUrl(min($view->pageNumber + 1, $totalPages), $params)?>" <?= $view->pageNumber >= $totalPages - 1 ? 'disabled' : '' ?>>Forward <i class="bi bi-chevron-right"></i></a>
|
|
<!-- End Button -->
|
|
<a class="btn btn-outline-primary" href="<?= buildUrl($totalPages - 1, $params) ?>"<?= $view->pageNumber >= $totalPages - 1 ? 'disabled' : '' ?>>End <i class="bi bi-chevron-double-right"></i></a>
|
|
</div>
|
|
</div>
|
|
</div>
|