prepare(' SELECT ng.*, u.username, u.display_name FROM novena_groups ng JOIN users u ON u.id = ng.user_id WHERE ng.id = ? AND ng.is_public = 1 '); $stmt->execute([(int)$_GET['group_id']]); $group = $stmt->fetch(); } elseif (isset($_GET['username'], $_GET['slug'])) { $stmt = $pdo->prepare(' SELECT ng.*, u.username, u.display_name FROM novena_groups ng JOIN users u ON u.id = ng.user_id WHERE u.username = ? AND ng.slug = ? AND ng.is_public = 1 '); $stmt->execute([$_GET['username'], $_GET['slug']]); $group = $stmt->fetch(); } if (!$group) { http_response_code(404); die('Novena not found.'); } // Load all available days $days_stmt = $pdo->prepare(' SELECT id, novena_day, mystery_set, slug FROM sessions WHERE novena_group_id = ? ORDER BY novena_day '); $days_stmt->execute([$group['id']]); $days_rows = $days_stmt->fetchAll(); $days_by_num = []; foreach ($days_rows as $d) { $days_by_num[(int)$d['novena_day']] = $d; } $mystery_labels = [ 'sorrowful' => 'Sorrowful Mysteries', 'joyful' => 'Joyful Mysteries', 'glorious' => 'Glorious Mysteries', 'luminous' => 'Luminous Mysteries', 'by_day_of_week' => 'By Day of Week', 'chaplet' => 'Chaplet of Divine Mercy', ]; $disp_name = $group['display_name'] ?: $group['username']; $photo_src = $group['photo_path'] ? ('/' . ltrim($group['photo_path'], '/')) : ''; ?> <?= htmlspecialchars($group['name']) ?> — <?= htmlspecialchars($site_name) ?>

For

By

Select a Day

Day
Pray →
Not yet added