<?php
// Start the session
session_start();
require_once 'database/db_config.php';
// Check if user has faculty privileges
require_faculty_privileges('../login.php');
// Check for success or error messages
$success_message = '';
$error_message = '';
if (isset($_SESSION['success_message'])) {
$success_message = $_SESSION['success_message'];
unset($_SESSION['success_message']);
}
if (isset($_SESSION['error_message'])) {
$error_message = $_SESSION['error_message'];
unset($_SESSION['error_message']);
}
// Include header
include 'includes/header.php';
?>
<!-- Course Filter Options -->
<div class="card shadow mb-4">
<div class="card-header py-3 d-flex flex-row align-items-center justify-content-between">
<h6 class="m-0 font-weight-bold text-primary">Filter Courses</h6>
</div>
<div class="card-body">
<form action="" method="GET" class="mb-3">
<div class="row">
<div class="col-md-3 mb-3">
<select name="status" class="form-control">
<option value="all" <?php echo isset($_GET['status']) && $_GET['status'] == 'active' ? 'selected' : ''; ?>>Active</option>
</select>
</div>
<div class="col-md-3 mb-3">
<select name="category" class="form-control">
<option value="all">All Categories</option>
<?php
$cat_query = "SELECT * FROM categories ORDER BY name";
$cat_result = $conn->query($cat_query);
if ($cat_result && $cat_result->num_rows > 0) {
while ($cat = $cat_result->fetch_assoc()) {
$selected = (isset($_GET['category']) && $_GET['category'] == $cat['id']) ? 'selected' : '';
echo '<option value="' . $cat['id'] . '" ' . $selected . '>' . htmlspecialchars($cat['name']) . '</option>';
}
}
?>
</select>
</div>
<div class="col-md-4 mb-3">
<input type="text" name="search" class="form-control" placeholder="Search by title..."
value="<?php echo isset($_GET['search']) ? htmlspecialchars($_GET['search']) : ''; ?>">
</div>
<div class="col-md-2 mb-3">
<button type="submit" class="btn btn-primary btn-block">Filter</button>
</div>
</div>
</form>
</div>
</div>
<!-- Course List -->
<div class="card shadow mb-4">
<div class="card-header py-3">
<h6 class="m-0 font-weight-bold text-primary">All Courses</h6>
</div>
<div class="card-body">
<div class="table-responsive">
<table class="table table-bordered" id="coursesTable" width="100%" cellspacing="0">
<thead>
<tr>
<th>Title</th>
<th>Category</th>
<th>Price</th>
</tr>
</thead>
<tbody>
<?php
// Build the query based on filters
$sql = "SELECT c.*, cat.name as category_name
FROM courses c
LEFT JOIN categories cat ON c.category = cat.id
WHERE 1=1";
// Category filter
if (isset($_GET['category']) && $_GET['category'] != 'all') {
$category = $conn->real_escape_string($_GET['category']);
$sql .= " AND c.category = '$category'";
}
// Search filter
if (isset($_GET['search']) && !empty($_GET['search'])) {
$search = $conn->real_escape_string($_GET['search']);
$sql .= " AND (c.title LIKE '%$search%' OR c.short_description LIKE '%$search%')";
}
$sql .= " ORDER BY c.id DESC";
$result = $conn->query($sql);
if ($result && $result->num_rows > 0) {
while ($row = $result->fetch_assoc()) {
?>
<tr>
<td>
<img src="<?php echo !empty($row['image']) ? '../' . $row['image'] : '../assets/img/defaults/default-course-image.jpg'; ?>"
alt="<?php echo htmlspecialchars($row['title']); ?>" class="img-thumbnail mr-2" style="width: 80px; height: 50px; object-fit: cover;">
<?php echo htmlspecialchars($row['title']); ?>
</td>
<td><?php echo htmlspecialchars($row['category_name'] ?? 'Uncategorized'); ?></td>
<td>
<?php
if ($row['price'] > 0) {
echo "₹" . number_format($row['price'], 2);
if (!empty($row['discount_price']) && $row['discount_price'] > 0 && $row['discount_price'] < $row['price']) {
echo " <span class='text-danger'><del>₹" . number_format($row['discount_price'], 2) . "</del></span>";
}
} else {
echo '<span class="badge badge-success">Free</span>';
}
?>
</td>
</tr>
<?php
}
} else {
?>
<tr>
<td colspan="7" class="text-center">No courses found</td>
</tr>
<?php
}
?>
</tbody>
</table>
</div>
</div>
</div>
<!-- /.container-fluid -->
<?php
// Include footer
include 'includes/footer.php';
?>