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>";
}
Пример #2
0
<?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();
Пример #3
0
     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 {
Пример #4
0
$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>';
}
Пример #5
0
    $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>';