prepare("INSERT INTO announcements (title, content, category, created_by) VALUES (?, ?, ?, ?)")
->execute([$title, $content, $category, $_SESSION['member_id']]);
$success = "Announcement posted.";
} else {
$error = "Title and content are required.";
}
header("Location: index.php?msg=" . urlencode($success ?: $error));
exit();
}
// Delete announcement
if (isset($_GET['delete_announcement'])) {
$pdo->prepare("DELETE FROM announcements WHERE id = ?")->execute([(int)$_GET['delete_announcement']]);
header("Location: index.php");
exit();
}
// Change member role
if ($_SERVER['REQUEST_METHOD'] === 'POST' && ($_POST['action'] ?? '') === 'change_role') {
$memberId = (int)$_POST['member_id'];
$newRole = in_array($_POST['role'], ['member', 'admin']) ? $_POST['role'] : 'member';
// Prevent removing your own admin
if ($memberId === (int)$_SESSION['member_id'] && $newRole !== 'admin') {
$error = "You cannot remove your own admin role.";
} else {
$pdo->prepare("UPDATE members SET role = ? WHERE id = ?")->execute([$newRole, $memberId]);
$success = "Role updated.";
}
header("Location: index.php?msg=" . urlencode($success ?: $error));
exit();
}
// Approve photo submission
if (isset($_GET['approve_photo'])) {
$pdo->prepare("UPDATE gallery_submissions SET status = 'approved' WHERE id = ?")->execute([(int)$_GET['approve_photo']]);
header("Location: index.php");
exit();
}
// Reject/delete photo submission
if (isset($_GET['delete_photo'])) {
$stmt = $pdo->prepare("SELECT filename FROM gallery_submissions WHERE id = ?");
$stmt->execute([(int)$_GET['delete_photo']]);
$row = $stmt->fetch();
if ($row) {
$file = __DIR__ . '/../uploads/gallery_pending/' . $row['filename'];
if (file_exists($file)) {
unlink($file);
}
}
$pdo->prepare("DELETE FROM gallery_submissions WHERE id = ?")->execute([(int)$_GET['delete_photo']]);
header("Location: index.php");
exit();
}
// Delete inquiry
if (isset($_GET['delete_inquiry'])) {
$pdo->prepare("DELETE FROM leadership_inquiries WHERE id = ?")->execute([(int)$_GET['delete_inquiry']]);
header("Location: index.php");
exit();
}
// Mark inquiry reviewed
if (isset($_GET['review_inquiry'])) {
$pdo->prepare("UPDATE leadership_inquiries SET reviewed = 1 WHERE id = ?")->execute([(int)$_GET['review_inquiry']]);
header("Location: index.php");
exit();
}
// Delete prayer request
if (isset($_GET['delete_prayer'])) {
$pdo->prepare("DELETE FROM prayer_requests WHERE id = ?")->execute([(int)$_GET['delete_prayer']]);
header("Location: index.php");
exit();
}
$msg = $_GET['msg'] ?? '';
// Fetch data
$announcements = $pdo->query("
SELECT a.*, m.first_name, m.last_name
FROM announcements a
LEFT JOIN members m ON a.created_by = m.id
ORDER BY a.created_at DESC
")->fetchAll(PDO::FETCH_ASSOC);
$members = $pdo->query("
SELECT *
FROM members
ORDER BY last_name ASC, first_name ASC
")->fetchAll(PDO::FETCH_ASSOC);
$prayers = $pdo->query("
SELECT *
FROM prayer_requests
ORDER BY created_at DESC
")->fetchAll(PDO::FETCH_ASSOC);
$photoSubmissions = $pdo->query("
SELECT *
FROM gallery_submissions
WHERE status = 'pending'
ORDER BY created_at DESC
")->fetchAll(PDO::FETCH_ASSOC);
$inquiries = $pdo->query("
SELECT *
FROM leadership_inquiries
ORDER BY reviewed ASC, created_at DESC
")->fetchAll(PDO::FETCH_ASSOC);
?>