Example #1
0
 /**
  * Creates events for the day view.
  *
  * @param Event $event
  * @param int $lwst
  * @param int $hgst
  * @param int $cl_start
  * @param int $cl_end
  * @param array $events_created
  * @return boolean
  */
 private static function createDayViewEvent($event, $lwst, $hgst, $cl_start, $cl_end, array &$events_created)
 {
     // if this date is in the exceptions?
     if ($event->getProperty('EXDATE')) {
         $exdates = explode(',', $event->getProperty('EXDATE'));
         foreach ($exdates as $exdate) {
             if ($exdate > 0 && $exdate >= $lwst && $exdate <= $hgst) {
                 return false;
             }
         }
     }
     // is event expired?
     $rrule = $event->getRecurrence();
     if ($rrule['rtype'] != 'SINGLE' && $rrule['expire'] > 0 && $rrule['expire'] < $hgst) {
         return false;
     }
     $start = mktime(date('G', $event->getStart()), date('i', $event->getStart()), date('s', $event->getStart()), date('n', $lwst), date('j', $lwst), date('Y', $lwst));
     $end = mktime(date('G', $event->getEnd()), date('i', $event->getEnd()), date('s', $event->getEnd()), date('n', $hgst), date('j', $hgst), date('Y', $hgst));
     if ($start <= $cl_start && $end >= $cl_end || $start >= $cl_start && $start < $cl_end || $end > $cl_start && $end <= $cl_end) {
         if (!$events_created[implode('', (array) $event->getId()) . $start]) {
             $new_event = clone $event;
             $new_event->setStart($start);
             $new_event->setEnd($end);
             $events_created[implode('', (array) $event->getId()) . $start] = $new_event;
         }
     }
 }