completely flarched it

This commit is contained in:
boris
2024-11-29 17:19:08 +00:00
parent 4005328979
commit b7b5fb545b
44 changed files with 252 additions and 8730 deletions

87
paginationcontroller.php Normal file
View 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)";