prepare("SELECT * FROM members WHERE id = ?");
$stmt->execute([$_SESSION['member_id']]);
$member = $stmt->fetch(PDO::FETCH_ASSOC);
$welcomeName = $member ? htmlspecialchars($member['first_name']) : 'Brother Knight';
$isAdmin = isAdmin();
// Announcements (latest 5)
$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 LIMIT 5")->fetchAll(PDO::FETCH_ASSOC);
// Upcoming meetings (category = Monthly, next 3)
$meetings = $pdo->query("SELECT * FROM events WHERE category = 'Monthly' AND event_date >= DATE('now')
ORDER BY event_date ASC LIMIT 3")->fetchAll(PDO::FETCH_ASSOC);
// Prayer requests (latest 3)
$prayers = $pdo->query("SELECT * FROM prayer_requests ORDER BY created_at DESC LIMIT 3")
->fetchAll(PDO::FETCH_ASSOC);
// Handle prayer request submission
$prayerSuccess = '';
if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['prayer_content'])) {
$content = trim($_POST['prayer_content']);
if (!empty($content)) {
$pdo->prepare("INSERT INTO prayer_requests (content, submitted_by, submitted_name) VALUES (?, ?, ?)")
->execute([$content, $_SESSION['member_id'], $_SESSION['member_name']]);
$prayerSuccess = true;
header("Location: dashboard.php");
exit();
}
}
function timeAgo($datetime) {
$diff = time() - strtotime($datetime);
if ($diff < 3600) return round($diff/60) . 'h ago';
if ($diff < 86400) return round($diff/3600) . 'h ago';
if ($diff < 172800) return 'Yesterday';
return date('M j', strtotime($datetime));
}
?>
Member Dashboard | Knights of Columbus Council 11908
COUNCIL 11908 • DEQUEEN, ARKANSAS
Welcome home,
= $welcomeName ?>.
Membership Status
verified
Active
= htmlspecialchars($member['membership_number'] ?? '') ?>
Member Since = $member['created_at'] ? date('Y', strtotime($member['created_at'])) : '—' ?>
My Profile
Internal Announcements
campaign
No announcements yet.
delete
= htmlspecialchars($ann['category']) ?> • = timeAgo($ann['created_at']) ?>
= htmlspecialchars($ann['title']) ?>
= nl2br(htmlspecialchars($ann['content'])) ?>
Prayer Requests
folded_hands
No prayer requests submitted yet.
"= nl2br(htmlspecialchars($prayer['content'])) ?>"
= htmlspecialchars($prayer['submitted_name'] ?? 'Anonymous') ?> • = timeAgo($prayer['created_at']) ?>
Council Meetings
No meetings scheduled. Add an event with category "Monthly Meeting".
$mtg): ?>
= date('M', strtotime($mtg['event_date'])) ?>
= date('d', strtotime($mtg['event_date'])) ?>
= htmlspecialchars($mtg['title']) ?>
= date('g:i A', strtotime($mtg['event_date'])) ?>
= $mtg['location'] ? ' • ' . htmlspecialchars($mtg['location']) : '' ?>
Full Calendar calendar_month
Council Identity
Unity. Charity.
Fraternity.
Submit Prayer Request
New Announcement