/** * Generate a table cell for a single day. * * @todo Validate reservations are shown correctly for overlapping * reservation dates. * * @since 0.1.0 * @access protected * * @param \DateTime $date Datetime for the day to generate. * * @return String */ protected function generateDayCell(\DateTime $date, $weekdayNum) { $day = $date->format('d'); $dayReserved = $this->reservable->isDayReserved($date, false); if (!$dayReserved) { return '<td class="single-day"><span class="day-num">' . $day . '</span></td>'; } $reservations = $this->reservable->getReservationsForDate($date); $reservationLabel = $this->generateDayCellReservationsData($reservations, $date, $weekdayNum); $dayNum = sprintf('<span class="day-num">%s</span>', $day); $tdClasses[] = 'single-day'; return sprintf('<td class="%s">%s %s</td>', implode(' ', $tdClasses), $dayNum, $reservationLabel); }