function wp_gc_my_calendar() { ?> <div id="eventContent" title="Event Details" style="display:none;" class="contact-content"> <div class="contact-loading" style="display:none"></div> <div class="success_msg"></div> <form class="cmxform" id="eventform" method="get" action=""> <fieldset> <p class="txt-fld"> <label for="pName">Your Name</label> <input id="pName" name="pName" minlength="2" type="text" required> </p> <p class="txt-fld"> <label for="pEmail">Your E-Mail</label> <input id="pEmail" type="email" name="pEmail" required> </p> <p class="txt-fld"> <label for="pPhone">Your Phone</label> <input id="pPhone" type="text" name="pPhone" required> </p> <p class="txt-fld"> <label for="pNotes">Your Message</label> <textarea id="pNotes" name="pNotes" rows="10"></textarea> </p> <p class="btn-fld"> <input id="start_date" name="start_date" type="hidden"> <input id="end_date" name="end_date" type="hidden"> <input id="savebtn" class="btn-frm" type="submit" value="Book Appointment"> </p> </fieldset> </form> <p id="eventInfo"></p> </div> <?php include_once 'class.iCalReader.php'; date_default_timezone_set('US/Eastern'); // set default timezone $calendar_file = get_option('google_cal_file'); if ($calendar_file == '') { ?> <h2>Settings required ! </h2> <p><a href="<?php echo admin_url('admin.php?page=wp-google-calendar-settings'); ?> ">Go to settings</a></p> <?php exit; } $ical = new ICal($calendar_file); $events = $ical->eventsFromRange(true, true); foreach ($events as $event) { if (isset($event['TRANSP'])) { $key = "url"; $value = "javascript: showForm()"; } else { $key = "busy"; $value = "1"; } $ev[] = array('title' => addslashes($event['SUMMARY']), 'start' => date('Y-m-d\\TH:i:s', strtotime($event['DTSTART'])), 'end' => date('Y-m-d\\TH:i:s', strtotime($event['DTEND'])), 'allDay' => strlen($event['DTSTART']) == 8 ? true : false, $key => $value); } $e = json_encode($ev); ?> <div style="display:none" class="eventJson" defaultDate="<?php echo date('Y-m-d'); ?> " data='<?php echo $e; ?> '></div> <?php return "<div id='calendar'></div>"; }
<?php // Set the url of the calendar feed. //$url = 'https://p01-calendarws.icloud.com/ca/subscribe/1/n6x7Farxpt7m9S8bHg1TGArSj7J6kanm_2KEoJPL5YIAk3y70FpRo4GyWwO-6QfHSY5mXtHcRGVxYZUf7U3HPDOTG5x0qYnno1Zr_VuKH2M'; $url = isset($_REQUEST['url']) ? $_REQUEST['url'] : ''; /*****************************************/ // Run the helper function with the desired URL and save the contents. $data = get_url($url); include 'class.iCalReader.php'; $cal = new ICal(preg_split('/$\\R?^/m', $data)); $events = $cal->eventsFromRange('now', '2 weeks'); echo ical2json($events); // Define the helper function that retrieved the data and decodes the content. function get_url($url) { //user agent is very necessary, otherwise some websites like google.com wont give zipped content $opts = array('http' => array('method' => "GET", 'header' => "Accept-Language: en-US,en;q=0.8rn" . "Accept-Encoding: gzip,deflate,sdchrn" . "Accept-Charset:UTF-8,*;q=0.5rn" . "User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:19.0) Gecko/20100101 Firefox/19.0 FirePHP/0.4rn", "ignore_errors" => true), "ssl" => array("verify_peer" => false, "verify_peer_name" => false)); $context = stream_context_create($opts); $content = file_get_contents($url, false, $context); //If http response header mentions that content is gzipped, then uncompress it foreach ($http_response_header as $c => $h) { if (stristr($h, 'content-encoding') and stristr($h, 'gzip')) { //Now lets uncompress the compressed data $content = gzinflate(substr($content, 10, -8)); } } return $content; } function ical2json($cal) { $json = array();
echo "Sorry, only ics files are allowed."; $uploadOk = 0; } // Check if $uploadOk is set to 0 by an error if ($uploadOk == 0) { echo "Sorry, your file was not uploaded."; // if everything is ok, try to upload file } else { if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) { $success_message = "The file " . basename($_FILES["fileToUpload"]["name"]) . " has been uploaded successfully."; $ical = new ICal($target_file); $time = time(); $date = new DateTime(null); $todaystart = strtotime('today midnight'); $todayend = strtotime('tomorrow midnight'); $events = $ical->eventsFromRange($todaystart, $todayend); $counter = 0; foreach ($events as $event) { $ics_events[$counter] = []; array_push($ics_events[$counter], $counter + 1); array_push($ics_events[$counter], $event['SUMMARY']); array_push($ics_events[$counter], $event['LOCATION']); $startTime = $ical->iCalDateToUnixTimestamp($event['DTSTART']); $startTimeString = date('H:i', $startTime); array_push($ics_events[$counter], $startTimeString); $endTime = $ical->iCalDateToUnixTimestamp($event['DTEND']); $endTimeString = date('H:i', $endTime); array_push($ics_events[$counter], $endTimeString); $counter++; } } else {
$filename = isset($_GET['file']) ? trim($_GET['file']) : 'Auditorium.ics'; $events = $ical->getEventsByFileName('ics-files/' . $filename); foreach ($events['VEVENT'] as $data) { $e[$i]['UID'] = $data['UID']; $e[$i]['SUMMARY'] = $data['SUMMARY']; $e[$i]['LOCATION'] = isset($data['LOCATION']) ? $data['LOCATION'] : ''; // $ts = strtotime($data['DTSTART']); $changedDate = date('YmdHis', $ts); $e[$i]['DTSTART'] = $changedDate; $e[$i]['DTEND'] = $data['DTEND']; $i++; } $startDate = date('Y-m-d H:i'); $endDate = date('Y-m-d') . ' 23:59:00'; $upcomingEvents = $ical->eventsFromRange($startDate, $endDate, $e); if (is_array($upcomingEvents) && count($upcomingEvents)) { $unixTime = date('Y-m-d H:i:s', $ical->iCalDateToUnixTimestamp($upcomingEvents[0]['DTSTART'])); echo '<tr>'; echo '<td height="100">' . date('h:i a', strtotime($unixTime)) . '</td>'; echo '<td>' . @$upcomingEvents[0]['SUMMARY'] . '</td>'; echo '<td>' . @$upcomingEvents[0]['LOCATION'] . '</td>'; echo '</tr>'; echo '<tr>'; echo '<td colspan="3"><b>Commences in </b>' . $ical->dateDiff(date('Y-m-d H:i:s'), $unixTime) . '</td>'; echo '</tr>'; } else { echo '<tr>'; echo '<td colspan="3" align="center">No events found.</td>'; echo '</tr>'; }
$caldata = $ical->getEventsByFileName($file); foreach ($caldata['VEVENT'] as $data) { $e[$i]['UID'] = $data['UID']; $e[$i]['SUMMARY'] = $data['SUMMARY']; $e[$i]['LOCATION'] = isset($data['LOCATION']) ? $data['LOCATION'] : ''; // $ts = strtotime($data['DTSTART']); $changedDate = date('YmdHis', $ts); $e[$i]['DTSTART'] = $changedDate; $e[$i]['DTEND'] = $data['DTEND']; $i++; } } $startDate = date('Y-m-d'); $endDate = date('Y-m-d') . ' 23:59:00'; $todayEvents = $ical->eventsFromRange($startDate, $endDate, $e); if (count($todayEvents)) { $i = 1; foreach ($todayEvents as $event) { $unixTime = date('h:i a', $ical->iCalDateToUnixTimestamp($event['DTSTART'])); $rowcolor = $i / 2 == 0 ? 'grey_row' : 'white_row'; echo '<tr>'; echo '<td class="' . $rowcolor . '">' . $unixTime . '</td>'; echo '<td class="' . $rowcolor . '2">' . @$event['SUMMARY'] . '<div class="room">' . @$event['LOCATION'] . '</div></td>'; echo '</tr>'; $i++; } } else { echo '<tr>'; echo '<td align="center" colspan="2" height="30">No events found.</td>'; echo '</tr>';