82 lines
3.6 KiB
PHP
82 lines
3.6 KiB
PHP
<?php
|
|
require_once __DIR__ . '/../db/config.php';
|
|
$pdo = db();
|
|
|
|
if (isset($_GET['delete'])) {
|
|
$id = $_GET['delete'];
|
|
$pdo->prepare("DELETE FROM categories WHERE id = ?")->execute([$id]);
|
|
header("Location: categories.php");
|
|
exit;
|
|
}
|
|
|
|
$query = "SELECT * FROM categories ORDER BY sort_order ASC, name ASC";
|
|
$categories_pagination = paginate_query($pdo, $query);
|
|
$categories = $categories_pagination['data'];
|
|
|
|
include 'includes/header.php';
|
|
?>
|
|
|
|
<div class="d-flex justify-content-between align-items-center mb-4">
|
|
<h2 class="fw-bold mb-0">Categories</h2>
|
|
<a href="category_edit.php" class="btn btn-primary">
|
|
<i class="bi bi-plus-lg"></i> Add Category
|
|
</a>
|
|
</div>
|
|
|
|
<div class="card border-0 shadow-sm">
|
|
<div class="card-body p-0">
|
|
<!-- Pagination Controls -->
|
|
<div class="p-3 border-bottom bg-light">
|
|
<?php render_pagination_controls($categories_pagination); ?>
|
|
</div>
|
|
<div class="table-responsive">
|
|
<table class="table table-hover align-middle mb-0">
|
|
<thead class="bg-light">
|
|
<tr>
|
|
<th class="ps-4">ID</th>
|
|
<th style="width: 80px;">Image</th>
|
|
<th>Name</th>
|
|
<th>Sort Order</th>
|
|
<th class="text-end pe-4">Actions</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<?php foreach ($categories as $cat): ?>
|
|
<tr>
|
|
<td class="ps-4 fw-medium">#<?= $cat['id'] ?></td>
|
|
<td>
|
|
<?php if (!empty($cat['image_url'])): ?>
|
|
<img src="<?= htmlspecialchars(strpos($cat['image_url'], 'http') === 0 ? $cat['image_url'] : '../' . $cat['image_url']) ?>"
|
|
class="rounded object-fit-cover"
|
|
width="50" height="50"
|
|
alt="<?= htmlspecialchars($cat['name']) ?>">
|
|
<?php else: ?>
|
|
<div class="rounded bg-light d-flex align-items-center justify-content-center text-muted border" style="width: 50px; height: 50px;">
|
|
<i class="bi bi-image"></i>
|
|
</div>
|
|
<?php endif; ?>
|
|
</td>
|
|
<td><?= htmlspecialchars($cat['name']) ?></td>
|
|
<td><?= $cat['sort_order'] ?></td>
|
|
<td class="text-end pe-4">
|
|
<a href="category_edit.php?id=<?= $cat['id'] ?>" class="btn btn-sm btn-outline-primary me-1"><i class="bi bi-pencil"></i></a>
|
|
<a href="?delete=<?= $cat['id'] ?>" class="btn btn-sm btn-outline-danger" onclick="return confirm('Are you sure? This might break products linked to this category.')"><i class="bi bi-trash"></i></a>
|
|
</td>
|
|
</tr>
|
|
<?php endforeach; ?>
|
|
<?php if (empty($categories)): ?>
|
|
<tr>
|
|
<td colspan="5" class="text-center py-4 text-muted">No categories found.</td>
|
|
</tr>
|
|
<?php endif; ?>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
<!-- Bottom Pagination -->
|
|
<div class="p-3 border-top bg-light">
|
|
<?php render_pagination_controls($categories_pagination); ?>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<?php include 'includes/footer.php'; ?>
|