aboutsummaryrefslogtreecommitdiffstats
path: root/library/fullcalendar/demos/php/get-events.php
diff options
context:
space:
mode:
Diffstat (limited to 'library/fullcalendar/demos/php/get-events.php')
-rw-r--r--library/fullcalendar/demos/php/get-events.php50
1 files changed, 50 insertions, 0 deletions
diff --git a/library/fullcalendar/demos/php/get-events.php b/library/fullcalendar/demos/php/get-events.php
new file mode 100644
index 000000000..888201557
--- /dev/null
+++ b/library/fullcalendar/demos/php/get-events.php
@@ -0,0 +1,50 @@
+<?php
+
+//--------------------------------------------------------------------------------------------------
+// This script reads event data from a JSON file and outputs those events which are within the range
+// supplied by the "start" and "end" GET parameters.
+//
+// An optional "timeZone" GET parameter will force all ISO8601 date stings to a given timeZone.
+//
+// Requires PHP 5.2.0 or higher.
+//--------------------------------------------------------------------------------------------------
+
+// Require our Event class and datetime utilities
+require dirname(__FILE__) . '/utils.php';
+
+// Short-circuit if the client did not give us a date range.
+if (!isset($_GET['start']) || !isset($_GET['end'])) {
+ die("Please provide a date range.");
+}
+
+// Parse the start/end parameters.
+// These are assumed to be ISO8601 strings with no time nor timeZone, like "2013-12-29".
+// Since no timeZone will be present, they will parsed as UTC.
+$range_start = parseDateTime($_GET['start']);
+$range_end = parseDateTime($_GET['end']);
+
+// Parse the timeZone parameter if it is present.
+$timeZone = null;
+if (isset($_GET['timeZone'])) {
+ $timeZone = new DateTimeZone($_GET['timeZone']);
+}
+
+// Read and parse our events JSON file into an array of event data arrays.
+$json = file_get_contents(dirname(__FILE__) . '/../json/events.json');
+$input_arrays = json_decode($json, true);
+
+// Accumulate an output array of event data arrays.
+$output_arrays = array();
+foreach ($input_arrays as $array) {
+
+ // Convert the input array into a useful Event object
+ $event = new Event($array, $timeZone);
+
+ // If the event is in-bounds, add it to the output
+ if ($event->isWithinDayRange($range_start, $range_end)) {
+ $output_arrays[] = $event->toArray();
+ }
+}
+
+// Send JSON to the client.
+echo json_encode($output_arrays);