From 74ff436b8061cf1230c25f700ae82d27812ea87c Mon Sep 17 00:00:00 2001 From: Tezza Date: Fri, 27 Feb 2015 01:24:08 +0100 Subject: [PATCH] allow filtering events by month --- src/app/level2/Level2.php | 16 +++++++++++++++ src/app/level2/WebControllerProvider.php | 26 ++++++++++++++++++++---- 2 files changed, 38 insertions(+), 4 deletions(-) diff --git a/src/app/level2/Level2.php b/src/app/level2/Level2.php index 57f9a7e..639b697 100644 --- a/src/app/level2/Level2.php +++ b/src/app/level2/Level2.php @@ -160,4 +160,20 @@ } + static public function getEventsByMonth( $events, $year, $month ) { + + foreach( $events as $event ) { + + if ( ( date( 'Y', $event[ 'start' ] ) == $year ) && ( date( 'm', $event[ 'start' ] ) == $month ) ) { + + $eventsInMonth[] = $event; + + } + + } + + return $eventsInMonth; + + } + } diff --git a/src/app/level2/WebControllerProvider.php b/src/app/level2/WebControllerProvider.php index 784586b..8a24747 100644 --- a/src/app/level2/WebControllerProvider.php +++ b/src/app/level2/WebControllerProvider.php @@ -4,6 +4,7 @@ use Silex\Application; use Silex\ControllerProviderInterface; + use Symfony\Component\HttpFoundation\Request; class WebControllerProvider implements ControllerProviderInterface { @@ -28,17 +29,34 @@ }); - $ctr->get('/events', function() use ( $app ) { + $ctr->get('/events/', function() use ( $app ) { return $app['twig']->render( 'events.twig', array( 'page' => 'events', 'level2' => Level2::getStatus( $app ), - 'events' => array_slice( + 'events' => Level2::getEventsByMonth( Level2::getEvents( $app ), - 0, - 100 + date( 'Y' ), + date( 'm' ) + ) + ) + ); + + }); + + $ctr->get('/events/{year}/{month}', function( $year, $month ) use ( $app ) { + + return $app['twig']->render( + 'events.twig', + array( + 'page' => 'events', + 'level2' => Level2::getStatus( $app ), + 'events' => Level2::getEventsByMonth( + Level2::getEvents( $app ), + $year, + $month ) ) );