From: Steve Sutton Date: Wed, 19 Aug 2015 13:37:51 +0000 (-0400) Subject: for the newer event Common X-Git-Url: http://cvs2.gaslightmedia.com/gitweb/?a=commitdiff_plain;h=06db83af671e1581df8d4571615870d6ff6817c2;p=prog%2FeventIcal.git for the newer event Common --- diff --git a/new-events.php b/new-events.php new file mode 100644 index 0000000..cfb3c7f --- /dev/null +++ b/new-events.php @@ -0,0 +1,149 @@ +fetchFilteredEvents(); +header('Content-type: text/calendar; charset=utf-8'); +header('Content-Disposition: inline; filename=event-calendar.ics'); +echo $icalHeader; +$dateTimeFormat = '%s %s:%s %s'; +$dateFormat = '%s'; +$timeStampFormat = 'Ymd\THis'; +$weekdays = + array(1 => 'SU', 'MO', 'TU', 'WE', 'TH', 'FR', 'SA'); +foreach ($events as $event) { + // clean description + $description = str_replace("\n", '\n', strip_tags($event->getDescription())); + $description = str_replace("\r", '', $description); + $eventDataStart = sprintf($eventTemplateStart, + $event->getId(), + 'keweenaw.info', + icalDateFormat($event->getCreated(), false), + icalDateFormat($event->getStarting(), $event->getStartHourArray()), + icalDateFormat($event->getStarting(), $event->getStartHourArray()), + ($event->getRecurr()) + ? icalDateFormat($event->getStarting(), $event->getEndHourArray()) + : icalDateFormat($event->getEnding(), $event->getEndHourArray()), + $description, + $event->getHeader() + ); + echo $eventDataStart; + // if event have lat lon data + if ($event->hasLatLon()) { + echo "\nGEO:" . $event->getLat() . ';' . $event->getLon(); + } + if ($event->getPlace()) { + echo "\nLOCATION:" . $event->getPlace(); + if ($event->getAddress()) { + echo "\," . $event->getAddress(); + } + if ($event->getCity()) { + echo "\," . $event->getCity(); + } + if ($event->getState()) { + echo "\," . $event->getState(); + } + if ($event->getZip()) { + echo "\," . $event->getZip(); + } + } + // if event has contact data + if ($event->hasContactInfo()) { + echo "\nCONTACT:" . $event->getContactName() . '\,' .$event->getContactEmail() .'\,'.$event->getContactPhone(); + } + // if event is recur + if ($event->getRecurr()) { + // if by day of the month + if ($event->getDayom()) { + $freq = 'FREQ=MONTHLY'; + } + // if by day of the week + $daysOw = $event->getDaysow; + if ($daysOw) { + $weekom = $event->getWeekom(); + $freq = 'FREQ=WEEKLY'; + switch ($weekom) { + case 9: + $freq .= ';INTERVAL=2'; + $ord = ''; + break; + case 1: + $ord = '1'; + break; + case 2: + $ord = '2'; + break; + case 3: + $ord = '3'; + break; + case 4: + $ord = '4'; + break; + default: + $ord = ''; + break; + } + $eventDays = array(); + $ri = 1; + for ($iterator = 1; $iterator <= 7; ++$iterator) { + if ($daysOw & $ri) { + $eventDays[] = $ord.$weekdays[$iterator]; + } + $ri = $ri << 1; + } + if (!empty($eventDays)) { + $daysInWeek = implode(',', $eventDays); + } + $categoryName = $event->getCategoryName(); + if ($categoryName) { + echo "\nCATEGORIES:" . $categoryName; + } + echo "\nRRULE:" .$freq . ';BYDAY=' . $daysInWeek . ';UNTIL=' . icalDateFormat($event->getEnding(), $event->getEndHourArray()); + } + } else if ($event->getStarting() != $event->getEnding()) { + //echo "\nRRULE:FREQ=DAILY;UNTIL=" . icalDateFormat($event->getEnding(), $event->getEndHourArray()); + } + echo $eventTemplateEnd; +} +echo $icalFooter; +//echo '
'.print_r($events, true).'
';