format('Y-m-d')); $weekdays = array('Sun','Mon','Tue','Wed','Thu','Fri','Sat'); $month_names = array("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"); $month_name = $month_names[$month-1]; $calendar = "
". "
$month_name, $year
$month_name
"; $calendar .= ""; $calendar .= ""; $calendar .= implode("",array_map(function($d){return "";}, $weekdays)); $calendar .= ""; if ($weekday > 0) { $calendar .= ""; } $date_slots = array(); for ($i = 1; $i <= date('j',$end_date); $i++) { $day_time = strtotime("{$year}-{$month}-{$i}"); $date_str = date("Y-m-d", $day_time); $day_class = 'inactive'; $date_slots[$date_str] = 0; if ($day_time >= $today_time and !$bookingController->isDayUnavail($date_str)) $day_class = 'day'; $free_slots = ""; if ($day_class == 'day') { $cnt = $bookingController->countFreeSlots($date_str); if ($cnt > 0) $free_slots = "
{$cnt} slots free
"; else { $day_class = 'inactive'; } $date_slots[$date_str] = $cnt>=0?$cnt:0; } $calendar .= ""; if (++$weekday>6 and $i != date('j',$end_date)) { $calendar .= ''; $weekday = 0; } } if ($weekday > 0 and $weekday < 6) $calendar .= ""; $calendar .= "
$d
 ". "
$i
$free_slots
"; $calendar .= "
". "
"; $last_month_day = date('j',$end_date); for ($i = 0; $i < ceil($last_month_day)/7; $i++) { $week_start = $i*7+1; $week_end = min(($i+1)*7, $last_month_day); $calendar .= "
". "
". "
". "". "$month_name " . BKFORB_GCAL_gcal_num_2_places($week_start) . " - " . BKFORB_GCAL_gcal_num_2_places($week_end) . "". "
"; // week-header end for ($k = $week_start; $k <= $week_end; $k++) { $day_time = strtotime("{$year}-{$month}-{$k}"); $date_str = date("Y-m-d", $day_time); $slots = $date_slots[$date_str]; $add_class = ""; if ($slots == 0) $add_class = 'inactive'; $calendar .= "
". "
".substr($month_name,0,3)."" . BKFORB_GCAL_gcal_num_2_places($k) . "
" . "
"; if ($slots == 0) { $calendar .= "No slots available"; } else { $calendar .= "
Select time
" . " Slots: $slots"; } $calendar .= "
". // slots-info end "
". "
"; // week-day end } $calendar .= "
". ($i!=0?"« previous week":""). "next week »". "
". "
"; $calendar .= "
". // week-inner end "
"; // week end } $calendar .= "
"; // weeks end $calendar .= "
"; // calendar-mobile end $calendar .= "
"; // calendar-wrapper end return $calendar; } function gcal_create_calendar_form (\GLCalendar\Calendar $calendar) { $extras = $calendar->getExtras(); $bookingController = new \GLCalendar\BookingController($calendar); $bookingController->loadBookingSeveralMonth(6); $bookingController->loadUnavailSeveralMonth(6); $cont = "
"; for($i = 0; $i < 5; $i++) { $dateComponents = getdate(strtotime("+$i month", time())); $month = $dateComponents['mon']; $year = $dateComponents['year']; $cont .= gcal_build_calendar( $bookingController, $calendar, $extras, $month, $year, $i ); } $cont .= "
"; return $cont; }