zdenekgebauer / month-calendar
Simple HTML monthly calendar generator
v2.0.0
2021-01-04 11:57 UTC
Requires
- php: >=8.0
Requires (Dev)
This package is auto-updated.
Last update: 2024-11-04 20:20:04 UTC
README
Base class for rendering calendar from PHP scripts.
Installation
composer require zdenekgebauer/month-calendar
Usage
$date = new DateTime(); $calendar = new Calendar($date); $calendar->firstDayOfWeek(0); // 0-6, 0=Sunday $calendar->showOtherMonths = true; // show days from previous and next month echo $calendar->render();
Customization
class CustomCalendar extends ZdenekGebauer\MonthCalendar\Calendar { /** * @return array<string> */ protected function weekdays(): array { // own weekdays names from Sunday return ['Ne', 'Po', 'Út', 'St', 'Čt', 'Pá', 'So']; } protected function renderCaption(): string { // own table caption return '<caption>' . $this->date->format('m/Y') . '</caption>'; } protected function renderDay(DateTimeInterface $currentDate, bool $isOtherMonth = false): string { // own content of day, ie. info "occupied" $day = (int)$currentDate->format('j'); $cssClass = ''; $content = ''; if ($day === 10 || $day === 15) { $cssClass = 'occupied'; $content = 'occupied'; } if ($isOtherMonth) { $cssClass .= ' other-month'; } return '<td data-date="' . $currentDate->format('Y-m-d') . '" class=' . $cssClass . '">' . $currentDate->format('j') . '<hr>' . ($content) . '</td>'; } protected function renderFooter(): string { // own table footer return '<tfoot><tr><td colspan="7">occupied days: 2</td></tr></tfoot>'; } }