</script> <table cellspacing="0" cellpadding="0" border="0" width="100%"><tr><td> <?php // establish the focus 'date' $date = new w2p_Utilities_Date($date); // prepare time period for 'events' // "go back" to the first day shown on the calendar // and "go forward" to the last day shown on the calendar $first_time = new w2p_Utilities_Date($date); $first_time->setDay(1); $first_time->setTime(0, 0, 0); // if Sunday is the 1st, we don't need to go back // as that's the first day shown on the calendar if ($first_time->getDayOfWeek() != 0) { $last_day_of_previous_month = $first_time->getPrevDay(); $day_of_previous_month = $last_day_of_previous_month->getDayOfWeek(); $seconds_to_sub_in_previous_month = 86400 * $day_of_previous_month; // need to cast it to int because Pear::Date_Span::set down the line // fails to set the seconds correctly $last_day_of_previous_month->subtractSeconds((int) $seconds_to_sub_in_previous_month); $first_time->setDay($last_day_of_previous_month->getDay()); $first_time->setMonth($last_day_of_previous_month->getMonth()); $first_time->setYear($last_day_of_previous_month->getYear()); } $last_time = new w2p_Utilities_Date($date); $last_time->setDay($date->getDaysInMonth()); $last_time->setTime(23, 59, 59); // if Saturday is the last day of month, we don't need to go forward // as that's the last day shown on the calendar if ($last_time->getDayOfWeek() != 6) {
public function remove(CAppUI $AppUI, w2p_Utilities_Date $date) { $perms = $AppUI->acl(); $removed = false; if ($this->holiday_id && $perms->checkModuleItem('holiday', 'edit', $this->holiday_id)) { $holiday_start_date = new w2p_Utilities_Date($this->holiday_start_date); $holiday_end_date = new w2p_Utilities_Date($this->holiday_end_date); if ($holiday_start_date->equals($date->duplicate())) { if ($holiday_end_date->equals($date->duplicate())) { $removed = $this->delete($AppUI); } else { $holiday_start_date = new w2p_Utilities_Date($this->holiday_start_date); $this->holiday_start_date = $holiday_start_date->getNextDay()->getDate(); $removed = $this->store($AppUI); } } elseif ($holiday_end_date->equals($date->duplicate())) { $holiday_end_date = new w2p_Utilities_Date($this->holiday_end_date); $this->holiday_end_date = $holiday_end_date->getPrevDay()->getDate(); $removed = $this->store($AppUI); } elseif ($holiday_start_date->before($date->duplicate()) && $holiday_end_date->after($date->duplicate())) { $holiday_end_date = $this->holiday_end_date; $this->holiday_end_date = $date->getPrevDay()->getDate(); $removed = $this->store($AppUI); $this->holiday_id = 0; // create new record $this->holiday_start_date = $date->getNextDay()->getDate(); $this->holiday_end_date = $holiday_end_date; $removed = $this->store($AppUI); } } return $removed; }