/home/awneajlw/.trash/admin/doctors.php
<?php
require_once '../config/database.php';
require_once '../includes/auth.php';
requireAdmin();
$database = new Database();
$db = $database->getConnection();
$action = isset($_GET['action']) ? $_GET['action'] : 'list';
$id = isset($_GET['id']) ? (int)$_GET['id'] : 0;
$error = '';
$success = '';
// Handle form submissions
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
$name = sanitizeInput($_POST['name']);
$specialization = sanitizeInput($_POST['specialization']);
$qualification = sanitizeInput($_POST['qualification']);
$experience = (int)$_POST['experience'];
$bio = sanitizeInput($_POST['bio']);
$status = sanitizeInput($_POST['status']);
if (empty($name) || empty($specialization) || empty($qualification) || $experience < 0) {
$error = 'Please fill in all required fields with valid data.';
} else {
if ($action == 'add') {
$query = "INSERT INTO doctors (name, specialization, qualification, experience, bio, status) VALUES (?, ?, ?, ?, ?, ?)";
$stmt = $db->prepare($query);
if ($stmt->execute([$name, $specialization, $qualification, $experience, $bio, $status])) {
$success = 'Doctor added successfully!';
$action = 'list';
} else {
$error = 'Failed to add doctor. Please try again.';
}
} elseif ($action == 'edit' && $id > 0) {
$query = "UPDATE doctors SET name = ?, specialization = ?, qualification = ?, experience = ?, bio = ?, status = ? WHERE id = ?";
$stmt = $db->prepare($query);
if ($stmt->execute([$name, $specialization, $qualification, $experience, $bio, $status, $id])) {
$success = 'Doctor updated successfully!';
$action = 'list';
} else {
$error = 'Failed to update doctor. Please try again.';
}
}
}
}
// Handle delete
if (isset($_GET['delete']) && $id > 0) {
$query = "DELETE FROM doctors WHERE id = ?";
$stmt = $db->prepare($query);
if ($stmt->execute([$id])) {
$success = 'Doctor deleted successfully!';
} else {
$error = 'Failed to delete doctor.';
}
$action = 'list';
}
// Get doctors for listing
if ($action == 'list') {
$query = "SELECT * FROM doctors ORDER BY created_at DESC";
$stmt = $db->prepare($query);
$stmt->execute();
$doctors = $stmt->fetchAll(PDO::FETCH_ASSOC);
}
// Get doctor for editing
if ($action == 'edit' && $id > 0) {
$query = "SELECT * FROM doctors WHERE id = ?";
$stmt = $db->prepare($query);
$stmt->execute([$id]);
$doctor = $stmt->fetch(PDO::FETCH_ASSOC);
if (!$doctor) {
$error = 'Doctor not found.';
$action = 'list';
}
}
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Manage Doctors - Opti-Vision Eye Clinic</title>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet">
<link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0/css/all.min.css" rel="stylesheet">
<link href="../assets/css/style.css" rel="stylesheet">
</head>
<body class="bg-light">
<!-- Navigation -->
<nav class="navbar navbar-expand-lg navbar-dark bg-primary shadow-sm">
<div class="container-fluid">
<a class="navbar-brand fw-bold" href="../index.php">
<i class="fas fa-eye me-2"></i>Opti-Vision Admin
</a>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNav">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarNav">
<ul class="navbar-nav ms-auto">
<li class="nav-item">
<a class="nav-link" href="dashboard.php">Dashboard</a>
</li>
<li class="nav-item">
<a class="nav-link" href="appointments.php">Appointments</a>
</li>
<li class="nav-item">
<a class="nav-link" href="users.php">Users</a>
</li>
<li class="nav-item">
<a class="nav-link" href="services.php">Services</a>
</li>
<li class="nav-item">
<a class="nav-link active" href="doctors.php">Doctors</a>
</li>
<li class="nav-item">
<a class="nav-link" href="messages.php">Messages</a>
</li>
<li class="nav-item">
<a class="nav-link" href="../logout.php">Logout</a>
</li>
</ul>
</div>
</div>
</nav>
<div class="container-fluid py-4">
<div class="row">
<div class="col-12">
<div class="d-flex justify-content-between align-items-center mb-4">
<h2 class="fw-bold">Manage Doctors</h2>
<div class="d-flex gap-2">
<a href="?action=add" class="btn btn-primary">
<i class="fas fa-plus me-2"></i>Add Doctor
</a>
<a href="dashboard.php" class="btn btn-outline-secondary">
<i class="fas fa-arrow-left me-2"></i>Back to Dashboard
</a>
</div>
</div>
<?php if ($error): ?>
<div class="alert alert-danger"><?php echo $error; ?></div>
<?php endif; ?>
<?php if ($success): ?>
<div class="alert alert-success"><?php echo $success; ?></div>
<?php endif; ?>
<?php if ($action == 'list'): ?>
<!-- Doctors List -->
<div class="card dashboard-card">
<div class="card-body">
<?php if (empty($doctors)): ?>
<div class="text-center py-5">
<i class="fas fa-user-md fa-3x text-muted mb-3"></i>
<h5 class="text-muted">No doctors found</h5>
<p class="text-muted">Add your first doctor to get started.</p>
<a href="?action=add" class="btn btn-primary">Add Doctor</a>
</div>
<?php else: ?>
<div class="row g-4">
<?php foreach($doctors as $doctor): ?>
<div class="col-lg-4 col-md-6">
<div class="card h-100 shadow-sm border-0">
<div class="card-body text-center p-4">
<div class="doctor-image mb-3">
<img src="../assets/images/doctors/<?php echo $doctor['image'] ?: 'default.jpg'; ?>"
alt="<?php echo htmlspecialchars($doctor['name']); ?>"
class="rounded-circle" width="100" height="100" style="object-fit: cover;">
</div>
<h5 class="card-title fw-bold"><?php echo htmlspecialchars($doctor['name']); ?></h5>
<p class="text-primary fw-semibold mb-2"><?php echo htmlspecialchars($doctor['specialization']); ?></p>
<p class="text-muted small mb-2"><?php echo htmlspecialchars($doctor['qualification']); ?></p>
<p class="text-muted mb-3"><?php echo $doctor['experience']; ?> years experience</p>
<div class="mb-3">
<span class="badge bg-<?php echo $doctor['status'] === 'active' ? 'success' : 'secondary'; ?>">
<?php echo ucfirst($doctor['status']); ?>
</span>
</div>
<div class="btn-group btn-group-sm">
<a href="?action=edit&id=<?php echo $doctor['id']; ?>"
class="btn btn-outline-primary" title="Edit">
<i class="fas fa-edit"></i>
</a>
<a href="?delete=1&id=<?php echo $doctor['id']; ?>"
class="btn btn-outline-danger"
onclick="return confirm('Are you sure you want to delete this doctor?')"
title="Delete">
<i class="fas fa-trash"></i>
</a>
</div>
</div>
</div>
</div>
<?php endforeach; ?>
</div>
<?php endif; ?>
</div>
</div>
<?php elseif ($action == 'add' || $action == 'edit'): ?>
<!-- Add/Edit Doctor Form -->
<div class="card dashboard-card">
<div class="card-header">
<h5 class="mb-0">
<i class="fas fa-<?php echo $action == 'add' ? 'plus' : 'edit'; ?> me-2"></i>
<?php echo $action == 'add' ? 'Add New Doctor' : 'Edit Doctor'; ?>
</h5>
</div>
<div class="card-body">
<form method="POST">
<div class="row">
<div class="col-md-6 mb-3">
<label for="name" class="form-label">Doctor Name <span class="text-danger">*</span></label>
<input type="text" class="form-control" id="name" name="name"
value="<?php echo isset($doctor) ? htmlspecialchars($doctor['name']) : ''; ?>" required>
</div>
<div class="col-md-6 mb-3">
<label for="specialization" class="form-label">Specialization <span class="text-danger">*</span></label>
<input type="text" class="form-control" id="specialization" name="specialization"
value="<?php echo isset($doctor) ? htmlspecialchars($doctor['specialization']) : ''; ?>" required>
</div>
</div>
<div class="row">
<div class="col-md-6 mb-3">
<label for="qualification" class="form-label">Qualification <span class="text-danger">*</span></label>
<input type="text" class="form-control" id="qualification" name="qualification"
value="<?php echo isset($doctor) ? htmlspecialchars($doctor['qualification']) : ''; ?>" required>
</div>
<div class="col-md-6 mb-3">
<label for="experience" class="form-label">Experience (Years) <span class="text-danger">*</span></label>
<input type="number" class="form-control" id="experience" name="experience"
min="0" max="50"
value="<?php echo isset($doctor) ? $doctor['experience'] : ''; ?>" required>
</div>
</div>
<div class="mb-3">
<label for="bio" class="form-label">Bio/Description</label>
<textarea class="form-control" id="bio" name="bio" rows="4"><?php echo isset($doctor) ? htmlspecialchars($doctor['bio']) : ''; ?></textarea>
</div>
<div class="mb-4">
<label for="status" class="form-label">Status</label>
<select class="form-select" id="status" name="status">
<option value="active" <?php echo (isset($doctor) && $doctor['status'] === 'active') ? 'selected' : ''; ?>>Active</option>
<option value="inactive" <?php echo (isset($doctor) && $doctor['status'] === 'inactive') ? 'selected' : ''; ?>>Inactive</option>
</select>
</div>
<div class="d-flex gap-3">
<button type="submit" class="btn btn-primary">
<i class="fas fa-save me-2"></i>
<?php echo $action == 'add' ? 'Add Doctor' : 'Update Doctor'; ?>
</button>
<a href="doctors.php" class="btn btn-outline-secondary">
<i class="fas fa-times me-2"></i>Cancel
</a>
</div>
</form>
</div>
</div>
<?php endif; ?>
</div>
</div>
</div>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js"></script>
</body>
</html>