This commit is contained in:
Flatlogic Bot 2025-12-11 19:45:39 +00:00
parent ff24217c73
commit 02be882af7

View File

@ -4,7 +4,14 @@ session_start();
require_once 'db/config.php'; // Include the database configuration require_once 'db/config.php'; // Include the database configuration
// Pagination constants // Pagination constants
const ITEMS_PER_PAGE = 6; $items_per_page = isset($_GET['items_per_page']) ? (int)$_GET['items_per_page'] : 6;
// Validate $items_per_page to be a positive integer, e.g., 6, 12, 24, 48
if (!in_array($items_per_page, [6, 12, 24, 48])) {
$items_per_page = 6; // Default to 6 if invalid value is provided
}
// Pagination constants
// const ITEMS_PER_PAGE = 6;
// If user is not logged in or not a vendor, redirect // If user is not logged in or not a vendor, redirect
if (!isset($_SESSION['user_id']) || $_SESSION['user_role'] !== 'vendor') { if (!isset($_SESSION['user_id']) || $_SESSION['user_role'] !== 'vendor') {
@ -40,7 +47,7 @@ $items = []; // Initialize an empty array to hold items
$total_stmt->execute($total_items_params); $total_stmt->execute($total_items_params);
$total_items = $total_stmt->fetchColumn(); $total_items = $total_stmt->fetchColumn();
$total_pages = ceil($total_items / ITEMS_PER_PAGE); $total_pages = ceil($total_items / $items_per_page);
$current_page = isset($_GET['page']) ? (int)$_GET['page'] : 1; $current_page = isset($_GET['page']) ? (int)$_GET['page'] : 1;
$current_page = max(1, min($current_page, $total_pages == 0 ? 1 : $total_pages)); // Ensure current page is within valid range $current_page = max(1, min($current_page, $total_pages == 0 ? 1 : $total_pages)); // Ensure current page is within valid range
@ -90,7 +97,7 @@ $items = []; // Initialize an empty array to hold items
$query .= $orderBy; $query .= $orderBy;
$query .= " LIMIT ? OFFSET ?"; $query .= " LIMIT ? OFFSET ?";
$query_params[] = ITEMS_PER_PAGE; $query_params[] = $items_per_page;
$query_params[] = $offset; $query_params[] = $offset;
$stmt = $pdo->prepare($query); $stmt = $pdo->prepare($query);
@ -137,7 +144,14 @@ $items = []; // Initialize an empty array to hold items
<option value="date_desc" <?php echo (isset($_GET['sort']) && $_GET['sort'] === 'date_desc') ? 'selected' : ''; ?>>Date Added (Newest)</option> <option value="date_desc" <?php echo (isset($_GET['sort']) && $_GET['sort'] === 'date_desc') ? 'selected' : ''; ?>>Date Added (Newest)</option>
<option value="date_asc" <?php echo (isset($_GET['sort']) && $_GET['sort'] === 'date_asc') ? 'selected' : ''; ?>>Date Added (Oldest)</option> <option value="date_asc" <?php echo (isset($_GET['sort']) && $_GET['sort'] === 'date_asc') ? 'selected' : ''; ?>>Date Added (Oldest)</option>
</select> </select>
<select class="form-select" name="items_per_page">
<option value="6" <?php echo ((isset($_GET['items_per_page']) && $_GET['items_per_page'] == 6) || !isset($_GET['items_per_page'])) ? 'selected' : ''; ?>>6 per page</option>
<option value="12" <?php echo (isset($_GET['items_per_page']) && $_GET['items_per_page'] == 12) ? 'selected' : ''; ?>>12 per page</option>
<option value="24" <?php echo (isset($_GET['items_per_page']) && $_GET['items_per_page'] == 24) ? 'selected' : ''; ?>>24 per page</option>
<option value="48" <?php echo (isset($_GET['items_per_page']) && $_GET['items_per_page'] == 48) ? 'selected' : ''; ?>>48 per page</option>
</select>
<button class="btn btn-outline-secondary" type="submit">Filter</button> <button class="btn btn-outline-secondary" type="submit">Filter</button>
<a href="my_listings.php" class="btn btn-outline-danger">Clear Filters</a>
</div> </div>
</form> </form>