older version of events
authorSteve Sutton <steve@gaslightmedia.com>
Wed, 19 Aug 2015 13:38:13 +0000 (09:38 -0400)
committerSteve Sutton <steve@gaslightmedia.com>
Wed, 19 Aug 2015 13:38:13 +0000 (09:38 -0400)
index.php

index cfb3c7f..e1a5e40 100644 (file)
--- a/index.php
+++ b/index.php
@@ -1,8 +1,5 @@
 <?php
 require_once '../setup.phtml';
-if (!defined('COMMON_APP_BASE')) {
-    define('COMMON_APP_BASE', '/var/www/server/CommonApps/');
-}
 function icalDateFormat($date, $time)
 {
     $starting    = ($time)
@@ -10,6 +7,32 @@ function icalDateFormat($date, $time)
         : sprintf('%s', $date);
     return date('Ymd\THis', strtotime($starting));
 }
+function getHourArrayFromTime($time)
+{
+    if (!$time) {
+        return false;
+    }
+    //echo '<pre>' . var_dump($time) . '</pre>';
+    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 '<pre>' . print_r($timeParts, true) . '</pre>';
+    //echo '<pre>' . print_r($hour, true) . '</pre>';
+    //echo '<pre>' . print_r($hour, true) . '</pre>';
+    //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 = <<<EOD
 BEGIN:VCALENDAR
 VERSION:2.0
@@ -35,17 +58,29 @@ $eventTemplateEnd = <<<EOD
 \nEND:VEVENT
 EOD;
 
-$dbh = Toolkit_Database::getInstance();
-
 // fetch all events from events database
-define('COMMON_EVENTS_SCHEMA', 'events');
-require_once COMMON_APP_BASE . 'EventCalendar/V1/models/EventMapper.php';
-$eventMapper = new EventMapper(Toolkit_Database::getInstance());
-
-$events = $eventMapper->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 '<pre>' . print_r($e, true) . '</pre>';
+    die('done');
+}
+//echo '<pre>' . print_r($events, true) . '</pre>';
+//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 '<pre>'.print_r($events, true).'</pre>';