app/models/calendar_monthly.php (36 lines of code) (raw):

<?php declare(strict_types=1); use benhall14\phpCalendar\Calendar; use ReleaseInsights\{Data, Release, Version}; $releases = new Data(); $calendar = new Calendar(); $events = []; // Check if we have a planned dot release coming for the current cycle $current_release = key($releases->getLatestMajorRelease()); $current_release_schedule = new Release($current_release)->getSchedule(); if (isset($current_release_schedule['planned_dot_release'])) { $date = new DateTime($current_release_schedule['planned_dot_release'])->format('Y-m-d'); $events[] = [ 'start' => $date, 'end' => $date, 'summary' => Release::getNiceLabel(new Version($current_release)->normalized, 'planned_dot_release') . "<br>\n", 'mask' => true, ]; } // loop through future releases foreach (array_keys($releases->getFutureReleases()) as $version) { if ((int) $version < RELEASE) { continue; } foreach (new Release($version)->getSchedule() as $event => $date) { if ($event === 'version') { continue; } $date = new DateTime($date)->format('Y-m-d'); $events[] = [ 'start' => $date, 'end' => $date, 'summary' => Release::getNiceLabel($version, $event) . "<br>\n", 'mask' => true, ]; } } return $calendar->addEvents($events);