From: Steve Sutton Date: Wed, 19 Aug 2015 13:38:13 +0000 (-0400) Subject: older version of events X-Git-Url: http://cvs2.gaslightmedia.com/gitweb/?a=commitdiff_plain;h=dfca119ba975e4ec00e9e32476cd7f6294751431;p=prog%2FeventIcal.git older version of events --- diff --git a/index.php b/index.php index cfb3c7f..e1a5e40 100644 --- a/index.php +++ b/index.php @@ -1,8 +1,5 @@ ' . var_dump($time) . ''; + if (!preg_match('%(\d{1,2}):(\d{2}) (\w{2})%', $time, $timeParts)) { + //die('not found'); + return false; + } + $hour = (strtolower($timeParts[3]) === strtolower('PM')) + ? ( ((int)$timeParts[1] === 12) ? 12 : (int)$timeParts[1] += 12 ) + : ( ((int)$timeParts[1] === 12) ? 0 : (int)$timeParts[1] ); + //echo '
' . print_r($timeParts, true) . '
'; + //echo '
' . print_r($hour, true) . '
'; + //echo '
' . print_r($hour, true) . '
'; + //exit; + // parse the hour from event + $dateTime = new DateTime(); + $dateTime->setTime($hour, $timeParts[2]); + return array( + 'h' => $dateTime->format('g'), + 'i' => $dateTime->format('i'), + 'A' => $dateTime->format('A') + ); +} $icalHeader = <<fetchFilteredEvents(); +try { + $sql = " + SELECT descr + FROM topic + WHERE id = :id"; + $getTopic = $dbh->prepare($sql); + $sql = " + SELECT * + FROM event + ORDER BY bdate,edate"; + $stmt = $dbh->query($sql); + $events = $stmt->fetchAll(PDO::FETCH_ASSOC); +} catch(PDOException $e) { + echo '
' . print_r($e, true) . '
'; + die('done'); +} +//echo '
' . print_r($events, true) . '
'; +//exit; header('Content-type: text/calendar; charset=utf-8'); header('Content-Disposition: inline; filename=event-calendar.ics'); -echo $icalHeader; +$output = ''; +$output .= $icalHeader; $dateTimeFormat = '%s %s:%s %s'; $dateFormat = '%s'; $timeStampFormat = 'Ymd\THis'; @@ -53,54 +88,35 @@ $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("\n", '\n', strip_tags($event['descr'])); $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()), + $event['id'], + 'emmetcounty.org', + icalDateFormat($event['bdate'], false), + icalDateFormat($event['bdate'], getHourArrayFromTime($event['btime'])), + icalDateFormat($event['bdate'], getHourArrayFromTime($event['btime'])), + ($event['reacur']) + ? icalDateFormat($event['bdate'], getHourArrayFromTime($event['etime'])) + : icalDateFormat($event['edate'], getHourArrayFromTime($event['etime'])), $description, - $event->getHeader() + $event['header'] ); - 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(); - } - } + $output .= $eventDataStart; // if event has contact data - if ($event->hasContactInfo()) { - echo "\nCONTACT:" . $event->getContactName() . '\,' .$event->getContactEmail() .'\,'.$event->getContactPhone(); + if ( $event['contact'] || $event['email'] || $event['phone']) { + $output .= "\nCONTACT:" . $event['contact'] . '\,' .$event['email'] .'\,'.$event['phone']; } // if event is recur - if ($event->getRecurr()) { + if ($event['reacur']) { // if by day of the month - if ($event->getDayom()) { + if ($event['dayom']) { $freq = 'FREQ=MONTHLY'; } // if by day of the week - $daysOw = $event->getDaysow; + $daysOw = $event['daysow']; if ($daysOw) { - $weekom = $event->getWeekom(); + $weekom = $event['weekom']; $freq = 'FREQ=WEEKLY'; switch ($weekom) { case 9: @@ -134,16 +150,17 @@ foreach ($events as $event) { if (!empty($eventDays)) { $daysInWeek = implode(',', $eventDays); } - $categoryName = $event->getCategoryName(); - if ($categoryName) { - echo "\nCATEGORIES:" . $categoryName; + if ($event['topicid']) { + $getTopic->bindParam(':id', $event['topicid'], PDO::PARAM_INT); + $getTopic->execute(); + $categoryName = $getTopic->fetchColumn(); + $output .= "\nCATEGORIES:" . $categoryName; } - echo "\nRRULE:" .$freq . ';BYDAY=' . $daysInWeek . ';UNTIL=' . icalDateFormat($event->getEnding(), $event->getEndHourArray()); + $output .= "\nRRULE:" .$freq . ';BYDAY=' . $daysInWeek . ';UNTIL=' . icalDateFormat($event['edate'], getHourArrayFromTime($event['etime'])); } - } else if ($event->getStarting() != $event->getEnding()) { - //echo "\nRRULE:FREQ=DAILY;UNTIL=" . icalDateFormat($event->getEnding(), $event->getEndHourArray()); } - echo $eventTemplateEnd; + $output .= $eventTemplateEnd; } -echo $icalFooter; +$output .= $icalFooter; +echo $output; //echo '
'.print_r($events, true).'
';