prepare("SELECT theme, completion_date FROM progress WHERE user_id = ? ORDER BY completion_date DESC"); $stmt->execute([$user_id]); $progress_data = $stmt->fetchAll(PDO::FETCH_ASSOC); // --- Progress Calculation --- // 1. Last 7 Days Grid $last_7_days = []; for ($i = 0; $i < 7; $i++) { $date = date('Y-m-d', strtotime("-$i days")); $last_7_days[$date] = false; } foreach ($progress_data as $progress) { if (isset($last_7_days[$progress['completion_date']])) { $last_7_days[$progress['completion_date']] = true; } } // 2. Total Practices $total_practices = count($progress_data); // 3. Current Streak $current_streak = 0; if ($total_practices > 0) { $dates = array_unique(array_column($progress_data, 'completion_date')); rsort($dates); $current_streak = 1; $today = date('Y-m-d'); $yesterday = date('Y-m-d', strtotime('-1 day')); if ($dates[0] != $today && $dates[0] != $yesterday) { $current_streak = 0; } else { for ($i = 0; $i < count($dates) - 1; $i++) { $date1 = new DateTime($dates[$i]); $date2 = new DateTime($dates[$i+1]); $diff = $date1->diff($date2)->days; if ($diff == 1) { $current_streak++; } else { break; } } } } // 4. Practiced Themes $practiced_themes = array_unique(array_column($progress_data, 'theme')); $project_name = getenv('PROJECT_NAME') ?: 'Mindful Moments'; ?> Your Progress - <?php echo htmlspecialchars($project_name); ?>

Your Progress

Total Practices

Current Streak

Last 7 Days
$completed): ?>
Practiced Themes

You haven't completed any rituals yet.