diff --git a/src/app/app.php b/src/app/app.php index d67f75e..8a5c8fb 100644 --- a/src/app/app.php +++ b/src/app/app.php @@ -5,6 +5,8 @@ require_once __DIR__.'/bootstrap.php'; + date_default_timezone_set ( 'Europe/Luxembourg' ); + $app = new Silex\Application(); $app->register( diff --git a/src/app/config.sample.json b/src/app/config.sample.json index ecf0a87..5bb8fb4 100644 --- a/src/app/config.sample.json +++ b/src/app/config.sample.json @@ -1,3 +1,7 @@ { - "debug" : false + "debug" : false, + "google" : { + "api_key" : "", + "calendar_id" : "" + } } diff --git a/src/app/level2/Level2.php b/src/app/level2/Level2.php index 380a27a..e9e925b 100644 --- a/src/app/level2/Level2.php +++ b/src/app/level2/Level2.php @@ -6,7 +6,7 @@ class Level2 { - static public function getStatus () { + static public function getStatus() { $spaceAPI = json_decode( file_get_contents( 'https://spaceapi.syn2cat.lu/status/json' ), @@ -22,4 +22,62 @@ } + static public function getEvents( $app ) { + + $googleCalendarJson = 'https://www.googleapis.com/calendar/v3/calendars/' + . $app[ 'google' ][ 'calendar_id' ] . '/events' + . '?singleEvents=true' + . '&orderBy=startTime' + . '&timeMin=2015-02-22T00%3A00%3A00%2B01%3A00' + . '&fields=description%2Citems(description%2Crecurrence%2Csummary%2Clocation%2Cstart%2Cend)%2Csummary' + . '&key=' . $app[ 'google' ][ 'api_key' ]; + + $googleCalendar = json_decode( + file_get_contents( $googleCalendarJson ), + true + ); + + foreach( $googleCalendar[ 'items' ] as $googleEvent ) { + + $event[ 'name' ] = $googleEvent[ 'summary' ]; + + if ( array_key_exists( 'dateTime' , $googleEvent[ 'start' ] ) ){ + $event[ 'start' ][ 'datetime' ] = strtotime( $googleEvent[ 'start' ][ 'dateTime' ] ); + } else { + $event[ 'start' ][ 'date' ] = strtotime( $googleEvent[ 'start' ][ 'date' ] ); + } + + if ( array_key_exists( 'dateTime' , $googleEvent[ 'end' ] ) ){ + $event[ 'end' ][ 'datetime' ] = strtotime( $googleEvent[ 'end' ][ 'dateTime' ] ); + } else { + $event[ 'end' ][ 'date' ] = strtotime( $googleEvent[ 'end' ][ 'date' ] ); + } + + if ( array_key_exists( 'location' , $googleEvent ) ){ + $event[ 'location' ] = $googleEvent[ 'location' ]; + } + + unset( $url ); + + if ( array_key_exists( 'description' , $googleEvent ) ){ + $event[ 'description' ] = $googleEvent[ 'description' ]; + } + + $urlMatch = '/\b(?:(?:https?|ftp|file):\/\/|www\.|ftp\.)[-A-Z0-9+&@#\/%=~_|$\(\)?!:,.]*[A-Z0-9+&@#\/%=~_|$]/i'; + preg_match_all( $urlMatch, $event[ 'description' ], $url, PREG_PATTERN_ORDER ); + + $event[ 'description' ] = preg_replace( $urlMatch, '', $event[ 'description' ] ); + + if ( is_array( $url ) ) { + $event[ 'url' ] = $url[ 0 ]; + } + + $events[] = $event; + + } + + return $events; + + } + } diff --git a/src/app/level2/WebControllerProvider.php b/src/app/level2/WebControllerProvider.php index ea6b649..4be0f61 100644 --- a/src/app/level2/WebControllerProvider.php +++ b/src/app/level2/WebControllerProvider.php @@ -16,7 +16,12 @@ return $app['twig']->render( 'level2.twig', array( - 'level2' => Level2::getStatus() + 'level2' => Level2::getStatus(), + 'events' => array_slice( + Level2::getEvents( $app ), + 0, + 5 + ) ) ); diff --git a/src/app/views/level2.twig b/src/app/views/level2.twig index fa78986..793ab5d 100644 --- a/src/app/views/level2.twig +++ b/src/app/views/level2.twig @@ -2,39 +2,41 @@ {% block container %} -
We're open every monday ;)
-{{ event.description }}
+We're open every monday ;)
-