= :threeMonthsAgo AND MONTH(EventDate) = :month AND YEAR(EventDate) = :year"; $params = [ ':month' => $month, ':year' => $year, ':threeMonthsAgo' => $threeMonthsAgo ]; $stmt = execute_prepared_statement($pdoWebsite, $query, $params); if ($stmt === false) { log_error("Failed to fetch events: " . $pdoWebsite->errorInfo()[2]); display_error_message(); return []; } $events = $stmt->fetchAll(PDO::FETCH_ASSOC); foreach ($events as &$event) { $event['FormattedTime'] = date("g:i A", strtotime($event['EventTime'])); $event['EventDateTime'] = $event['EventDate'] . ' ' . $event['EventTime']; } return $events; } function generate_calendar($month, $year, $pdoWebsite, $threeMonthsAgo) { $events = getEvents($pdoWebsite, $month, $year, $threeMonthsAgo); $eventsByDate = []; foreach ($events as $event) { $eventDate = $event['EventDate']; if (!isset($eventsByDate[$eventDate])) { $eventsByDate[$eventDate] = []; } $eventsByDate[$eventDate][] = $event; } $dayLabels = ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"]; $firstDayOfMonth = mktime(0, 0, 0, $month, 1, $year); $daysInMonth = date("t", $firstDayOfMonth); $firstDayOfWeek = date("w", $firstDayOfMonth); $calendar_html = ''; $calendar_html .= ''; foreach ($dayLabels as $label) { $calendar_html .= ''; } $calendar_html .= ''; for ($i = 0; $i < $firstDayOfWeek; $i++) { $calendar_html .= ''; } for ($day = 1; $day <= $daysInMonth; $day++) { $date = sprintf('%04d-%02d-%02d', $year, $month, $day); $classes = []; $eventData = ''; if ($date == date("Y-m-d")) { $classes[] = 'today'; } if (isset($eventsByDate[$date])) { $classes[] = 'event'; $eventData = ' data-event="' . htmlspecialchars(json_encode($eventsByDate[$date]), ENT_QUOTES, 'UTF-8') . '"'; } $classString = !empty($classes) ? ' class="' . implode(' ', $classes) . '"' : ''; $calendar_html .= '' . $day; if (isset($eventsByDate[$date])) { $calendar_html .= '
'; foreach ($eventsByDate[$date] as $event) { $calendar_html .= '

' . $event['EventName'] . '

'; } $calendar_html .= '
'; } $calendar_html .= ''; if (($firstDayOfWeek + $day) % 7 == 0) { $calendar_html .= '
'; } } $remainingDays = 7 - (($firstDayOfWeek + $daysInMonth) % 7); for ($i = 0; $i < $remainingDays; $i++) { $calendar_html .= ''; } $calendar_html .= '
' . $label . '
'; return $calendar_html; } $month = isset($_GET['month']) ? (int)$_GET['month'] : date('m'); $year = isset($_GET['year']) ? (int)$_GET['year'] : date('Y'); $calendar_html = generate_calendar($month, $year, $pdoWebsite, $threeMonthsAgo); ?> <?= htmlspecialchars($serverName) ?> | Calendar

Dahlia Events

0) { // If Logged in, Show User Panel include('../account/user-panel.php'); } else { // Otherwise, Show Login / Register Widget include('../account/login.php'); } ?>
×