completely flarched it
This commit is contained in:
87
paginationcontroller.php
Normal file
87
paginationcontroller.php
Normal file
@@ -0,0 +1,87 @@
|
||||
<?php
|
||||
require_once('Models/FacilityDataSet.php');
|
||||
require_once("Models/Paginator.php");
|
||||
$filterArray = [
|
||||
'titlFilter' => "",
|
||||
'cateFilter' => "",
|
||||
'descFilter' => "",
|
||||
'statFilter' => "",
|
||||
'strtFilter' => "",
|
||||
'cntyFilter' => "",
|
||||
'townFilter' => "",
|
||||
'postFilter' => "",
|
||||
'contFilter' => ""
|
||||
];
|
||||
$filterArray = [
|
||||
0 => "",
|
||||
1 => "",
|
||||
2 => "",
|
||||
3 => "",
|
||||
4 => "",
|
||||
5 => "",
|
||||
6 => "",
|
||||
7 => "",
|
||||
8 => ""
|
||||
];
|
||||
$values = [
|
||||
"Title" => 0,
|
||||
"Category" => 1,
|
||||
"Description" => 2,
|
||||
"Status" => 3,
|
||||
"Street" => 4,
|
||||
"County" => 5,
|
||||
"Town" => 6,
|
||||
"Postcode" => 7,
|
||||
"Contributor" => 8,
|
||||
];
|
||||
$rowLimit = 5; //$_POST['rowCount'];
|
||||
|
||||
$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'])) {
|
||||
$applyFilters = filter_input(INPUT_POST, 'applyFilters', FILTER_SANITIZE_STRING);
|
||||
$filterKey = filter_input(INPUT_POST, 'filter', FILTER_SANITIZE_STRING);
|
||||
|
||||
// Set the filter and generate the new URI
|
||||
$filterSet = $facilityDataSet->setFilterUri($applyFilters, $filterArray[$filterKey] ?? '');
|
||||
|
||||
// Parse the existing query string
|
||||
parse_str($filterSet["newUri"], $queryParams);
|
||||
|
||||
// Add or overwrite the 'page' parameter
|
||||
$queryParams['page'] = filter_input(INPUT_GET, 'page', FILTER_VALIDATE_INT, [
|
||||
'options' => ['default' => 0, 'min_range' => 0] // Default to 0 for the first page
|
||||
]);
|
||||
|
||||
// Build the updated query string
|
||||
$newQueryString = http_build_query($queryParams);
|
||||
|
||||
// Redirect with the updated URI
|
||||
header("Location: {$filterSet["path"]}?{$newQueryString}");
|
||||
exit;
|
||||
}
|
||||
|
||||
|
||||
$filterArray[$_GET['category'] ?? null] = $_GET['term'] ?? null;
|
||||
|
||||
$view->pageData = $facilityDataSet->fetchAll($filterArray);
|
||||
$view->paginator = new Paginator($rowLimit, $view->pageData);
|
||||
|
||||
// Initialize paginator
|
||||
$view->paginator->setPageUri($currentPage);
|
||||
|
||||
$view->pageNumber = $view->paginator->getPageFromUri();
|
||||
$view->pageData = $view->paginator->getPage($view->pageNumber);
|
||||
|
||||
// Send result count to view
|
||||
$view->dbMessage = $view->paginator->countPageResults($view->pageNumber) == 0
|
||||
? "No results"
|
||||
: $view->paginator->countPageResults($view->pageNumber) . " result(s)";
|
Reference in New Issue
Block a user