idk
This commit is contained in:
@@ -40,39 +40,6 @@ class Paginator {
|
|||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function setPageUri($page)
|
|
||||||
{
|
|
||||||
$uri = $_SERVER['REQUEST_URI'];
|
|
||||||
$uriComp = parse_url($uri);
|
|
||||||
$params = [];
|
|
||||||
|
|
||||||
// Parse existing query parameters
|
|
||||||
if (isset($uriComp['query'])) {
|
|
||||||
parse_str($uriComp['query'], $params);
|
|
||||||
} else {
|
|
||||||
$params = array();
|
|
||||||
}
|
|
||||||
|
|
||||||
// Avoid unnecessary redirection if the page is already correct
|
|
||||||
if (isset($params['page']) && (int)$params['page'] === $page) {
|
|
||||||
exit; // Do nothing if already on the correct page
|
|
||||||
}
|
|
||||||
|
|
||||||
// Update the 'page' parameter
|
|
||||||
$params['page'] = $page;
|
|
||||||
|
|
||||||
// Rebuild the query string
|
|
||||||
$newUri = http_build_query($params);
|
|
||||||
|
|
||||||
// Redirect to the updated URI
|
|
||||||
// Use the current path or root
|
|
||||||
return
|
|
||||||
[
|
|
||||||
'newUri' => $newUri,
|
|
||||||
'path' => $uriComp['path'] ?? '/'
|
|
||||||
];
|
|
||||||
}
|
|
||||||
|
|
||||||
public function getPage(int $pageNumber): array {
|
public function getPage(int $pageNumber): array {
|
||||||
|
|
||||||
if ($pageNumber < 0 || $pageNumber >= $this->_totalPages) {
|
if ($pageNumber < 0 || $pageNumber >= $this->_totalPages) {
|
||||||
|
@@ -9,6 +9,7 @@
|
|||||||
<!-- Dynamic Page Buttons -->
|
<!-- Dynamic Page Buttons -->
|
||||||
<?php
|
<?php
|
||||||
$totalPages = $view->paginator->getTotalPages();
|
$totalPages = $view->paginator->getTotalPages();
|
||||||
|
var_dump($totalPages);
|
||||||
for ($i = $view->pageNumber - 2; $i <= $view->pageNumber + 2; $i++) {
|
for ($i = $view->pageNumber - 2; $i <= $view->pageNumber + 2; $i++) {
|
||||||
if ($i >= 0 && $i < $totalPages): ?>
|
if ($i >= 0 && $i < $totalPages): ?>
|
||||||
<a href="?page=<?= $i ?>"
|
<a href="?page=<?= $i ?>"
|
||||||
|
@@ -2,6 +2,10 @@
|
|||||||
require_once('Models/FacilityDataSet.php');
|
require_once('Models/FacilityDataSet.php');
|
||||||
require_once("Models/Paginator.php");
|
require_once("Models/Paginator.php");
|
||||||
|
|
||||||
|
if(!isset($_GET['page'])) {
|
||||||
|
header("location: ?page=0");
|
||||||
|
}
|
||||||
|
|
||||||
$filterArray = [
|
$filterArray = [
|
||||||
0 => "",
|
0 => "",
|
||||||
1 => "",
|
1 => "",
|
||||||
@@ -18,20 +22,13 @@ $rowLimit = 5; //$_POST['rowCount'];
|
|||||||
|
|
||||||
$facilityDataSet = new FacilityDataSet();
|
$facilityDataSet = new FacilityDataSet();
|
||||||
|
|
||||||
if (isset($_POST['pageButtons'])) {
|
|
||||||
$currentPage = (int)$_POST['pageButtons'];
|
|
||||||
} elseif (isset($_POST['pageDown'])) {
|
|
||||||
$currentPage = (int)$_POST['pageDown'];
|
|
||||||
} else {
|
|
||||||
$currentPage = 0; // Default to the first page
|
|
||||||
}
|
|
||||||
|
|
||||||
if (isset($_POST['applyFilters']) && isset($_POST['filter'])) {
|
if (isset($_POST['applyFilters']) && isset($_POST['filter'])) {
|
||||||
|
var_dump($_POST);
|
||||||
$applyFilters = filter_input(INPUT_POST, 'applyFilters', FILTER_SANITIZE_STRING);
|
$applyFilters = filter_input(INPUT_POST, 'applyFilters', FILTER_SANITIZE_STRING);
|
||||||
$filterKey = filter_input(INPUT_POST, 'filter', FILTER_SANITIZE_STRING);
|
$filterKey = filter_input(INPUT_POST, 'filter', FILTER_SANITIZE_STRING);
|
||||||
|
$filterArray[$filterKey] = $applyFilters;
|
||||||
// Set the filter and generate the new URI
|
// Set the filter and generate the new URI
|
||||||
$filterSet = $facilityDataSet->setFilterUri($applyFilters, $filterArray[$filterKey]);
|
$filterSet = $facilityDataSet->setFilterUri($applyFilters, array_search($applyFilters, $filterArray));
|
||||||
|
|
||||||
// Parse the existing query string
|
// Parse the existing query string
|
||||||
parse_str($filterSet["newUri"], $queryParams);
|
parse_str($filterSet["newUri"], $queryParams);
|
||||||
@@ -56,8 +53,6 @@ $view->pageData = $facilityDataSet->fetchAll($filterArray);
|
|||||||
$view->paginator = new Paginator($rowLimit, $view->pageData);
|
$view->paginator = new Paginator($rowLimit, $view->pageData);
|
||||||
|
|
||||||
// Initialize paginator
|
// Initialize paginator
|
||||||
$view->paginator->setPageUri($currentPage);
|
|
||||||
|
|
||||||
$view->pageNumber = $view->paginator->getPageFromUri();
|
$view->pageNumber = $view->paginator->getPageFromUri();
|
||||||
$view->pageData = $view->paginator->getPage($view->pageNumber);
|
$view->pageData = $view->paginator->getPage($view->pageNumber);
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user