/home/awneajlw/.trash/admin/messages.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 status update
if (isset($_GET['update_status']) && $id > 0) {
$status = sanitizeInput($_GET['update_status']);
$query = "UPDATE contact_messages SET status = ? WHERE id = ?";
$stmt = $db->prepare($query);
if ($stmt->execute([$status, $id])) {
$success = 'Message status updated successfully!';
} else {
$error = 'Failed to update message status.';
}
}
// Handle delete
if (isset($_GET['delete']) && $id > 0) {
$query = "DELETE FROM contact_messages WHERE id = ?";
$stmt = $db->prepare($query);
if ($stmt->execute([$id])) {
$success = 'Message deleted successfully!';
} else {
$error = 'Failed to delete message.';
}
}
// Get messages
$query = "SELECT * FROM contact_messages ORDER BY created_at DESC";
$stmt = $db->prepare($query);
$stmt->execute();
$messages = $stmt->fetchAll(PDO::FETCH_ASSOC);
// Get message for viewing
if ($action == 'view' && $id > 0) {
$query = "SELECT * FROM contact_messages WHERE id = ?";
$stmt = $db->prepare($query);
$stmt->execute([$id]);
$message = $stmt->fetch(PDO::FETCH_ASSOC);
if (!$message) {
$error = 'Message not found.';
$action = 'list';
} else {
// Mark as read
$query = "UPDATE contact_messages SET status = 'read' WHERE id = ?";
$stmt = $db->prepare($query);
$stmt->execute([$id]);
}
}
// Get statistics
$query = "SELECT
COUNT(*) as total,
SUM(CASE WHEN status = 'unread' THEN 1 ELSE 0 END) as unread,
SUM(CASE WHEN status = 'read' THEN 1 ELSE 0 END) as read_count,
SUM(CASE WHEN status = 'replied' THEN 1 ELSE 0 END) as replied
FROM contact_messages";
$stmt = $db->prepare($query);
$stmt->execute();
$stats = $stmt->fetch(PDO::FETCH_ASSOC);
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Manage Messages - 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" href="doctors.php">Doctors</a>
</li>
<li class="nav-item">
<a class="nav-link active" 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 Messages</h2>
<div class="d-flex gap-2">
<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; ?>
<!-- Stats Cards -->
<div class="row g-4 mb-4">
<div class="col-lg-3 col-md-6">
<div class="card dashboard-card stat-card">
<div class="stat-number"><?php echo $stats['total']; ?></div>
<div class="stat-label">Total Messages</div>
</div>
</div>
<div class="col-lg-3 col-md-6">
<div class="card dashboard-card stat-card">
<div class="stat-number text-warning"><?php echo $stats['unread']; ?></div>
<div class="stat-label">Unread</div>
</div>
</div>
<div class="col-lg-3 col-md-6">
<div class="card dashboard-card stat-card">
<div class="stat-number text-info"><?php echo $stats['read_count']; ?></div>
<div class="stat-label">Read</div>
</div>
</div>
<div class="col-lg-3 col-md-6">
<div class="card dashboard-card stat-card">
<div class="stat-number text-success"><?php echo $stats['replied']; ?></div>
<div class="stat-label">Replied</div>
</div>
</div>
</div>
<?php if ($action == 'view' && isset($message)): ?>
<!-- View Message -->
<div class="card dashboard-card">
<div class="card-header d-flex justify-content-between align-items-center">
<h5 class="mb-0">Message Details</h5>
<a href="messages.php" class="btn btn-outline-secondary btn-sm">
<i class="fas fa-arrow-left me-2"></i>Back to List
</a>
</div>
<div class="card-body">
<div class="row">
<div class="col-md-6">
<h6 class="fw-bold">From:</h6>
<p><?php echo htmlspecialchars($message['name']); ?></p>
<h6 class="fw-bold">Email:</h6>
<p><a href="mailto:<?php echo htmlspecialchars($message['email']); ?>"><?php echo htmlspecialchars($message['email']); ?></a></p>
<?php if ($message['phone']): ?>
<h6 class="fw-bold">Phone:</h6>
<p><a href="tel:<?php echo htmlspecialchars($message['phone']); ?>"><?php echo htmlspecialchars($message['phone']); ?></a></p>
<?php endif; ?>
</div>
<div class="col-md-6">
<h6 class="fw-bold">Subject:</h6>
<p><?php echo htmlspecialchars($message['subject']); ?></p>
<h6 class="fw-bold">Date:</h6>
<p><?php echo date('M d, Y h:i A', strtotime($message['created_at'])); ?></p>
<h6 class="fw-bold">Status:</h6>
<span class="badge bg-<?php
echo $message['status'] === 'replied' ? 'success' :
($message['status'] === 'read' ? 'info' : 'warning');
?>">
<?php echo ucfirst($message['status']); ?>
</span>
</div>
</div>
<hr>
<h6 class="fw-bold">Message:</h6>
<div class="bg-light p-3 rounded">
<?php echo nl2br(htmlspecialchars($message['message'])); ?>
</div>
<div class="mt-4 d-flex gap-2">
<a href="mailto:<?php echo htmlspecialchars($message['email']); ?>?subject=Re: <?php echo urlencode($message['subject']); ?>"
class="btn btn-primary">
<i class="fas fa-reply me-2"></i>Reply
</a>
<a href="?update_status=replied&id=<?php echo $message['id']; ?>"
class="btn btn-success">
<i class="fas fa-check me-2"></i>Mark as Replied
</a>
<a href="?delete=1&id=<?php echo $message['id']; ?>"
class="btn btn-danger"
onclick="return confirm('Are you sure you want to delete this message?')">
<i class="fas fa-trash me-2"></i>Delete
</a>
</div>
</div>
</div>
<?php else: ?>
<!-- Messages List -->
<div class="card dashboard-card">
<div class="card-body">
<?php if (empty($messages)): ?>
<div class="text-center py-5">
<i class="fas fa-envelope fa-3x text-muted mb-3"></i>
<h5 class="text-muted">No messages found</h5>
<p class="text-muted">Contact messages will appear here.</p>
</div>
<?php else: ?>
<div class="table-responsive">
<table class="table table-hover">
<thead>
<tr>
<th>ID</th>
<th>Name</th>
<th>Email</th>
<th>Subject</th>
<th>Date</th>
<th>Status</th>
<th>Actions</th>
</tr>
</thead>
<tbody>
<?php foreach($messages as $msg): ?>
<tr class="<?php echo $msg['status'] === 'unread' ? 'table-warning' : ''; ?>">
<td>#<?php echo $msg['id']; ?></td>
<td>
<strong><?php echo htmlspecialchars($msg['name']); ?></strong>
<?php if ($msg['status'] === 'unread'): ?>
<span class="badge bg-warning ms-2">New</span>
<?php endif; ?>
</td>
<td><?php echo htmlspecialchars($msg['email']); ?></td>
<td>
<strong><?php echo htmlspecialchars($msg['subject']); ?></strong>
<br>
<small class="text-muted">
<?php echo htmlspecialchars(substr($msg['message'], 0, 50)); ?>
<?php echo strlen($msg['message']) > 50 ? '...' : ''; ?>
</small>
</td>
<td><?php echo date('M d, Y', strtotime($msg['created_at'])); ?></td>
<td>
<span class="badge bg-<?php
echo $msg['status'] === 'replied' ? 'success' :
($msg['status'] === 'read' ? 'info' : 'warning');
?>">
<?php echo ucfirst($msg['status']); ?>
</span>
</td>
<td>
<div class="btn-group btn-group-sm">
<a href="?action=view&id=<?php echo $msg['id']; ?>"
class="btn btn-outline-primary" title="View">
<i class="fas fa-eye"></i>
</a>
<a href="mailto:<?php echo htmlspecialchars($msg['email']); ?>?subject=Re: <?php echo urlencode($msg['subject']); ?>"
class="btn btn-outline-success" title="Reply">
<i class="fas fa-reply"></i>
</a>
<a href="?delete=1&id=<?php echo $msg['id']; ?>"
class="btn btn-outline-danger"
onclick="return confirm('Are you sure you want to delete this message?')"
title="Delete">
<i class="fas fa-trash"></i>
</a>
</div>
</td>
</tr>
<?php endforeach; ?>
</tbody>
</table>
</div>
<?php endif; ?>
</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>